From ec9b648ef8ec6ccb2d2a452f273635351e0ef08f Mon Sep 17 00:00:00 2001 From: Marcel Moolenaar Date: Thu, 31 Oct 2013 22:46:03 +0000 Subject: Respect the kern.smp.disabled tunable. When we're scanning the MADT in ia64_probe_sapics(), we also create PCPU structures for any Local SAPICs we encounter. When SMP is disabled, this leaves us with partially setup PCPU structures, which typically results in panics when we're iterating over CPUs. When SMP is disabled, we now prevent the creation of the PCPU structures. --- sys/ia64/ia64/mp_machdep.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'sys') diff --git a/sys/ia64/ia64/mp_machdep.c b/sys/ia64/ia64/mp_machdep.c index 8e71b35e00aa4..a29b3995d510e 100644 --- a/sys/ia64/ia64/mp_machdep.c +++ b/sys/ia64/ia64/mp_machdep.c @@ -65,6 +65,8 @@ __FBSDID("$FreeBSD$"); extern uint64_t bdata[]; +extern int smp_disabled; + MALLOC_DEFINE(M_SMP, "SMP", "SMP related allocations"); void ia64_ap_startup(void); @@ -294,6 +296,9 @@ cpu_mp_add(u_int acpi_id, u_int id, u_int eid) void *dpcpu; u_int cpuid, sapic_id; + if (smp_disabled) + return; + sapic_id = SAPIC_ID_SET(id, eid); cpuid = (IA64_LID_GET_SAPIC_ID(ia64_get_lid()) == sapic_id) ? 0 : smp_cpus++; -- cgit v1.3