]> git.hungrycats.org Git - linux/commit
usb: dwc3: gadget: Fix looping of queued SG entries
authorThinh Nguyen <Thinh.Nguyen@synopsys.com>
Thu, 14 Nov 2024 01:02:18 +0000 (01:02 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 5 Dec 2024 12:54:25 +0000 (13:54 +0100)
commitb7c3d0b59213ebeedff63d128728ce0b3d7a51ec
tree7669da9c48649d7a08634d074618a1bc6f1d78b5
parentfb3c0449e1a63268246bde611a3d6541fccef743
usb: dwc3: gadget: Fix looping of queued SG entries

commit b7fc65f5141c24785dc8c19249ca4efcf71b3524 upstream.

The dwc3_request->num_queued_sgs is decremented on completion. If a
partially completed request is handled, then the
dwc3_request->num_queued_sgs no longer reflects the total number of
num_queued_sgs (it would be cleared).

Correctly check the number of request SG entries remained to be prepare
and queued. Failure to do this may cause null pointer dereference when
accessing non-existent SG entry.

Cc: stable@vger.kernel.org
Fixes: c96e6725db9d ("usb: dwc3: gadget: Correct the logic for queuing sgs")
Signed-off-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Link: https://lore.kernel.org/r/d07a7c4aa0fcf746cdca0515150dbe5c52000af7.1731545781.git.Thinh.Nguyen@synopsys.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/dwc3/gadget.c