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