]> git.proxmox.com Git - mirror_qemu.git/commit
RISC-V: Use atomic_cmpxchg to update PLIC bitmaps
authorMichael Clark <mjc@sifive.com>
Tue, 10 Apr 2018 08:02:46 +0000 (20:02 +1200)
committerAlistair Francis <alistair.francis@wdc.com>
Tue, 4 Sep 2018 20:19:31 +0000 (13:19 -0700)
commitd78940ec5d07d3b514f2fd8f941c58118fce2815
tree784811c909ed01f04daf697027ef9ea0edb1d52b
parentc3b03e5800a7151d3c746f40efceabdfdae08f85
RISC-V: Use atomic_cmpxchg to update PLIC bitmaps

The PLIC previously used a mutex to protect against concurrent
access to the claimed and pending bitfields. Instead of using
a mutex, we update the bitfields using atomic_cmpxchg.

Rename sifive_plic_num_irqs_pending to sifive_plic_irqs_pending
and add an early out if any interrupts are pending as the
count of pending interrupts is not used.

Cc: Sagar Karandikar <sagark@eecs.berkeley.edu>
Cc: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
Cc: Palmer Dabbelt <palmer@sifive.com>
Cc: Alistair Francis <Alistair.Francis@wdc.com>
Signed-off-by: Michael Clark <mjc@sifive.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
hw/riscv/sifive_plic.c
include/hw/riscv/sifive_plic.h