[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] xen/arm: Use the right GICD register to initialize IRQs routing



Currently IRQs routing is initialized to the wrong register and overwrites
interrupt configuration register (ICFGRn).
Furthermore, the register describes target CPUs for 4 interrupts, update
the cpumask variable to also redirect the last interrupts to the current cpu.

Reported-by: Sander Bogaert <sander.bogaert@xxxxxxxxxxxxx>
Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx>
---
 xen/arch/arm/gic.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index a7a70b8..181e12a 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -274,6 +274,7 @@ static void __init gic_dist_init(void)
 
     cpumask |= cpumask << 8;
     cpumask |= cpumask << 16;
+    cpumask |= cpumask << 24;
 
     /* Disable the distributor */
     GICD[GICD_CTLR] = 0;
@@ -292,7 +293,7 @@ static void __init gic_dist_init(void)
 
     /* Route all global IRQs to this CPU */
     for ( i = 32; i < gic.lines; i += 4 )
-        GICD[GICD_ICFGR + i / 4] = cpumask;
+        GICD[GICD_ITARGETSR + i / 4] = cpumask;
 
     /* Default priority for global interrupts */
     for ( i = 32; i < gic.lines; i += 4 )
-- 
1.7.10.4


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.