diff mbox series

[v5,06/12] hw/arm/virt: Remove device tree restriction for virtio-iommu

Message ID 20211020172745.620101-7-jean-philippe@linaro.org
State Superseded
Headers show
Series virtio-iommu: Add ACPI support | expand

Commit Message

Jean-Philippe Brucker Oct. 20, 2021, 5:27 p.m. UTC
virtio-iommu is now supported with ACPI VIOT as well as device tree.
Remove the restriction that prevents from instantiating a virtio-iommu
device under ACPI.

Reviewed-by: Eric Auger <eric.auger@redhat.com>
Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
---
 hw/arm/virt.c                | 10 ++--------
 hw/virtio/virtio-iommu-pci.c | 12 ++----------
 2 files changed, 4 insertions(+), 18 deletions(-)

-- 
2.33.0

Comments

Igor Mammedov Oct. 21, 2021, 1:53 p.m. UTC | #1
On Wed, 20 Oct 2021 18:27:40 +0100
Jean-Philippe Brucker <jean-philippe@linaro.org> wrote:

> virtio-iommu is now supported with ACPI VIOT as well as device tree.

> Remove the restriction that prevents from instantiating a virtio-iommu

> device under ACPI.

> 

> Reviewed-by: Eric Auger <eric.auger@redhat.com>

> Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>


Acked-by: Igor Mammedov <imammedo@redhat.com>


> ---

>  hw/arm/virt.c                | 10 ++--------

>  hw/virtio/virtio-iommu-pci.c | 12 ++----------

>  2 files changed, 4 insertions(+), 18 deletions(-)

> 

> diff --git a/hw/arm/virt.c b/hw/arm/virt.c

> index f7f456bf58..3da7a86e37 100644

> --- a/hw/arm/virt.c

> +++ b/hw/arm/virt.c

> @@ -2561,16 +2561,10 @@ static HotplugHandler *virt_machine_get_hotplug_handler(MachineState *machine,

>      MachineClass *mc = MACHINE_GET_CLASS(machine);

>  

>      if (device_is_dynamic_sysbus(mc, dev) ||

> -       (object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM))) {

> +        object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM) ||

> +        object_dynamic_cast(OBJECT(dev), TYPE_VIRTIO_IOMMU_PCI)) {

>          return HOTPLUG_HANDLER(machine);

>      }

> -    if (object_dynamic_cast(OBJECT(dev), TYPE_VIRTIO_IOMMU_PCI)) {

> -        VirtMachineState *vms = VIRT_MACHINE(machine);

> -

> -        if (!vms->bootinfo.firmware_loaded || !virt_is_acpi_enabled(vms)) {

> -            return HOTPLUG_HANDLER(machine);

> -        }

> -    }

>      return NULL;

>  }

>  

> diff --git a/hw/virtio/virtio-iommu-pci.c b/hw/virtio/virtio-iommu-pci.c

> index 770c286be7..5c0b87316a 100644

> --- a/hw/virtio/virtio-iommu-pci.c

> +++ b/hw/virtio/virtio-iommu-pci.c

> @@ -48,16 +48,8 @@ static void virtio_iommu_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)

>      VirtIOIOMMU *s = VIRTIO_IOMMU(vdev);

>  

>      if (!qdev_get_machine_hotplug_handler(DEVICE(vpci_dev))) {

> -        MachineClass *mc = MACHINE_GET_CLASS(qdev_get_machine());

> -

> -        error_setg(errp,

> -                   "%s machine fails to create iommu-map device tree bindings",

> -                   mc->name);

> -        error_append_hint(errp,

> -                          "Check your machine implements a hotplug handler "

> -                          "for the virtio-iommu-pci device\n");

> -        error_append_hint(errp, "Check the guest is booted without FW or with "

> -                          "-no-acpi\n");

> +        error_setg(errp, "Check your machine implements a hotplug handler "

> +                         "for the virtio-iommu-pci device");

>          return;

>      }

>      for (int i = 0; i < s->nb_reserved_regions; i++) {
diff mbox series

Patch

diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index f7f456bf58..3da7a86e37 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -2561,16 +2561,10 @@  static HotplugHandler *virt_machine_get_hotplug_handler(MachineState *machine,
     MachineClass *mc = MACHINE_GET_CLASS(machine);
 
     if (device_is_dynamic_sysbus(mc, dev) ||
-       (object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM))) {
+        object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM) ||
+        object_dynamic_cast(OBJECT(dev), TYPE_VIRTIO_IOMMU_PCI)) {
         return HOTPLUG_HANDLER(machine);
     }
-    if (object_dynamic_cast(OBJECT(dev), TYPE_VIRTIO_IOMMU_PCI)) {
-        VirtMachineState *vms = VIRT_MACHINE(machine);
-
-        if (!vms->bootinfo.firmware_loaded || !virt_is_acpi_enabled(vms)) {
-            return HOTPLUG_HANDLER(machine);
-        }
-    }
     return NULL;
 }
 
diff --git a/hw/virtio/virtio-iommu-pci.c b/hw/virtio/virtio-iommu-pci.c
index 770c286be7..5c0b87316a 100644
--- a/hw/virtio/virtio-iommu-pci.c
+++ b/hw/virtio/virtio-iommu-pci.c
@@ -48,16 +48,8 @@  static void virtio_iommu_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
     VirtIOIOMMU *s = VIRTIO_IOMMU(vdev);
 
     if (!qdev_get_machine_hotplug_handler(DEVICE(vpci_dev))) {
-        MachineClass *mc = MACHINE_GET_CLASS(qdev_get_machine());
-
-        error_setg(errp,
-                   "%s machine fails to create iommu-map device tree bindings",
-                   mc->name);
-        error_append_hint(errp,
-                          "Check your machine implements a hotplug handler "
-                          "for the virtio-iommu-pci device\n");
-        error_append_hint(errp, "Check the guest is booted without FW or with "
-                          "-no-acpi\n");
+        error_setg(errp, "Check your machine implements a hotplug handler "
+                         "for the virtio-iommu-pci device");
         return;
     }
     for (int i = 0; i < s->nb_reserved_regions; i++) {