summaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/aperture_64.c
diff options
context:
space:
mode:
authorPavel Machek <pavel@suse.cz>2008-05-26 21:17:30 +0200
committerThomas Gleixner <tglx@linutronix.de>2008-06-05 13:59:13 +0200
commit4f384f8bcdb5d618a0a68fb84c809e602c798b8f (patch)
tree87185300a666a1fbb59dcc3cfa6850f1d2a99452 /arch/x86/kernel/aperture_64.c
parentfa5b8a30cf03520737e9a0ee2ee03a61b2eccf05 (diff)
downloadlinux-stable-4f384f8bcdb5d618a0a68fb84c809e602c798b8f.tar.gz
linux-stable-4f384f8bcdb5d618a0a68fb84c809e602c798b8f.tar.bz2
linux-stable-4f384f8bcdb5d618a0a68fb84c809e602c798b8f.zip
x86: aperture_64.c: corner case wrong
If fix == 0, aper_enabled == 1, gart_fix_e820 == 0 if (!fix && !aper_enabled) return; if (gart_fix_e820 && !fix && aper_enabled) { if (e820_any_mapped(aper_base, aper_base + aper_size, E820_RAM)) { /* reserve it, so we can reuse it in second kernel */ printk(KERN_INFO "update e820 for GART\n"); add_memory_region(aper_base, aper_size, E820_RESERVED); update_e820(); } return; } /* different nodes have different setting, disable them all atfirst*/ we'll fall back here and disable all the settings, even when they were all consistent. What about this? (I hope it compiles...) Signed-off-by: Pavel Machek <pavel@suse.cz> Cc: Dave Jones <davej@codemonkey.org.uk> Cc: Andi Kleen <andi@firstfloor.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86/kernel/aperture_64.c')
-rw-r--r--arch/x86/kernel/aperture_64.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/x86/kernel/aperture_64.c b/arch/x86/kernel/aperture_64.c
index e5b17f910f8b..eb20f168c0fd 100644
--- a/arch/x86/kernel/aperture_64.c
+++ b/arch/x86/kernel/aperture_64.c
@@ -331,9 +331,11 @@ void __init early_gart_iommu_check(void)
add_memory_region(aper_base, aper_size, E820_RESERVED);
update_e820();
}
- return;
}
+ if (!fix)
+ return;
+
/* different nodes have different setting, disable them all at first*/
for (i = 0; i < ARRAY_SIZE(bus_dev_ranges); i++) {
int bus;