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 <[EMAIL PROTECTED]>  Mon, 17 Sep 2007 16:49:32 -0600
+ -- dann frazier <[EMAIL PROTECTED]>  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 <[EMAIL PROTECTED]>
+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 <[EMAIL PROTECTED]>
+Signed-off-by: Dave Jones <[EMAIL PROTECTED]>
+---
+
+Backported to Debian's 2.6.18 by dann frazier <[EMAIL PROTECTED]>
+
+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

_______________________________________________
Kernel-svn-changes mailing list
[email protected]
http://lists.alioth.debian.org/mailman/listinfo/kernel-svn-changes

Reply via email to