On Tue, Jul 14, 2026 at 06:01:12AM +0000, Flavien Solt wrote:
> The AIA specification requires an IOMMU to send the configured notice MSI
> after storing an MSI to an MRIF even when the corresponding interrupt-enable
> bit is clear. The problem is that riscv_iommu_msi_write() currently reads the
> MRIF interrupt-enable doubleword and suppresses the notice MSI when the bit
> is zero.
>
> This patch removes the enable-word read and always sends the notice MSI after
> updating the MRIF pending bit.
I'm not sure how these long lines will ultimately look when committed. I
suggest manually wrapping commit message lines.
>
> Fixes: 0c54acb8243d ("hw/riscv: add RISC-V IOMMU base emulation")
> Cc: [email protected]
> Signed-off-by: Flavien Solt <[email protected]>
> ---
> Tested with a deterministic qtest using qemu-system-riscv64.
Are these tests available somewhere?
>
> After this patch we get:
> enable=0: pending=0x20 notice=0x12d
> enable=1: pending=0x20 notice=0x12d
>
> hw/riscv/riscv-iommu.c | 15 +--------------
> 1 file changed, 1 insertion(+), 14 deletions(-)
>
> diff --git a/hw/riscv/riscv-iommu.c b/hw/riscv/riscv-iommu.c
> index f6865d1..9627cab 100644
> --- a/hw/riscv/riscv-iommu.c
> +++ b/hw/riscv/riscv-iommu.c
> @@ -788,20 +788,7 @@ static MemTxResult riscv_iommu_msi_write(RISCVIOMMUState
> *s,
> goto err;
> }
>
> - /* Get MRIF enable bits */
> - addr = addr + sizeof(intn);
> - res = dma_memory_read(s->target_as, addr, &intn, sizeof(intn), attrs);
> - if (res != MEMTX_OK) {
> - cause = RISCV_IOMMU_FQ_CAUSE_MSI_LOAD_FAULT;
> - goto err;
> - }
> -
> - if (!(intn & data)) {
> - /* notification disabled, MRIF update completed. */
> - return MEMTX_OK;
> - }
> -
> - /* Send notification message */
We should keep this comment.
> addr = PPN_PHYS(get_field(pte[1], RISCV_IOMMU_MSI_MRIF_NPPN));
> n190 = get_field(pte[1], RISCV_IOMMU_MSI_MRIF_NID) |
> (get_field(pte[1], RISCV_IOMMU_MSI_MRIF_NID_MSB) << 10);
>
> base-commit: 499039798cdad7d86b787fec0eaf1da4151c0f05
> --
> 2.54.0
>
Besides the line wrapping and the unnecessary removal of a comment,
this looks good.
Reviewed-by: Andrew Jones <[email protected]>
Thanks,
drew