aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCyprien Laplace <cyprien@cypou.net>2020-11-26 01:17:04 +0000
committerEd Maste <emaste@FreeBSD.org>2021-03-14 16:25:25 +0000
commit9ac43bb7470b94ca249d091017bab29363a7ed65 (patch)
treeba9e6661a261739a56c1bce2e97e2239197c6c24
parent13c22f7495305f5b92874128b088ab47d9512c20 (diff)
downloadsrc-9ac43bb7470b94ca249d091017bab29363a7ed65.tar.gz
src-9ac43bb7470b94ca249d091017bab29363a7ed65.zip
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 (cherry picked from commit 46ca0b903cad8955574a2c61bed41c2b92aa2273) (cherry picked from commit 40f283b038015b5b750267a26402098418fd1fb3) Approved by: re (gjb)
-rw-r--r--sys/arm64/arm64/gic_v3.c6
1 files 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);
}