[kernel] r18898 - in dists/sid/linux-2.6/debian: . patches/bugfix/all patches/series

Ben Hutchings benh at alioth.debian.org
Sun Apr 1 22:43:15 UTC 2012


Author: benh
Date: Sun Apr  1 22:43:12 2012
New Revision: 18898

Log:
PCI: ASPM: Fix pcie devices with non-pcie children (Closes: #665420)

Added:
   dists/sid/linux-2.6/debian/patches/bugfix/all/ASPM-Fix-pcie-devices-with-non-pcie-children.patch
Modified:
   dists/sid/linux-2.6/debian/changelog
   dists/sid/linux-2.6/debian/patches/series/base

Modified: dists/sid/linux-2.6/debian/changelog
==============================================================================
--- dists/sid/linux-2.6/debian/changelog	Sun Apr  1 05:34:07 2012	(r18897)
+++ dists/sid/linux-2.6/debian/changelog	Sun Apr  1 22:43:12 2012	(r18898)
@@ -3,6 +3,9 @@
   [ Jonathan Nieder ]
   * ata: Enable PATA_IT8213 as module (Closes: #666506)
 
+  [ Ben Hutchings ]
+  * PCI: ASPM: Fix pcie devices with non-pcie children (Closes: #665420)
+
  -- Ben Hutchings <ben at decadent.org.uk>  Sun, 01 Apr 2012 06:33:00 +0100
 
 linux-2.6 (3.2.13-1) unstable; urgency=low

Added: dists/sid/linux-2.6/debian/patches/bugfix/all/ASPM-Fix-pcie-devices-with-non-pcie-children.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux-2.6/debian/patches/bugfix/all/ASPM-Fix-pcie-devices-with-non-pcie-children.patch	Sun Apr  1 22:43:12 2012	(r18898)
@@ -0,0 +1,71 @@
+From: Matthew Garrett <mjg at redhat.com>
+Date: Tue, 27 Mar 2012 10:17:41 -0400
+Subject: [PATCH] ASPM: Fix pcie devices with non-pcie children
+
+commit c9651e70ad0aa499814817cbf3cc1d0b806ed3a1 upstream.
+
+Since 3.2.12 and 3.3, some systems are failing to boot with a BUG_ON.
+Some other systems using the pata_jmicron driver fail to boot because no
+disks are detected.  Passing pcie_aspm=force on the kernel command line
+works around it.
+
+The cause: commit 4949be16822e ("PCI: ignore pre-1.1 ASPM quirking when
+ASPM is disabled") changed the behaviour of pcie_aspm_sanity_check() to
+always return 0 if aspm is disabled, in order to avoid cases where we
+changed ASPM state on pre-PCIe 1.1 devices.
+
+This skipped the secondary function of pcie_aspm_sanity_check which was
+to avoid us enabling ASPM on devices that had non-PCIe children, causing
+trouble later on.  Move the aspm_disabled check so we continue to honour
+that scenario.
+
+Addresses https://bugzilla.kernel.org/show_bug.cgi?id=42979 and
+          http://bugs.debian.org/665420
+
+Reported-by: Romain Francoise <romain at orebokech.com> # kernel panic
+Reported-by: Chris Holland <bandidoirlandes at gmail.com> # disk detection trouble
+Signed-off-by: Matthew Garrett <mjg at redhat.com>
+Cc: stable at vger.kernel.org
+Tested-by: Hatem Masmoudi <hatem.masmoudi at gmail.com> # Dell Latitude E5520
+Tested-by: janek <jan0x6c at gmail.com> # pata_jmicron with JMB362/JMB363
+[jn: with more symptoms in log message]
+Signed-off-by: Jonathan Nieder <jrnieder at gmail.com>
+Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
+---
+ drivers/pci/pcie/aspm.c |   13 ++++++++++---
+ 1 file changed, 10 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c
+index 4bdef24..b500840 100644
+--- a/drivers/pci/pcie/aspm.c
++++ b/drivers/pci/pcie/aspm.c
+@@ -508,9 +508,6 @@ static int pcie_aspm_sanity_check(struct pci_dev *pdev)
+ 	int pos;
+ 	u32 reg32;
+ 
+-	if (aspm_disabled)
+-		return 0;
+-
+ 	/*
+ 	 * Some functions in a slot might not all be PCIe functions,
+ 	 * very strange. Disable ASPM for the whole slot
+@@ -519,6 +516,16 @@ static int pcie_aspm_sanity_check(struct pci_dev *pdev)
+ 		pos = pci_pcie_cap(child);
+ 		if (!pos)
+ 			return -EINVAL;
++
++		/*
++		 * If ASPM is disabled then we're not going to change
++		 * the BIOS state. It's safe to continue even if it's a
++		 * pre-1.1 device
++		 */
++
++		if (aspm_disabled)
++			continue;
++
+ 		/*
+ 		 * Disable ASPM for pre-1.1 PCIe device, we follow MS to use
+ 		 * RBER bit to determine if a function is 1.1 version device
+-- 
+1.7.9.5
+

Modified: dists/sid/linux-2.6/debian/patches/series/base
==============================================================================
--- dists/sid/linux-2.6/debian/patches/series/base	Sun Apr  1 05:34:07 2012	(r18897)
+++ dists/sid/linux-2.6/debian/patches/series/base	Sun Apr  1 22:43:12 2012	(r18898)
@@ -84,3 +84,4 @@
 + bugfix/all/Don-t-limit-non-nested-epoll-paths.patch
 + bugfix/all/CIFS-Fix-a-spurious-error-in-cifs_push_posix_locks.patch
 + bugfix/all/kbuild-do-not-check-for-ancient-modutils-tools.patch
++ bugfix/all/ASPM-Fix-pcie-devices-with-non-pcie-children.patch



More information about the Kernel-svn-changes mailing list