svn commit: r301890 - head/sys/arm/arm
Andrew Turner
andrew at FreeBSD.org
Tue Jun 14 16:41:41 UTC 2016
Author: andrew
Date: Tue Jun 14 16:41:39 2016
New Revision: 301890
URL: https://svnweb.freebsd.org/changeset/base/301890
Log:
Move the arm call to intr_pic_init_secondary earlier in the secondary CPU
initialisation. This ensures it will complete before signalling to the boot
CPU it has booted. This fixes a race with the GIC where the arm_gic_map may
not be populated before it is used to bind interrupts leading to some
interrupts becoming bound to no CPUs.
Approved by: re (kib)
Sponsored by: ABT Systems Ltd
Modified:
head/sys/arm/arm/mp_machdep.c
Modified: head/sys/arm/arm/mp_machdep.c
==============================================================================
--- head/sys/arm/arm/mp_machdep.c Tue Jun 14 16:20:25 2016 (r301889)
+++ head/sys/arm/arm/mp_machdep.c Tue Jun 14 16:41:39 2016 (r301890)
@@ -199,6 +199,9 @@ init_secondary(int cpu)
vfp_init();
#endif
+ /* Configure the interrupt controller */
+ intr_pic_init_secondary();
+
mtx_lock_spin(&ap_boot_mtx);
atomic_add_rel_32(&smp_cpus, 1);
@@ -237,7 +240,6 @@ init_secondary(int cpu)
cpu_initclocks_ap();
CTR0(KTR_SMP, "go into scheduler");
- intr_pic_init_secondary();
/* Enter the scheduler */
sched_throw(NULL);
More information about the svn-src-all
mailing list