diff options
-rw-r--r-- | drivers/usb/core/hcd-pci.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/usb/core/hcd-pci.c b/drivers/usb/core/hcd-pci.c index 1cf2d1e79a5c..7e2d5271b0c9 100644 --- a/drivers/usb/core/hcd-pci.c +++ b/drivers/usb/core/hcd-pci.c | |||
@@ -292,6 +292,14 @@ void usb_hcd_pci_remove(struct pci_dev *dev) | |||
292 | if (!hcd) | 292 | if (!hcd) |
293 | return; | 293 | return; |
294 | 294 | ||
295 | /* Fake an interrupt request in order to give the driver a chance | ||
296 | * to test whether the controller hardware has been removed (e.g., | ||
297 | * cardbus physical eject). | ||
298 | */ | ||
299 | local_irq_disable(); | ||
300 | usb_hcd_irq(0, hcd); | ||
301 | local_irq_enable(); | ||
302 | |||
295 | usb_remove_hcd(hcd); | 303 | usb_remove_hcd(hcd); |
296 | if (hcd->driver->flags & HCD_MEMORY) { | 304 | if (hcd->driver->flags & HCD_MEMORY) { |
297 | iounmap(hcd->regs); | 305 | iounmap(hcd->regs); |