#syz test: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git d58772d8520c7ef247c4b95c9bd76d3a25da9ff5
diff --git a/drivers/usb/gadget/udc/pch_udc.c b/drivers/usb/gadget/udc/pch_udc.c
index 0a6886428739..5704aff2b09b 100644
--- a/drivers/usb/gadget/udc/pch_udc.c
+++ b/drivers/usb/gadget/udc/pch_udc.c
@@ -2979,16 +2979,8 @@ static void pch_udc_shutdown(struct pci_dev *pdev)
pch_udc_set_disconnect(dev);
}
-static void pch_udc_remove(struct pci_dev *pdev)
+static void pch_udc_cleanup(struct pch_udc_dev *dev)
{
- struct pch_udc_dev *dev = pci_get_drvdata(pdev);
-
- usb_del_gadget_udc(&dev->gadget);
-
- /* gadget driver must not be registered */
- if (dev->driver)
- dev_err(&pdev->dev,
- "%s: gadget driver still bound!!!\n", __func__);
/* dma pool cleanup */
dma_pool_destroy(dev->data_requests);
@@ -3016,6 +3008,20 @@ static void pch_udc_remove(struct pci_dev *pdev)
pch_udc_exit(dev);
}
+static void pch_udc_remove(struct pci_dev *pdev)
+{
+ struct pch_udc_dev *dev = pci_get_drvdata(pdev);
+
+ usb_del_gadget_udc(&dev->gadget);
+
+ /* gadget driver must not be registered */
+ if (dev->driver)
+ dev_err(&pdev->dev,
+ "%s: gadget driver still bound!!!\n", __func__);
+
+ pch_udc_cleanup(dev);
+}
+
static int __maybe_unused pch_udc_suspend(struct device *d)
{
struct pch_udc_dev *dev = dev_get_drvdata(d);
@@ -3106,7 +3112,7 @@ static int pch_udc_probe(struct pci_dev *pdev, const struct pci_device_id *id)
return 0;
finished:
- pch_udc_remove(pdev);
+ pch_udc_cleanup(dev);
return retval;
}
Hello, syzbot has tested the proposed patch and the reproducer did not trigger any issue: Reported-by: syzbot+3e2e533aa1b2a75525e7@syzkaller.appspotmail.com Tested-by: syzbot+3e2e533aa1b2a75525e7@syzkaller.appspotmail.com Tested on: commit: d58772d8 Merge tag 'regmap-fix-v7.2-rc7' of git://git... git tree: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git console output: https://syzkaller.appspot.com/x/log.txt?x=17712a9e580000 kernel config: https://syzkaller.appspot.com/x/.config?x=c44651ea7dd2f307 dashboard link: https://syzkaller.appspot.com/bug?extid=3e2e533aa1b2a75525e7 compiler: gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44 patch: https://syzkaller.appspot.com/x/patch.diff?x=13be2a9e580000 Note: testing is done by a robot and is best-effort only.
© 2016 - 2026 Red Hat, Inc.