Re: [PATCH 2/2] hw/riscv/aia: Check for invalid IMSIC configs

Alistair Francis <[email protected]>
Newsgroups org.nongnu.qemu-riscv,org.nongnu.qemu-devel
Message-ID <[email protected]>
On Mon, 2026-08-24 at 12:35 +0930, Joel Stanley wrote:
> Assert that the IMSIC layout will be valid before creating the
> devices.
> 
> aia_guests is a command line parameter but the machines that allows
> it
> to be set (currently only virt) should be passing the correct stride
> for
> a given number of guests. The assert helps catch bugs in future
> changes
> and shouldn't be triggerable by an invalid user config.
> 
> Signed-off-by: Joel Stanley <[email protected]>

Acked-by: Alistair Francis <[email protected]>

Alistair

> ---
>  hw/riscv/aia.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/hw/riscv/aia.c b/hw/riscv/aia.c
> index c33a3b32bd45..c1a5982856c5 100644
> --- a/hw/riscv/aia.c
> +++ b/hw/riscv/aia.c
> @@ -43,6 +43,10 @@ DeviceState *riscv_create_aia(bool msimode, int
> aia_guests,
>      /* The RISC-V Advanced Interrupt Architecture, Chapter 1.2.
> Limits */
>      g_assert(num_sources <= 1023);
>  
> +    /* Prevent IMSIC MMIO regions from silently overlapping */
> +    g_assert(s_imsic_stride >= IMSIC_HART_SIZE(imsic_num_bits(1 +
> aia_guests)));
> +    g_assert(m_imsic_stride >= IMSIC_HART_SIZE(0));
> +
>      if (msimode) {
>          if (!kvm_enabled()) {
>              /* Per-socket M-level IMSICs */
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.