hw/i386/intel_iommu: Fix index calculation in vtd_interrupt_remap_msi()
The values in "addr" are populated locally in this function in host endian byte order, so we must not swap the index_l field here. Signed-off-by: Thomas Huth <thuth@redhat.com> Message-Id: <20230802135723.178083-5-thuth@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Peter Xu <peterx@redhat.com>
This commit is contained in:
parent
4572b22cf9
commit
fcd8027423
@ -3459,7 +3459,7 @@ static int vtd_interrupt_remap_msi(IntelIOMMUState *iommu,
|
||||
goto out;
|
||||
}
|
||||
|
||||
index = addr.addr.index_h << 15 | le16_to_cpu(addr.addr.index_l);
|
||||
index = addr.addr.index_h << 15 | addr.addr.index_l;
|
||||
|
||||
#define VTD_IR_MSI_DATA_SUBHANDLE (0x0000ffff)
|
||||
#define VTD_IR_MSI_DATA_RESERVED (0xffff0000)
|
||||
|
Loading…
Reference in New Issue
Block a user