Geoff Levand 83a7982073 USB: fix hcd interrupt disabling
Commit de85422b94ddb23c021126815ea49414047c13dc, '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
..
2008-09-13 16:43:20 -04:00
2008-07-24 10:47:41 -07:00
2008-08-18 21:40:04 +02:00
2008-08-19 18:47:56 +02:00
2008-07-25 10:53:30 -07:00
2008-08-26 00:19:28 +10:00
2008-07-26 12:00:11 -07:00
2008-09-02 19:21:40 -07:00
2008-08-04 12:51:06 +09:00
2008-09-13 14:41:52 -07:00
2008-09-23 13:58:06 -07:00
2008-08-13 17:33:00 -07:00