git: 46ca0b903cad - main - gic_v3: Use 64-bit writes to GICD_IROUTERn

Andrew Turner andrew at FreeBSD.org
Mon Jan 25 10:15:40 UTC 2021


The branch main has been updated by andrew:

URL: https://cgit.FreeBSD.org/src/commit/?id=46ca0b903cad8955574a2c61bed41c2b92aa2273

commit 46ca0b903cad8955574a2c61bed41c2b92aa2273
Author:     Cyprien Laplace <cyprien at cypou.net>
AuthorDate: 2020-11-26 01:17:04 +0000
Commit:     Andrew Turner <andrew at FreeBSD.org>
CommitDate: 2021-01-25 10:07:43 +0000

    gic_v3: Use 64-bit writes to GICD_IROUTERn
    
    While 32-bit accesses to GICD_IROUTERn are allowed,
    this is a 64-bit register.
    
    Pull Request:   https://github.com/freebsd/freebsd-src/pull/451
---
 sys/arm64/arm64/gic_v3.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/sys/arm64/arm64/gic_v3.c b/sys/arm64/arm64/gic_v3.c
index f230eb6bbd06..8630a27102e3 100644
--- a/sys/arm64/arm64/gic_v3.c
+++ b/sys/arm64/arm64/gic_v3.c
@@ -844,7 +844,7 @@ gic_v3_bind_intr(device_t dev, struct intr_irqsrc *isrc)
 	if (CPU_EMPTY(&isrc->isrc_cpu)) {
 		gic_irq_cpu = intr_irq_next_cpu(gic_irq_cpu, &all_cpus);
 		CPU_SETOF(gic_irq_cpu, &isrc->isrc_cpu);
-		gic_d_write(sc, 4, GICD_IROUTER(gi->gi_irq),
+		gic_d_write(sc, 8, GICD_IROUTER(gi->gi_irq),
 		    CPU_AFFINITY(gic_irq_cpu));
 	} else {
 		/*
@@ -852,7 +852,7 @@ gic_v3_bind_intr(device_t dev, struct intr_irqsrc *isrc)
 		 * the first CPU found.
 		 */
 		cpu = CPU_FFS(&isrc->isrc_cpu) - 1;
-		gic_d_write(sc, 4, GICD_IROUTER(gi->gi_irq), CPU_AFFINITY(cpu));
+		gic_d_write(sc, 8, GICD_IROUTER(gi->gi_irq), CPU_AFFINITY(cpu));
 	}
 
 	return (0);
@@ -1114,7 +1114,7 @@ gic_v3_dist_init(struct gic_v3_softc *sc)
 	 */
 	aff = CPU_AFFINITY(0);
 	for (i = GIC_FIRST_SPI; i < sc->gic_nirqs; i++)
-		gic_d_write(sc, 4, GICD_IROUTER(i), aff);
+		gic_d_write(sc, 8, GICD_IROUTER(i), aff);
 
 	return (0);
 }


More information about the dev-commits-src-all mailing list