From 893ae7d7ba4daecfe4732cb51db8f140dc7211ff Mon Sep 17 00:00:00 2001 From: Haojin Tang Date: Tue, 2 Sep 2025 22:04:10 +0800 Subject: fix(risc-v, virt64, plic): use volatile rw for claim and complete --- libcpu/risc-v/virt64/plic.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'libcpu') diff --git a/libcpu/risc-v/virt64/plic.c b/libcpu/risc-v/virt64/plic.c index 8aab8b1292..051e89c5ce 100644 --- a/libcpu/risc-v/virt64/plic.c +++ b/libcpu/risc-v/virt64/plic.c @@ -93,7 +93,7 @@ void plic_set_threshold(int threshold) int plic_claim(void) { int hart = __raw_hartid(); - int irq = *(uint32_t *)PLIC_CLAIM(hart); + int irq = readl((uint32_t *)PLIC_CLAIM(hart)); return irq; } @@ -110,7 +110,7 @@ int plic_claim(void) void plic_complete(int irq) { int hart = __raw_hartid(); - *(uint32_t *)PLIC_COMPLETE(hart) = irq; + writel(irq, (uint32_t *)PLIC_COMPLETE(hart)); } void plic_set_ie(rt_uint32_t word_index, rt_uint32_t val) -- cgit v1.3.1