Commit 43f58923 authored by David S. Miller's avatar David S. Miller

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: default avatarDavid S. Miller <davem@davemloft.net>
parent 91a4231c
...@@ -915,12 +915,18 @@ static void __init sun4v_init_mondo_queues(void) ...@@ -915,12 +915,18 @@ static void __init sun4v_init_mondo_queues(void)
alloc_one_mondo(&tb->nonresum_mondo_pa, tb->nonresum_qmask); alloc_one_mondo(&tb->nonresum_mondo_pa, tb->nonresum_qmask);
alloc_one_kbuf(&tb->nonresum_kernel_buf_pa, alloc_one_kbuf(&tb->nonresum_kernel_buf_pa,
tb->nonresum_qmask); tb->nonresum_qmask);
}
}
static void __init init_send_mondo_info(void)
{
int cpu;
for_each_possible_cpu(cpu) {
struct trap_per_cpu *tb = &trap_block[cpu];
init_cpu_send_mondo_info(tb); init_cpu_send_mondo_info(tb);
} }
/* Load up the boot cpu's entries. */
sun4v_register_mondo_queues(hard_smp_processor_id());
} }
static struct irqaction timer_irq_action = { static struct irqaction timer_irq_action = {
...@@ -949,6 +955,13 @@ void __init init_IRQ(void) ...@@ -949,6 +955,13 @@ void __init init_IRQ(void)
if (tlb_type == hypervisor) if (tlb_type == hypervisor)
sun4v_init_mondo_queues(); sun4v_init_mondo_queues();
init_send_mondo_info();
if (tlb_type == hypervisor) {
/* Load up the boot cpu's entries. */
sun4v_register_mondo_queues(hard_smp_processor_id());
}
/* We need to clear any IRQ's pending in the soft interrupt /* We need to clear any IRQ's pending in the soft interrupt
* registers, a spurious one could be left around from the * registers, a spurious one could be left around from the
* PROM timer which we just disabled. * PROM timer which we just disabled.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment