Bandan Das <b...@redhat.com> writes:

> There's no indication of any sort that i440fx doesn't support
> "iommu=on"
>
> Reviewed-by: Eric Blake <ebl...@redhat.com>
> Signed-off-by: Bandan Das <b...@redhat.com>
> ---
>  hw/pci-host/piix.c | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/hw/pci-host/piix.c b/hw/pci-host/piix.c
> index 7b2fbf9..715208b 100644
> --- a/hw/pci-host/piix.c
> +++ b/hw/pci-host/piix.c
> @@ -34,6 +34,7 @@
>  #include "sysemu/sysemu.h"
>  #include "hw/i386/ioapic.h"
>  #include "qapi/visitor.h"
> +#include "qemu/error-report.h"
>  
>  /*
>   * I440FX chipset data sheet.
> @@ -301,6 +302,10 @@ static void i440fx_pcihost_realize(DeviceState *dev, 
> Error **errp)
>  static void i440fx_realize(PCIDevice *dev, Error **errp)
>  {
>      dev->config[I440FX_SMRAM] = 0x02;
> +
> +    if (object_property_get_bool(qdev_get_machine(), "iommu", NULL)) {
> +        error_report("warning: i440fx doesn't support emulated iommu");
> +    }
>  }
>  
>  PCIBus *i440fx_init(const char *host_type, const char *pci_type,

Hmm.

If I understand things correctly, we add property "iommu" to *any*
machine, whether it supports it or not (see machine_initfn() in
hw/core/machine.c).

Most machines don't support it.  You add a warning to one of them.
Why to that one and not the others?

Shouldn't we add properties only to machines where they make sense?
Adding them indiscrimiately defeats QOM introspection.

Reply via email to