On Wed, Aug 02, 2023 at 03:57:17PM +0200, Thomas Huth wrote:
> The intel-iommu device is currently unusable on big endian hosts.
> When doing something like this on a s390x host:
>
> wget https://download.fedoraproject.org/pub/fedora/linux/releases/38/Server/x86_64/images/Fedora-Server-KVM-38-1.6.x86_64.qcow2
> ./qemu-system-x86_64 -M q35 -device intel-iommu -m 2G \
> -hda ~/Fedora-Server-KVM-38-1.6.x86_64.qcow2 -trace "vtd_*"
>
> ... the guest kernel crashes during boot, complaining about some
> problems with the iommu, and you can see clearly in the traces that
> some values are wrong when compared to running this on a x86 host.
>
> After spending quite some time hunting down the problems one by one,
> I think I now found them all - at least I can successfully boot the
> above kernel after I applied these patches.
>
> Thomas Huth (6):
> hw/i386/intel_iommu: Fix trivial endianness problems
> hw/i386/intel_iommu: Fix endianness problems related to
> VTD_IR_TableEntry
> hw/i386/intel_iommu: Fix struct VTDInvDescIEC on big endian hosts
> hw/i386/intel_iommu: Fix index calculation in
> vtd_interrupt_remap_msi()
> hw/i386/x86-iommu: Fix endianness issue in
> x86_iommu_irq_to_msi_message()
> include/hw/i386/x86-iommu: Fix struct X86IOMMU_MSIMessage for big
> endian hosts
All look right here. This was the 1st project I did after I worked on QEMU,
thanks again for fixing the issues for years!
Reviewed-by: Peter Xu <peterx@redhat.com>
This will need to be 8.2 material though, am I right?
Thanks,
--
Peter Xu