svn commit: r269646 - head/sys/arm/arm

Ian Lepore ian at FreeBSD.org
Wed Aug 6 21:27:16 UTC 2014


Author: ian
Date: Wed Aug  6 21:27:15 2014
New Revision: 269646
URL: http://svnweb.freebsd.org/changeset/base/269646

Log:
  Use a SYSINIT to init the array of interrupt names on arm.  This was
  called from initarm() in arm/machdep.c, but many legacy arm platforms
  have their own private initarm(), so a SYSINIT fixes everyone.
  
  Reported by:	jmg

Modified:
  head/sys/arm/arm/intr.c
  head/sys/arm/arm/machdep.c

Modified: head/sys/arm/arm/intr.c
==============================================================================
--- head/sys/arm/arm/intr.c	Wed Aug  6 21:16:15 2014	(r269645)
+++ head/sys/arm/arm/intr.c	Wed Aug  6 21:27:15 2014	(r269646)
@@ -41,6 +41,7 @@ __FBSDID("$FreeBSD$");
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/syslog.h>
+#include <sys/kernel.h>
 #include <sys/malloc.h>
 #include <sys/proc.h>
 #include <sys/bus.h>
@@ -75,8 +76,8 @@ size_t sintrnames = sizeof(intrnames);
  * assumptions of vmstat(8) and the kdb "show intrcnt" command, the two
  * consumers of this data.
  */
-void
-arm_intrnames_init(void)
+static void
+intr_init(void *unused)
 {
 	int i;
 
@@ -86,6 +87,8 @@ arm_intrnames_init(void)
 	}
 }
 
+SYSINIT(intr_init, SI_SUB_INTR, SI_ORDER_FIRST, intr_init, NULL);
+
 void
 arm_setup_irqhandler(const char *name, driver_filter_t *filt,
     void (*hand)(void*), void *arg, int irq, int flags, void **cookiep)

Modified: head/sys/arm/arm/machdep.c
==============================================================================
--- head/sys/arm/arm/machdep.c	Wed Aug  6 21:16:15 2014	(r269645)
+++ head/sys/arm/arm/machdep.c	Wed Aug  6 21:27:15 2014	(r269646)
@@ -1278,7 +1278,6 @@ initarm(struct arm_boot_params *abp)
 
 	init_proc0(kernelstack.pv_va);
 
-	arm_intrnames_init();
 	arm_vector_init(ARM_VECTORS_HIGH, ARM_VEC_ALL);
 	pmap_bootstrap(freemempos, &kernel_l1pt);
 	msgbufp = (void *)msgbufpv.pv_va;


More information about the svn-src-head mailing list