linux/drivers/usb/core
Geoff Levand 83a7982073 USB: fix hcd interrupt disabling
Commit de85422b94, 'USB: fix interrupt
disabling for HCDs with shared interrupt handlers' changed usb_add_hcd()
to strip IRQF_DISABLED from irqflags prior to calling request_irq()
with the justification that such a removal was necessary for shared
interrupts to work properly.  Unfortunately, the change in that commit
unconditionally removes the IRQF_DISABLED flag, causing problems on
platforms that don't use a shared interrupt but require IRQF_DISABLED.
This change adds a check for IRQF_SHARED prior to removing the
IRQF_DISABLED flag.

Fixes the PS3 system startup hang reported with recent Fedora and
OpenSUSE kernels.

Note that this problem is hidden when CONFIG_LOCKDEP=y (ps3_defconfig),
as local_irq_enable_in_hardirq() is defined as a null statement for
that config.

CC: stable <stable@kernel.org>
Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Stefan Becker <Stefan.Becker@nokia.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2008-09-23 13:58:06 -07:00
..
buffer.c USB: fix codingstyle issues in drivers/usb/core/*.c 2008-02-01 14:35:08 -08:00
config.c USB: ehci tolerates some buggy devices 2008-04-24 21:16:35 -07:00
devices.c usb: hub: add check for unsupported bus topology 2008-07-21 15:16:26 -07:00
devio.c device create: usb: convert device_create to device_create_drvdata 2008-07-21 21:54:46 -07:00
driver.c USB: Don't rebind before "complete" callback 2008-08-21 10:26:37 -07:00
endpoint.c USB: usb dev_set_name() instead of dev->bus_id 2008-07-21 15:15:47 -07:00
file.c device create: usb: convert device_create to device_create_drvdata 2008-07-21 21:54:46 -07:00
generic.c USB: fix possible deadlock involving sysfs attributes 2008-05-29 13:59:03 -07:00
hcd-pci.c USB: clarify usage of hcd->suspend/resume methods 2008-04-24 21:16:48 -07:00
hcd.c USB: fix hcd interrupt disabling 2008-09-23 13:58:06 -07:00
hcd.h USB: automatically enable RHSC interrupts 2008-08-21 10:26:38 -07:00
hub.c USB: automatically enable RHSC interrupts 2008-08-21 10:26:38 -07:00
hub.h wusb: make ep0_reinit available for modules 2008-04-24 21:16:59 -07:00
inode.c usbfs: send disconnect signals when device is unregistered 2008-07-21 15:16:40 -07:00
Kconfig USB: Remove EXPERIMENTAL from dynamic USB minor allocation. 2008-04-24 21:16:43 -07:00
Makefile
message.c USB: fix interface unregistration logic 2008-08-13 17:32:50 -07:00
notify.c USB : correct comments in usb/core/notify.c 2008-02-01 14:34:44 -08:00
otg_whitelist.h USB: fix codingstyle issues in drivers/usb/core/*.h 2008-02-01 14:35:07 -08:00
quirks.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2008-06-17 18:10:40 -07:00
sysfs.c USB: add all configs to the "descriptors" attribute 2008-05-29 13:59:03 -07:00
urb.c USB: fix bug in usb_unlink_anchored_urbs() 2008-08-21 10:26:32 -07:00
usb.c USB: Add new PM callback methods for USB 2008-08-21 10:26:37 -07:00
usb.h USB: Add new PM callback methods for USB 2008-08-21 10:26:37 -07:00