Starting qemu with qemu-system-x86_64 -S -M isapc -device {amd|intel}-iommu leads to a segfault. The code assume PCI bus is present and tries to access the bus structure without checking.
The patch series moves the error checks from vtd_realize() and amdvi_realize() to the generic x86_iommu_realize() and adds a check for PCI bus presence. v3 --> v4: * Restore correct object_dynamic_cast() in x86_iommu_realize() * Remove redundant casting in callee functions. Implemented in a new patch Mohammed Gamal (3): x86_iommu: Move machine check to x86_iommu_realize() intel_iommu, amd_iommu: Remove redundant object_dynamic_cast calls x86_iommu: check if machine has PCI bus hw/i386/amd_iommu.c | 13 ++----------- hw/i386/intel_iommu.c | 13 ++----------- hw/i386/x86-iommu.c | 13 +++++++++++++ 3 files changed, 17 insertions(+), 22 deletions(-) -- 1.8.3.1