diff options
author | Pavel Machek <pavel@suse.cz> | 2008-05-26 15:17:30 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2008-06-05 07:59:13 -0400 |
commit | 4f384f8bcdb5d618a0a68fb84c809e602c798b8f (patch) | |
tree | 87185300a666a1fbb59dcc3cfa6850f1d2a99452 /arch/x86/kernel/aperture_64.c | |
parent | fa5b8a30cf03520737e9a0ee2ee03a61b2eccf05 (diff) |
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.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/x86/kernel/aperture_64.c b/arch/x86/kernel/aperture_64.c index e5b17f910f8..eb20f168c0f 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) | |||
331 | add_memory_region(aper_base, aper_size, E820_RESERVED); | 331 | add_memory_region(aper_base, aper_size, E820_RESERVED); |
332 | update_e820(); | 332 | update_e820(); |
333 | } | 333 | } |
334 | return; | ||
335 | } | 334 | } |
336 | 335 | ||
336 | if (!fix) | ||
337 | return; | ||
338 | |||
337 | /* different nodes have different setting, disable them all at first*/ | 339 | /* different nodes have different setting, disable them all at first*/ |
338 | for (i = 0; i < ARRAY_SIZE(bus_dev_ranges); i++) { | 340 | for (i = 0; i < ARRAY_SIZE(bus_dev_ranges); i++) { |
339 | int bus; | 341 | int bus; |