[kernel] r19355 - in dists/trunk/linux/debian: . patches patches/bugfix/x86

Ben Hutchings benh at alioth.debian.org
Tue Aug 28 18:04:28 UTC 2012


Author: benh
Date: Tue Aug 28 18:04:03 2012
New Revision: 19355

Log:
mfd: lpc_ich: Fix a 3.5 kernel regression for iTCO_wdt driver (Closes: #686040)

Added:
   dists/trunk/linux/debian/patches/bugfix/x86/mfd-lpc_ich-Fix-a-3.5-kernel-regression-for-iTCO_wdt.patch
Modified:
   dists/trunk/linux/debian/changelog
   dists/trunk/linux/debian/patches/series

Modified: dists/trunk/linux/debian/changelog
==============================================================================
--- dists/trunk/linux/debian/changelog	Tue Aug 28 04:31:51 2012	(r19354)
+++ dists/trunk/linux/debian/changelog	Tue Aug 28 18:04:03 2012	(r19355)
@@ -3,6 +3,10 @@
   * New upstream stable update:
     http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.5.3
 
+  [ Ben Hutchings ]
+  * mfd: lpc_ich: Fix a 3.5 kernel regression for iTCO_wdt driver
+    (Closes: #686040)
+
  -- Ben Hutchings <ben at decadent.org.uk>  Mon, 27 Aug 2012 17:22:33 -0700
 
 linux (3.5.2-1~experimental.1) experimental; urgency=low

Added: dists/trunk/linux/debian/patches/bugfix/x86/mfd-lpc_ich-Fix-a-3.5-kernel-regression-for-iTCO_wdt.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/trunk/linux/debian/patches/bugfix/x86/mfd-lpc_ich-Fix-a-3.5-kernel-regression-for-iTCO_wdt.patch	Tue Aug 28 18:04:03 2012	(r19355)
@@ -0,0 +1,91 @@
+From: Feng Tang <feng.tang at intel.com>
+Date: Thu, 16 Aug 2012 15:50:10 +0800
+Subject: mfd: lpc_ich: Fix a 3.5 kernel regression for iTCO_wdt driver
+
+commit 092369efbd6ef6b4a215741ce9f65446bf45beff upstream.
+
+There are many reports (including 2 of my machines) that iTCO_wdt watchdog
+driver fails to be initialized in 3.5 kernel with error message like:
+
+[    5.265175] ACPI Warning: 0x00001060-0x0000107f SystemIO conflicts with Region \_SB_.PCI0.LPCB.TCOI 1 (20120320/utaddress-251)
+[    5.265192] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
+[    5.265206] lpc_ich: Resource conflict(s) found affecting iTCO_wdt
+
+The root cause the iTCO_wdt driver in 3.4 probes the HW IO resource from
+LPC's PCI config space, while in 3.5 kernel it relies on lpc_ich driver
+for the probe, which adds a new acpi_check_resource_conflict() check, and
+give up the probe if there is any conflict with ACPI.
+
+Fix it by removing all the checks for iTCO_wdt to keep the same behavior as
+3.4 kernel.
+https://bugzilla.kernel.org/show_bug.cgi?id=44991
+
+Actually the same check could be removed for the gpio-ich in lpc_ich.c,
+but I'm not sure if it will cause problems.
+
+Signed-off-by: Feng Tang <feng.tang at intel.com>
+Cc: Aaron Sierra <asierra at xes-inc.com>
+Cc: Wim Van Sebroeck <wim at iguana.be>
+Cc: Len Brown <len.brown at intel.com>
+Cc: Bob Moore <robert.moore at intel.com>
+Signed-off-by: Samuel Ortiz <sameo at linux.intel.com>
+---
+ drivers/mfd/lpc_ich.c |   20 +-------------------
+ 1 file changed, 1 insertion(+), 19 deletions(-)
+
+diff --git a/drivers/mfd/lpc_ich.c b/drivers/mfd/lpc_ich.c
+index 027cc8f..a05fdfc 100644
+--- a/drivers/mfd/lpc_ich.c
++++ b/drivers/mfd/lpc_ich.c
+@@ -765,7 +765,6 @@ static int __devinit lpc_ich_init_wdt(struct pci_dev *dev,
+ 	u32 base_addr_cfg;
+ 	u32 base_addr;
+ 	int ret;
+-	bool acpi_conflict = false;
+ 	struct resource *res;
+ 
+ 	/* Setup power management base register */
+@@ -780,20 +779,11 @@ static int __devinit lpc_ich_init_wdt(struct pci_dev *dev,
+ 	res = wdt_io_res(ICH_RES_IO_TCO);
+ 	res->start = base_addr + ACPIBASE_TCO_OFF;
+ 	res->end = base_addr + ACPIBASE_TCO_END;
+-	ret = acpi_check_resource_conflict(res);
+-	if (ret) {
+-		acpi_conflict = true;
+-		goto wdt_done;
+-	}
+ 
+ 	res = wdt_io_res(ICH_RES_IO_SMI);
+ 	res->start = base_addr + ACPIBASE_SMI_OFF;
+ 	res->end = base_addr + ACPIBASE_SMI_END;
+-	ret = acpi_check_resource_conflict(res);
+-	if (ret) {
+-		acpi_conflict = true;
+-		goto wdt_done;
+-	}
++
+ 	lpc_ich_enable_acpi_space(dev);
+ 
+ 	/*
+@@ -813,11 +803,6 @@ static int __devinit lpc_ich_init_wdt(struct pci_dev *dev,
+ 		res = wdt_mem_res(ICH_RES_MEM_GCS);
+ 		res->start = base_addr + ACPIBASE_GCS_OFF;
+ 		res->end = base_addr + ACPIBASE_GCS_END;
+-		ret = acpi_check_resource_conflict(res);
+-		if (ret) {
+-			acpi_conflict = true;
+-			goto wdt_done;
+-		}
+ 	}
+ 
+ 	lpc_ich_finalize_cell(&lpc_ich_cells[LPC_WDT], id);
+@@ -825,9 +810,6 @@ static int __devinit lpc_ich_init_wdt(struct pci_dev *dev,
+ 				1, NULL, 0);
+ 
+ wdt_done:
+-	if (acpi_conflict)
+-		pr_warn("Resource conflict(s) found affecting %s\n",
+-				lpc_ich_cells[LPC_WDT].name);
+ 	return ret;
+ }
+ 

Modified: dists/trunk/linux/debian/patches/series
==============================================================================
--- dists/trunk/linux/debian/patches/series	Tue Aug 28 04:31:51 2012	(r19354)
+++ dists/trunk/linux/debian/patches/series	Tue Aug 28 18:04:03 2012	(r19355)
@@ -57,3 +57,4 @@
 bugfix/all/hwmon-applesmc-Allow-negative-temperature-values.patch
 bugfix/all/hwmon-applesmc-Ignore-some-temperature-registers.patch
 bugfix/all/hwmon-applesmc-Decode-and-act-on-read-write-status-c.patch
+bugfix/x86/mfd-lpc_ich-Fix-a-3.5-kernel-regression-for-iTCO_wdt.patch



More information about the Kernel-svn-changes mailing list