linux/drivers/usb/core
Benjamin Herrenschmidt 8de9840265 [PATCH] USB: Fix USB suspend/resume crasher (#2)
This patch closes the IRQ race and makes various other OHCI & EHCI code
path safer vs. suspend/resume.
I've been able to (finally !) successfully suspend and resume various
Mac models, with or without USB mouse plugged, or plugging while asleep,
or unplugging while asleep etc... all without a crash.

Alan, please verify the UHCI bit I did, I only verified that it builds.
It's very simple so I wouldn't expect any issue there. If you aren't
confident, then just drop the hunks that change uhci-hcd.c

I also made the patch a little bit more "safer" by making sure the store
to the interrupt register that disables interrupts is not posted before
I set the flag and drop the spinlock.

Without this patch, you cannot reliably sleep/wakeup any recent Mac, and
I suspect PCs have some more sneaky issues too (they don't frankly crash
with machine checks because x86 tend to silently swallow PCI errors but
that won't last afaik, at least PCI Express will blow up in those
situations, but the USB code may still misbehave).

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2005-11-29 21:39:23 -08:00
..
buffer.c [PATCH] USB: move CONFIG_USB_DEBUG checks into the Makefile 2005-11-17 11:29:55 -08:00
config.c [PATCH] USB: move CONFIG_USB_DEBUG checks into the Makefile 2005-11-17 11:29:55 -08:00
devices.c [PATCH] make driver's name be const char * 2005-06-20 15:15:01 -07:00
devio.c [PATCH] usb devio warning fix 2005-11-17 11:29:54 -08:00
file.c [PATCH] USB: move CONFIG_USB_DEBUG checks into the Makefile 2005-11-17 11:29:55 -08:00
hcd-pci.c [PATCH] USB: Fix USB suspend/resume crasher (#2) 2005-11-29 21:39:23 -08:00
hcd.c [PATCH] USB: Fix USB suspend/resume crasher (#2) 2005-11-29 21:39:23 -08:00
hcd.h [PATCH] USB: Fix USB suspend/resume crasher (#2) 2005-11-29 21:39:23 -08:00
hub.c [PATCH] USB: EHCI updates 2005-11-23 23:04:28 -08:00
hub.h [PATCH] USB: make wHubCharacteristics __le16 to match other usb descriptor fields 2005-10-28 16:47:42 -07:00
inode.c [PATCH] usbfs: usbfs_dir_inode_operations cleanup 2005-11-17 11:29:53 -08:00
Kconfig [PATCH] root hub updates (greater half) 2005-10-28 16:47:40 -07:00
Makefile [PATCH] USB: move CONFIG_USB_DEBUG checks into the Makefile 2005-11-17 11:29:55 -08:00
message.c [PATCH] USB: move CONFIG_USB_DEBUG checks into the Makefile 2005-11-17 11:29:55 -08:00
notify.c [PATCH] USB: move CONFIG_USB_DEBUG checks into the Makefile 2005-11-17 11:29:55 -08:00
otg_whitelist.h
sysfs.c [PATCH] USB: move CONFIG_USB_DEBUG checks into the Makefile 2005-11-17 11:29:55 -08:00
urb.c [PATCH] USB: move CONFIG_USB_DEBUG checks into the Makefile 2005-11-17 11:29:55 -08:00
usb.c [PATCH] USB: move CONFIG_USB_DEBUG checks into the Makefile 2005-11-17 11:29:55 -08:00
usb.h [PATCH] usbcore: Fix handling of sysfs strings and other attributes 2005-10-28 16:47:51 -07:00