Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+16 −3
Original line number Diff line number Diff line
@@ -915,12 +915,18 @@ static void __init sun4v_init_mondo_queues(void)
		alloc_one_mondo(&tb->nonresum_mondo_pa, tb->nonresum_qmask);
		alloc_one_kbuf(&tb->nonresum_kernel_buf_pa,
			       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);
	}

	/* Load up the boot cpu's entries.  */
	sun4v_register_mondo_queues(hard_smp_processor_id());
}

static struct irqaction timer_irq_action = {
@@ -949,6 +955,13 @@ void __init init_IRQ(void)
	if (tlb_type == hypervisor)
		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
	 * registers, a spurious one could be left around from the
	 * PROM timer which we just disabled.