]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
usb: gadget: f_sourcesink: Fix isoc transfer for USB_SPEED_SUPER_PLUS
authorPavankumar Kondeti <quic_pkondeti@quicinc.com>
Sat, 22 Jan 2022 03:03:22 +0000 (08:33 +0530)
committerPaolo Pisati <paolo.pisati@canonical.com>
Thu, 3 Feb 2022 09:28:48 +0000 (10:28 +0100)
BugLink: https://bugs.launchpad.net/bugs/1959879
commit 904edf8aeb459697129be5fde847e2a502f41fd9 upstream.

Currently when gadget enumerates in super speed plus, the isoc
endpoint request buffer size is not calculated correctly. Fix
this by checking the gadget speed against USB_SPEED_SUPER_PLUS
and update the request buffer size.

Fixes: 90c4d05780d4 ("usb: fix various gadgets null ptr deref on 10gbps cabling.")
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Pavankumar Kondeti <quic_pkondeti@quicinc.com>
Link: https://lore.kernel.org/r/1642820602-20619-1-git-send-email-quic_pkondeti@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Paolo Pisati <paolo.pisati@canonical.com>
drivers/usb/gadget/function/f_sourcesink.c

index 1abf08e5164af9e9cba03adbe52be6aa6b5713fd..6803cd60cc6dc3147b1901c56cf28f9dda2da607 100644 (file)
@@ -584,6 +584,7 @@ static int source_sink_start_ep(struct f_sourcesink *ss, bool is_in,
 
        if (is_iso) {
                switch (speed) {
+               case USB_SPEED_SUPER_PLUS:
                case USB_SPEED_SUPER:
                        size = ss->isoc_maxpacket *
                                        (ss->isoc_mult + 1) *