rpms/kernel/devel linux-2.6-usb-fix-hcd-interrupt-disabling.patch, NONE, 1.1 kernel.spec, 1.948, 1.949

Chuck Ebbert cebbert at fedoraproject.org
Sat Sep 13 04:14:56 UTC 2008


Author: cebbert

Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv30331

Modified Files:
	kernel.spec 
Added Files:
	linux-2.6-usb-fix-hcd-interrupt-disabling.patch 
Log Message:
Fix hang in installer on PS3. (#458910)

linux-2.6-usb-fix-hcd-interrupt-disabling.patch:

--- NEW FILE linux-2.6-usb-fix-hcd-interrupt-disabling.patch ---
>From geoffrey.levand at am.sony.com  Wed Aug 27 10:58:58 2008
From: Geoff Levand <geoffrey.levand at am.sony.com>
Date: Fri, 22 Aug 2008 14:13:00 -0700
Subject: USB: fix hcd interrupt disabling
To: Greg Kroah-Hartman <gregkh at suse.de>
Cc: linux-usb at vger.kernel.org, Stefan Becker <Stefan.Becker at nokia.com>
Message-ID: <48AF2BDC.7090507 at am.sony.com>

From: Geoff Levand <geoffrey.levand at am.sony.com>

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 at kernel.org>
Signed-off-by: Geoff Levand <geoffrey.levand at am.sony.com>
Cc: Alan Stern <stern at rowland.harvard.edu>
Cc: Stefan Becker <Stefan.Becker at nokia.com>
Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>

---
 drivers/usb/core/hcd.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/drivers/usb/core/hcd.c
+++ b/drivers/usb/core/hcd.c
@@ -1876,7 +1876,8 @@ int usb_add_hcd(struct usb_hcd *hcd,
 		 * with IRQF_SHARED. As usb_hcd_irq() will always disable
 		 * interrupts we can remove it here.
 		 */
-		irqflags &= ~IRQF_DISABLED;
+		if (irqflags & IRQF_SHARED)
+			irqflags &= ~IRQF_DISABLED;
 
 		snprintf(hcd->irq_descr, sizeof(hcd->irq_descr), "%s:usb%d",
 				hcd->driver->description, hcd->self.busnum);


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.948
retrieving revision 1.949
diff -u -r1.948 -r1.949
--- kernel.spec	12 Sep 2008 16:42:16 -0000	1.948
+++ kernel.spec	13 Sep 2008 04:14:26 -0000	1.949
@@ -634,6 +634,8 @@
 Patch2300: linux-2.6-usb-ehci-hcd-respect-nousb.patch
 # Fix HID usage descriptor on MS wireless desktop receiver
 Patch2301: linux-2.6-ms-wireless-receiver.patch
+# fix hang on boot on PS3
+Patch2302: linux-2.6-usb-fix-hcd-interrupt-disabling.patch
 
 # get rid of imacfb and make efifb work everywhere it was used
 Patch2600: linux-2.6-merge-efifb-imacfb.patch
@@ -1053,6 +1055,7 @@
 
 # USB
 ApplyPatch linux-2.6-usb-ehci-hcd-respect-nousb.patch
+ApplyPatch linux-2.6-usb-fix-hcd-interrupt-disabling.patch
 
 # ACPI
 
@@ -1755,6 +1758,9 @@
 %kernel_variant_files -k vmlinux %{with_kdump} kdump
 
 %changelog
+* Sat Sep 13 2008 Chuck Ebbert <cebbert at redhat.com>
+- Fix hang in installer on PS3. (#458910)
+
 * Fri Sep 12 2008 Dave Jones <davej at redhat.com>
 - 2.6.27-rc6-git2
 




More information about the fedora-extras-commits mailing list