On 29.11.2017 13:33, Mohammed Gamal wrote: > 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. > > Since Intel VT-d and AMDVI should only work with PCI, add a > check for PCI bus and return error if not present. > > Reviewed-by: Peter Xu <pet...@redhat.com> > Reviewed-by: Eduardo Habkost <ehabk...@redhat.com> > Signed-off-by: Mohammed Gamal <mga...@redhat.com> > --- > hw/i386/x86-iommu.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/i386/x86-iommu.c b/hw/i386/x86-iommu.c > index 51de519..8a01a2d 100644 > --- a/hw/i386/x86-iommu.c > +++ b/hw/i386/x86-iommu.c > @@ -88,7 +88,7 @@ static void x86_iommu_realize(DeviceState *dev, Error > **errp) > PC_MACHINE(object_dynamic_cast(OBJECT(ms), TYPE_PC_MACHINE)); > QLIST_INIT(&x86_iommu->iec_notifiers); > > - if (!pcms) { > + if (!pcms || !pcms->bus) { > error_setg(errp, "Machine-type '%s' not supported by IOMMU", > mc->name); > return; >
Reviewed-by: Thomas Huth <th...@redhat.com>