]> err.no Git - linux-2.6/blobdiff - arch/x86/kernel/aperture_64.c
x86: fix lockdep warning during suspend-to-ram
[linux-2.6] / arch / x86 / kernel / aperture_64.c
index 0b837bb3becb409115c7cf34fb62e6838e4224ef..479926d9e0048d242023def47b3f596550a13344 100644 (file)
@@ -18,6 +18,7 @@
 #include <linux/pci.h>
 #include <linux/bitops.h>
 #include <linux/ioport.h>
+#include <linux/suspend.h>
 #include <asm/e820.h>
 #include <asm/io.h>
 #include <asm/gart.h>
 #include <asm/k8.h>
 
 int gart_iommu_aperture;
-int gart_iommu_aperture_disabled __initdata = 0;
-int gart_iommu_aperture_allowed __initdata = 0;
+int gart_iommu_aperture_disabled __initdata;
+int gart_iommu_aperture_allowed __initdata;
 
 int fallback_aper_order __initdata = 1; /* 64MB */
-int fallback_aper_force __initdata = 0;
+int fallback_aper_force __initdata;
 
 int fix_aperture __initdata = 1;
 
@@ -76,6 +77,8 @@ static u32 __init allocate_aperture(void)
        printk(KERN_INFO "Mapping aperture over %d KB of RAM @ %lx\n",
                        aper_size >> 10, __pa(p));
        insert_aperture_resource((u32)__pa(p), aper_size);
+       register_nosave_region((u32)__pa(p) >> PAGE_SHIFT,
+                               (u32)__pa(p+aper_size) >> PAGE_SHIFT);
 
        return (u32)__pa(p);
 }
@@ -85,10 +88,6 @@ static int __init aperture_valid(u64 aper_base, u32 aper_size)
        if (!aper_base)
                return 0;
 
-       if (aper_size < 64*1024*1024) {
-               printk(KERN_ERR "Aperture too small (%d MB)\n", aper_size>>20);
-               return 0;
-       }
        if (aper_base + aper_size > 0x100000000UL) {
                printk(KERN_ERR "Aperture beyond 4GB. Ignoring.\n");
                return 0;
@@ -97,6 +96,10 @@ static int __init aperture_valid(u64 aper_base, u32 aper_size)
                printk(KERN_ERR "Aperture pointing to e820 RAM. Ignoring.\n");
                return 0;
        }
+       if (aper_size < 64*1024*1024) {
+               printk(KERN_ERR "Aperture too small (%d MB)\n", aper_size>>20);
+               return 0;
+       }
 
        return 1;
 }