From d145deebeb652e40a5b42b0597c728de56968ef3 Mon Sep 17 00:00:00 2001 From: Alan Stern Date: Wed, 9 Jun 2010 17:34:27 -0400 Subject: [PATCH] --- yaml --- r: 207944 b: refs/heads/master c: c548795abe0d3520b74e18f23ca0a0d72deddab9 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/usb/core/hcd-pci.c | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index a678a0d7748e..70b56e48cb46 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6d88e6792574497bfac9a81403cc47712040636f +refs/heads/master: c548795abe0d3520b74e18f23ca0a0d72deddab9 diff --git a/trunk/drivers/usb/core/hcd-pci.c b/trunk/drivers/usb/core/hcd-pci.c index 1cf2d1e79a5c..7e2d5271b0c9 100644 --- a/trunk/drivers/usb/core/hcd-pci.c +++ b/trunk/drivers/usb/core/hcd-pci.c @@ -292,6 +292,14 @@ void usb_hcd_pci_remove(struct pci_dev *dev) if (!hcd) return; + /* Fake an interrupt request in order to give the driver a chance + * to test whether the controller hardware has been removed (e.g., + * cardbus physical eject). + */ + local_irq_disable(); + usb_hcd_irq(0, hcd); + local_irq_enable(); + usb_remove_hcd(hcd); if (hcd->driver->flags & HCD_MEMORY) { iounmap(hcd->regs);