diff options
| author | David S. Miller <davem@davemloft.net> | 2008-08-04 19:13:51 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2008-08-04 19:13:51 -0400 |
| commit | 43f589235e223418d5807ebcddca73ec8a45f52c (patch) | |
| tree | 9bca2b2e4dfea9203c77b4ef523c4576cd4321c3 | |
| parent | 91a4231cc2efb9134373bb2a93be96a284955607 (diff) | |
sparc64: Always allocate the send mondo blocks, even on non-sun4v.
The idea is that we'll use this cpu list array and mondo block
even for non-hypervisor platforms.
Signed-off-by: David S. Miller <davem@davemloft.net>
| -rw-r--r-- | arch/sparc64/kernel/irq.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/arch/sparc64/kernel/irq.c b/arch/sparc64/kernel/irq.c index c481673d249c..ba43d85e8dde 100644 --- a/arch/sparc64/kernel/irq.c +++ b/arch/sparc64/kernel/irq.c | |||
| @@ -915,12 +915,18 @@ static void __init sun4v_init_mondo_queues(void) | |||
| 915 | alloc_one_mondo(&tb->nonresum_mondo_pa, tb->nonresum_qmask); | 915 | alloc_one_mondo(&tb->nonresum_mondo_pa, tb->nonresum_qmask); |
| 916 | alloc_one_kbuf(&tb->nonresum_kernel_buf_pa, | 916 | alloc_one_kbuf(&tb->nonresum_kernel_buf_pa, |
| 917 | tb->nonresum_qmask); | 917 | tb->nonresum_qmask); |
| 918 | } | ||
| 919 | } | ||
| 920 | |||
| 921 | static void __init init_send_mondo_info(void) | ||
| 922 | { | ||
| 923 | int cpu; | ||
| 924 | |||
| 925 | for_each_possible_cpu(cpu) { | ||
| 926 | struct trap_per_cpu *tb = &trap_block[cpu]; | ||
| 918 | 927 | ||
| 919 | init_cpu_send_mondo_info(tb); | 928 | init_cpu_send_mondo_info(tb); |
| 920 | } | 929 | } |
| 921 | |||
| 922 | /* Load up the boot cpu's entries. */ | ||
| 923 | sun4v_register_mondo_queues(hard_smp_processor_id()); | ||
| 924 | } | 930 | } |
| 925 | 931 | ||
| 926 | static struct irqaction timer_irq_action = { | 932 | static struct irqaction timer_irq_action = { |
| @@ -949,6 +955,13 @@ void __init init_IRQ(void) | |||
| 949 | if (tlb_type == hypervisor) | 955 | if (tlb_type == hypervisor) |
| 950 | sun4v_init_mondo_queues(); | 956 | sun4v_init_mondo_queues(); |
| 951 | 957 | ||
| 958 | init_send_mondo_info(); | ||
| 959 | |||
| 960 | if (tlb_type == hypervisor) { | ||
| 961 | /* Load up the boot cpu's entries. */ | ||
| 962 | sun4v_register_mondo_queues(hard_smp_processor_id()); | ||
| 963 | } | ||
| 964 | |||
| 952 | /* We need to clear any IRQ's pending in the soft interrupt | 965 | /* We need to clear any IRQ's pending in the soft interrupt |
| 953 | * registers, a spurious one could be left around from the | 966 | * registers, a spurious one could be left around from the |
| 954 | * PROM timer which we just disabled. | 967 | * PROM timer which we just disabled. |
