Add in the missing null check for dev->driver that is present at other
points in the function before it is dereferenced.

This issue was found by Smatch.

Signed-off-by: Andrew Goodbody <[email protected]>
---
 drivers/usb/gadget/dwc2_udc_otg_xfer_dma.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/gadget/dwc2_udc_otg_xfer_dma.c 
b/drivers/usb/gadget/dwc2_udc_otg_xfer_dma.c
index 
fca052b4556a7d2ae4fe516e39820611d7082e2f..5a7f50ebaa5579f67ea5dc9491d0d1f4d4b81ea1
 100644
--- a/drivers/usb/gadget/dwc2_udc_otg_xfer_dma.c
+++ b/drivers/usb/gadget/dwc2_udc_otg_xfer_dma.c
@@ -526,7 +526,7 @@ static int dwc2_udc_irq(int irq, void *_dev)
                if (gotgint & GOTGINT_SES_END_DET) {
                        debug_cond(DEBUG_ISR, "\t\tSession End Detected\n");
                        /* Let gadget detect disconnected state */
-                       if (dev->driver->disconnect) {
+                       if (dev->driver && dev->driver->disconnect) {
                                spin_unlock_irqrestore(&dev->lock, flags);
                                dev->driver->disconnect(&dev->gadget);
                                spin_lock_irqsave(&dev->lock, flags);

---
base-commit: 9710d98e8942151fc0c62d54100d9d27e8263d04
change-id: 20250929-usb_dwc2-924d0d26df62

Best regards,
-- 
Andrew Goodbody <[email protected]>

Reply via email to