svn commit: r269510 - in head/sys/x86: x86 xen

Roger Pau Monné royger at FreeBSD.org
Mon Aug 4 08:54:35 UTC 2014


Author: royger
Date: Mon Aug  4 08:54:34 2014
New Revision: 269510
URL: http://svnweb.freebsd.org/changeset/base/269510

Log:
  xen: change order of Xen intr init and IO APIC registration
  
  This change inserts the Xen interrupt subsystem (event channels)
  initialization between the system interrupt initialization and the IO
  APIC source registration.
  
  This is needed when running on Dom0, that routes physical interrupts
  on top of event channels, so that the interrupt sources found during
  IO APIC initialization can be registered using the Xen interrupt
  subsystem.
  
  The resulting order in the SI_SUB_INTR stage is the following:
  
  - System intr initialization
  - Xen intr initalization
  - IO APIC source registration
  
  Sponsored by: Citrix Systems R&D
  
  x86/x86/local_apic.c:
   - Change order of apic_setup_io to be called after xen interrupt
     subsystem is setup.
  
  x86/xen/xen_intr.c:
   - Init Xen event channels before apic_setup_io.

Modified:
  head/sys/x86/x86/local_apic.c
  head/sys/x86/xen/xen_intr.c

Modified: head/sys/x86/x86/local_apic.c
==============================================================================
--- head/sys/x86/x86/local_apic.c	Mon Aug  4 08:52:10 2014	(r269509)
+++ head/sys/x86/x86/local_apic.c	Mon Aug  4 08:54:34 2014	(r269510)
@@ -1449,7 +1449,7 @@ apic_setup_io(void *dummy __unused)
 	/* Enable the MSI "pic". */
 	msi_init();
 }
-SYSINIT(apic_setup_io, SI_SUB_INTR, SI_ORDER_SECOND, apic_setup_io, NULL);
+SYSINIT(apic_setup_io, SI_SUB_INTR, SI_ORDER_THIRD, apic_setup_io, NULL);
 
 #ifdef SMP
 /*

Modified: head/sys/x86/xen/xen_intr.c
==============================================================================
--- head/sys/x86/xen/xen_intr.c	Mon Aug  4 08:52:10 2014	(r269509)
+++ head/sys/x86/xen/xen_intr.c	Mon Aug  4 08:54:34 2014	(r269510)
@@ -634,7 +634,7 @@ xen_intr_init(void *dummy __unused)
 
 	return (0);
 }
-SYSINIT(xen_intr_init, SI_SUB_INTR, SI_ORDER_MIDDLE, xen_intr_init, NULL);
+SYSINIT(xen_intr_init, SI_SUB_INTR, SI_ORDER_SECOND, xen_intr_init, NULL);
 
 /*--------------------------- Common PIC Functions ---------------------------*/
 /**


More information about the svn-src-all mailing list