[kernel] r9537 - in dists/etch/linux-2.6/debian: . patches/bugfix patches/series

Dann Frazier dannf at alioth.debian.org
Mon Sep 17 23:12:10 UTC 2007


Author: dannf
Date: Mon Sep 17 23:12:09 2007
New Revision: 9537

Log:
* Fix a regression introduced by the intel_agp changes in -13 that caused
  boot-time hangs on large memory systems. (closes: #438458)

Added:
   dists/etch/linux-2.6/debian/patches/bugfix/intel_agp-dont-load-if-no-IGD-and-AGP-port-backport.patch
Modified:
   dists/etch/linux-2.6/debian/changelog
   dists/etch/linux-2.6/debian/patches/series/14

Modified: dists/etch/linux-2.6/debian/changelog
==============================================================================
--- dists/etch/linux-2.6/debian/changelog	(original)
+++ dists/etch/linux-2.6/debian/changelog	Mon Sep 17 23:12:09 2007
@@ -24,8 +24,10 @@
     group). (closes: #404815)
   * Fix a BUG in fuse_ctl_add_dentry by resetting the dentry counter in
     fuse_ctl_kill_sb(). (closes: #427518)
+  * Fix a regression introduced by the intel_agp changes in -13 that caused
+    boot-time hangs on large memory systems. (closes: #438458)
 
- -- dann frazier <dannf at debian.org>  Mon, 17 Sep 2007 16:49:32 -0600
+ -- dann frazier <dannf at debian.org>  Mon, 17 Sep 2007 16:56:07 -0600
 
 linux-2.6 (2.6.18.dfsg.1-13etch2) stable-security; urgency=high
 

Added: dists/etch/linux-2.6/debian/patches/bugfix/intel_agp-dont-load-if-no-IGD-and-AGP-port-backport.patch
==============================================================================
--- (empty file)
+++ dists/etch/linux-2.6/debian/patches/bugfix/intel_agp-dont-load-if-no-IGD-and-AGP-port-backport.patch	Mon Sep 17 23:12:09 2007
@@ -0,0 +1,105 @@
+From: Wang Zhenyu <zhenyu.z.wang at intel.com>
+Date: Thu, 21 Jun 2007 05:43:18 +0000 (+0800)
+Subject: [AGPGART] intel_agp: don't load if no IGD and AGP port
+X-Git-Tag: v2.6.22-rc6~41^2
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=47d46379eb66278107947729e34a833c76dca252
+
+[AGPGART] intel_agp: don't load if no IGD and AGP port
+
+After i915 chip, GMCH has no AGP port. Origin bridge driver in device
+table will try to access illegal regs like APBASE, APSIZE, etc. This
+may cause problem.
+
+So mark them as NULL in the table, we won't load if no IGD got detect
+and bridge has no AGP port.
+
+Signed-off-by: Wang Zhenyu <zhenyu.z.wang at intel.com>
+Signed-off-by: Dave Jones <davej at redhat.com>
+---
+
+Backported to Debian's 2.6.18 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.18.orig/drivers/char/agp/intel-agp.c linux-source-2.6.18/drivers/char/agp/intel-agp.c
+--- linux-source-2.6.18.orig/drivers/char/agp/intel-agp.c	2007-08-29 02:12:39.000000000 -0600
++++ linux-source-2.6.18/drivers/char/agp/intel-agp.c	2007-09-06 12:54:08.000000000 -0600
+@@ -1768,56 +1768,56 @@ static int __devinit agp_intel_probe(str
+ 		if (find_i830(PCI_DEVICE_ID_INTEL_82915G_IG))
+ 			bridge->driver = &intel_915_driver;
+ 		else
+-			bridge->driver = &intel_845_driver;
++			bridge->driver = NULL;
+ 		name = "915G";
+ 		break;
+ 	case PCI_DEVICE_ID_INTEL_82915GM_HB:
+ 		if (find_i830(PCI_DEVICE_ID_INTEL_82915GM_IG))
+ 			bridge->driver = &intel_915_driver;
+ 		else
+-			bridge->driver = &intel_845_driver;
++			bridge->driver = NULL;
+ 		name = "915GM";
+ 		break;
+ 	case PCI_DEVICE_ID_INTEL_82945G_HB:
+ 		if (find_i830(PCI_DEVICE_ID_INTEL_82945G_IG))
+ 			bridge->driver = &intel_915_driver;
+ 		else
+-			bridge->driver = &intel_845_driver;
++			bridge->driver = NULL;
+ 		name = "945G";
+ 		break;
+ 	case PCI_DEVICE_ID_INTEL_82945GM_HB:
+ 		if (find_i830(PCI_DEVICE_ID_INTEL_82945GM_IG))
+ 			bridge->driver = &intel_915_driver;
+ 		else
+-			bridge->driver = &intel_845_driver;
++			bridge->driver = NULL;
+ 		name = "945GM";
+ 		break;
+ 	case PCI_DEVICE_ID_INTEL_82946GZ_HB:
+ 		if (find_i830(PCI_DEVICE_ID_INTEL_82946GZ_IG))
+ 			bridge->driver = &intel_i965_driver;
+ 		else
+-			bridge->driver = &intel_845_driver;
++			bridge->driver = NULL;
+ 		name = "946GZ";
+ 		break;
+ 	case PCI_DEVICE_ID_INTEL_82965G_1_HB:
+ 		if (find_i830(PCI_DEVICE_ID_INTEL_82965G_1_IG))
+ 			bridge->driver = &intel_i965_driver;
+ 		else
+-			bridge->driver = &intel_845_driver;
++			bridge->driver = NULL;
+ 		name = "965G";
+ 		break;
+ 	case PCI_DEVICE_ID_INTEL_82965Q_HB:
+ 		if (find_i830(PCI_DEVICE_ID_INTEL_82965Q_IG))
+ 			bridge->driver = &intel_i965_driver;
+ 		else
+-			bridge->driver = &intel_845_driver;
++			bridge->driver = NULL;
+ 		name = "965Q";
+ 		break;
+ 	case PCI_DEVICE_ID_INTEL_82965G_HB:
+ 		if (find_i830(PCI_DEVICE_ID_INTEL_82965G_IG))
+ 			bridge->driver = &intel_i965_driver;
+ 		else
+-			bridge->driver = &intel_845_driver;
++			bridge->driver = NULL;
+ 		name = "965G";
+ 		break;
+ 
+@@ -1837,6 +1837,15 @@ static int __devinit agp_intel_probe(str
+ 		return -ENODEV;
+ 	};
+ 
++	if (bridge->driver == NULL) {
++		/* bridge has no AGP and no IGD detected */
++		if (cap_ptr)
++			printk(KERN_WARNING PFX "Failed to find bridge device "
++				"(device id: %04x)\n", pdev->device);
++		agp_put_bridge(bridge);
++		return -ENODEV;
++	}
++		       
+ 	bridge->dev = pdev;
+ 	bridge->capndx = cap_ptr;
+ 

Modified: dists/etch/linux-2.6/debian/patches/series/14
==============================================================================
--- dists/etch/linux-2.6/debian/patches/series/14	(original)
+++ dists/etch/linux-2.6/debian/patches/series/14	Mon Sep 17 23:12:09 2007
@@ -16,3 +16,4 @@
 + bugfix/ipv6-disallow-RH0-by-default-2.patch
 + bugfix/clear-spurious-irq.patch
 + bugfix/fuse-BUG-in-control-fs-mount.patch
++ bugfix/intel_agp-dont-load-if-no-IGD-and-AGP-port-backport.patch



More information about the Kernel-svn-changes mailing list