diff options
author | David S. Miller <davem@sunset.davemloft.net> | 2007-10-15 19:43:19 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-10-17 19:25:00 -0400 |
commit | 719023fb90009855c4515a16349fc6d0a2f93a74 (patch) | |
tree | 771a4cfc914b85de5f095195f1a52ee920a35fd1 /arch | |
parent | 24f287e412ae90de8d281543c8b1043b6ed6c019 (diff) |
[SPARC64]: Fix boot failures due to bootmem.
Do not use *alloc_bootmem_low*(), because ARCH_LOW_ADDRESS_LIMIT
is 4GB and this results in boot failures if all of the physical
memory in the machine is above 4GB.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/sparc64/kernel/irq.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/sparc64/kernel/irq.c b/arch/sparc64/kernel/irq.c index f3922e5a89f6..2c3bea228159 100644 --- a/arch/sparc64/kernel/irq.c +++ b/arch/sparc64/kernel/irq.c | |||
@@ -877,7 +877,7 @@ void __cpuinit sun4v_register_mondo_queues(int this_cpu) | |||
877 | static void __init alloc_one_mondo(unsigned long *pa_ptr, unsigned long qmask) | 877 | static void __init alloc_one_mondo(unsigned long *pa_ptr, unsigned long qmask) |
878 | { | 878 | { |
879 | unsigned long size = PAGE_ALIGN(qmask + 1); | 879 | unsigned long size = PAGE_ALIGN(qmask + 1); |
880 | void *p = __alloc_bootmem_low(size, size, 0); | 880 | void *p = __alloc_bootmem(size, size, 0); |
881 | if (!p) { | 881 | if (!p) { |
882 | prom_printf("SUN4V: Error, cannot allocate mondo queue.\n"); | 882 | prom_printf("SUN4V: Error, cannot allocate mondo queue.\n"); |
883 | prom_halt(); | 883 | prom_halt(); |
@@ -889,7 +889,7 @@ static void __init alloc_one_mondo(unsigned long *pa_ptr, unsigned long qmask) | |||
889 | static void __init alloc_one_kbuf(unsigned long *pa_ptr, unsigned long qmask) | 889 | static void __init alloc_one_kbuf(unsigned long *pa_ptr, unsigned long qmask) |
890 | { | 890 | { |
891 | unsigned long size = PAGE_ALIGN(qmask + 1); | 891 | unsigned long size = PAGE_ALIGN(qmask + 1); |
892 | void *p = __alloc_bootmem_low(size, size, 0); | 892 | void *p = __alloc_bootmem(size, size, 0); |
893 | 893 | ||
894 | if (!p) { | 894 | if (!p) { |
895 | prom_printf("SUN4V: Error, cannot allocate kbuf page.\n"); | 895 | prom_printf("SUN4V: Error, cannot allocate kbuf page.\n"); |
@@ -906,7 +906,7 @@ static void __init init_cpu_send_mondo_info(struct trap_per_cpu *tb) | |||
906 | 906 | ||
907 | BUILD_BUG_ON((NR_CPUS * sizeof(u16)) > (PAGE_SIZE - 64)); | 907 | BUILD_BUG_ON((NR_CPUS * sizeof(u16)) > (PAGE_SIZE - 64)); |
908 | 908 | ||
909 | page = alloc_bootmem_low_pages(PAGE_SIZE); | 909 | page = alloc_bootmem_pages(PAGE_SIZE); |
910 | if (!page) { | 910 | if (!page) { |
911 | prom_printf("SUN4V: Error, cannot allocate cpu mondo page.\n"); | 911 | prom_printf("SUN4V: Error, cannot allocate cpu mondo page.\n"); |
912 | prom_halt(); | 912 | prom_halt(); |
@@ -953,7 +953,7 @@ void __init init_IRQ(void) | |||
953 | kill_prom_timer(); | 953 | kill_prom_timer(); |
954 | 954 | ||
955 | size = sizeof(struct ino_bucket) * NUM_IVECS; | 955 | size = sizeof(struct ino_bucket) * NUM_IVECS; |
956 | ivector_table = alloc_bootmem_low(size); | 956 | ivector_table = alloc_bootmem(size); |
957 | if (!ivector_table) { | 957 | if (!ivector_table) { |
958 | prom_printf("Fatal error, cannot allocate ivector_table\n"); | 958 | prom_printf("Fatal error, cannot allocate ivector_table\n"); |
959 | prom_halt(); | 959 | prom_halt(); |