]> Pileus Git - ~andy/linux/commitdiff
x86: update iomem_resource end based on CPU physical address capabilities
authorBjorn Helgaas <bjorn.helgaas@hp.com>
Tue, 26 Oct 2010 21:41:49 +0000 (15:41 -0600)
committerJesse Barnes <jbarnes@virtuousgeek.org>
Tue, 26 Oct 2010 22:33:44 +0000 (15:33 -0700)
The iomem_resource map reflects the available physical address space.
We statically initialize the end to -1, i.e., 0xffffffff_ffffffff, but
of course we can only use as much as the CPU can address.

This patch updates the end based on the CPU capabilities, so we don't
mistakenly allocate space that isn't usable, as we're likely to do when
allocating from the top-down.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
arch/x86/kernel/setup.c

index c3a4fbb2b996d00277d6523cb76b74e2c5944621..922b5a1f978b899f55bfed0611f4b6456482a124 100644 (file)
@@ -788,6 +788,7 @@ void __init setup_arch(char **cmdline_p)
 
        x86_init.oem.arch_setup();
 
+       iomem_resource.end = (1ULL << boot_cpu_data.x86_phys_bits) - 1;
        setup_memory_map();
        parse_setup_data();
        /* update the e820_saved too */