diff options
| author | Haojin Tang <[email protected]> | 2025-09-02 22:04:10 +0800 |
|---|---|---|
| committer | R b b666 <[email protected]> | 2025-09-03 09:48:22 +0800 |
| commit | 893ae7d7ba4daecfe4732cb51db8f140dc7211ff (patch) | |
| tree | 9ca55a8a25d689f42be6d4f3513a0c36c2dd7b32 /libcpu | |
| parent | c0142c786e127463ba78b9021c263f081c87b9f5 (diff) | |
fix(risc-v, virt64, plic): use volatile rw for claim and complete
Diffstat (limited to 'libcpu')
| -rw-r--r-- | libcpu/risc-v/virt64/plic.c | 4 |
1 files changed, 2 insertions, 2 deletions
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) |
