diff options
Diffstat (limited to 'arch/sparc64/kernel/irq.c')
-rw-r--r-- | arch/sparc64/kernel/irq.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/arch/sparc64/kernel/irq.c b/arch/sparc64/kernel/irq.c index 3c1a2139f1b9..ff201c007e0c 100644 --- a/arch/sparc64/kernel/irq.c +++ b/arch/sparc64/kernel/irq.c | |||
@@ -888,7 +888,19 @@ static void __cpuinit init_one_mondo(unsigned long *pa_ptr, unsigned long type) | |||
888 | } | 888 | } |
889 | } | 889 | } |
890 | 890 | ||
891 | /* Allocate and init the mondo queues for this cpu. */ | 891 | static void __cpuinit init_one_kbuf(unsigned long *pa_ptr) |
892 | { | ||
893 | unsigned long page = get_zeroed_page(GFP_ATOMIC); | ||
894 | |||
895 | if (!page) { | ||
896 | prom_printf("SUN4V: Error, cannot allocate kbuf page.\n"); | ||
897 | prom_halt(); | ||
898 | } | ||
899 | |||
900 | *pa_ptr = __pa(page); | ||
901 | } | ||
902 | |||
903 | /* Allocate and init the mondo and error queues for this cpu. */ | ||
892 | void __cpuinit sun4v_init_mondo_queues(void) | 904 | void __cpuinit sun4v_init_mondo_queues(void) |
893 | { | 905 | { |
894 | int cpu = hard_smp_processor_id(); | 906 | int cpu = hard_smp_processor_id(); |
@@ -897,7 +909,9 @@ void __cpuinit sun4v_init_mondo_queues(void) | |||
897 | init_one_mondo(&tb->cpu_mondo_pa, HV_CPU_QUEUE_CPU_MONDO); | 909 | init_one_mondo(&tb->cpu_mondo_pa, HV_CPU_QUEUE_CPU_MONDO); |
898 | init_one_mondo(&tb->dev_mondo_pa, HV_CPU_QUEUE_DEVICE_MONDO); | 910 | init_one_mondo(&tb->dev_mondo_pa, HV_CPU_QUEUE_DEVICE_MONDO); |
899 | init_one_mondo(&tb->resum_mondo_pa, HV_CPU_QUEUE_RES_ERROR); | 911 | init_one_mondo(&tb->resum_mondo_pa, HV_CPU_QUEUE_RES_ERROR); |
912 | init_one_kbuf(&tb->resum_kernel_buf_pa); | ||
900 | init_one_mondo(&tb->nonresum_mondo_pa, HV_CPU_QUEUE_NONRES_ERROR); | 913 | init_one_mondo(&tb->nonresum_mondo_pa, HV_CPU_QUEUE_NONRES_ERROR); |
914 | init_one_kbuf(&tb->nonresum_kernel_buf_pa); | ||
901 | } | 915 | } |
902 | 916 | ||
903 | /* Only invoked on boot processor. */ | 917 | /* Only invoked on boot processor. */ |