default-configs/i386-softmmu.mak | 2 ++ default-configs/x86_64-softmmu.mak | 2 ++ hw/i386/Makefile.objs | 4 ++-- 3 files changed, 6 insertions(+), 2 deletions(-)
Allow distributions to disable the Intel and/or AMD IOMMU devices.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
v1->v2: don't include x86-iommu.o unconditionally
default-configs/i386-softmmu.mak | 2 ++
default-configs/x86_64-softmmu.mak | 2 ++
hw/i386/Makefile.objs | 4 ++--
3 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index 3326e3e0bb..9e5a29fa4a 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -63,3 +63,5 @@ CONFIG_PXB=y
CONFIG_ACPI_VMGENID=y
CONFIG_FW_CFG_DMA=y
CONFIG_I2C=y
+CONFIG_VTD=y
+CONFIG_AMD_IOMMU=y
diff --git a/default-configs/x86_64-softmmu.mak b/default-configs/x86_64-softmmu.mak
index 1c6cda1d9a..7baf91b921 100644
--- a/default-configs/x86_64-softmmu.mak
+++ b/default-configs/x86_64-softmmu.mak
@@ -63,3 +63,5 @@ CONFIG_PXB=y
CONFIG_ACPI_VMGENID=y
CONFIG_FW_CFG_DMA=y
CONFIG_I2C=y
+CONFIG_VTD=y
+CONFIG_AMD_IOMMU=y
diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs
index fd279e7584..fa87a14152 100644
--- a/hw/i386/Makefile.objs
+++ b/hw/i386/Makefile.objs
@@ -2,8 +2,8 @@ obj-$(CONFIG_KVM) += kvm/
obj-y += multiboot.o
obj-y += pc.o pc_piix.o pc_q35.o
obj-y += pc_sysfw.o
-obj-y += x86-iommu.o intel_iommu.o
-obj-y += amd_iommu.o
+obj-$(CONFIG_VTD) += x86-iommu.o intel_iommu.o
+obj-$(CONFIG_AMD_IOMMU) += x86-iommu.o amd_iommu.o
obj-$(CONFIG_XEN) += ../xenpv/ xen/
obj-$(CONFIG_VMPORT) += vmport.o
obj-$(CONFIG_VMMOUSE) += vmmouse.o
--
2.14.3
On 12.03.2018 10:43, Paolo Bonzini wrote: > Allow distributions to disable the Intel and/or AMD IOMMU devices. > > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> > --- > v1->v2: don't include x86-iommu.o unconditionally > > default-configs/i386-softmmu.mak | 2 ++ > default-configs/x86_64-softmmu.mak | 2 ++ > hw/i386/Makefile.objs | 4 ++-- > 3 files changed, 6 insertions(+), 2 deletions(-) > > diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak > index 3326e3e0bb..9e5a29fa4a 100644 > --- a/default-configs/i386-softmmu.mak > +++ b/default-configs/i386-softmmu.mak > @@ -63,3 +63,5 @@ CONFIG_PXB=y > CONFIG_ACPI_VMGENID=y > CONFIG_FW_CFG_DMA=y > CONFIG_I2C=y > +CONFIG_VTD=y > +CONFIG_AMD_IOMMU=y > diff --git a/default-configs/x86_64-softmmu.mak b/default-configs/x86_64-softmmu.mak > index 1c6cda1d9a..7baf91b921 100644 > --- a/default-configs/x86_64-softmmu.mak > +++ b/default-configs/x86_64-softmmu.mak > @@ -63,3 +63,5 @@ CONFIG_PXB=y > CONFIG_ACPI_VMGENID=y > CONFIG_FW_CFG_DMA=y > CONFIG_I2C=y > +CONFIG_VTD=y > +CONFIG_AMD_IOMMU=y > diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs > index fd279e7584..fa87a14152 100644 > --- a/hw/i386/Makefile.objs > +++ b/hw/i386/Makefile.objs > @@ -2,8 +2,8 @@ obj-$(CONFIG_KVM) += kvm/ > obj-y += multiboot.o > obj-y += pc.o pc_piix.o pc_q35.o > obj-y += pc_sysfw.o > -obj-y += x86-iommu.o intel_iommu.o > -obj-y += amd_iommu.o > +obj-$(CONFIG_VTD) += x86-iommu.o intel_iommu.o > +obj-$(CONFIG_AMD_IOMMU) += x86-iommu.o amd_iommu.o The linker likely does not care if x86-iommu.o is included twice, but wouldn't it be clearer to use this instead: obj-$(call lor,$(CONFIG_VTD),$(CONFIG_AMD_IOMMU)) += x86-iommu.o ? Thomas
On 12/03/2018 10:48, Thomas Huth wrote: >> +obj-$(CONFIG_VTD) += x86-iommu.o intel_iommu.o >> +obj-$(CONFIG_AMD_IOMMU) += x86-iommu.o amd_iommu.o > The linker likely does not care if x86-iommu.o is included twice The linker actually cares, but rules.mak drops the duplicate: commit e2a99ad3e174ab4c9d2320dcecd779230409829f Author: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com> Date: Thu Aug 25 09:18:52 2011 +0100 build: sort objects to remove duplicates for link Avoid duplicate object files during the link. There are legitimate cases where a link command-line would include duplicate object files because two independent subsystems both depend on common infrastructure. Use GNU make's $(sort) function to remove duplicate object files from the link command-line. Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> > , but wouldn't it be clearer to use this instead: > > obj-$(call lor,$(CONFIG_VTD),$(CONFIG_AMD_IOMMU)) += x86-iommu.o Possibly, but it doesn't scale too well when we add a third IOMMU. The right solution would be something like "select" in Kconfig. Let me know what you prefer for x86-iommu.c between obj-y and specifying the file twice, and I'll do it. Paolo
On 12.03.2018 10:53, Paolo Bonzini wrote: > On 12/03/2018 10:48, Thomas Huth wrote: >>> +obj-$(CONFIG_VTD) += x86-iommu.o intel_iommu.o >>> +obj-$(CONFIG_AMD_IOMMU) += x86-iommu.o amd_iommu.o >> The linker likely does not care if x86-iommu.o is included twice > > The linker actually cares, but rules.mak drops the duplicate: > > commit e2a99ad3e174ab4c9d2320dcecd779230409829f > Author: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com> > Date: Thu Aug 25 09:18:52 2011 +0100 > > build: sort objects to remove duplicates for link Ah, nice, I wasn't aware of that trick. The current patch looks fine to me in this case: Reviewed-by: Thomas Huth <thuth@redhat.com>
On 03/12/2018 10:43 AM, Paolo Bonzini wrote: > Allow distributions to disable the Intel and/or AMD IOMMU devices. > > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- > v1->v2: don't include x86-iommu.o unconditionally > > default-configs/i386-softmmu.mak | 2 ++ > default-configs/x86_64-softmmu.mak | 2 ++ > hw/i386/Makefile.objs | 4 ++-- > 3 files changed, 6 insertions(+), 2 deletions(-) > > diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak > index 3326e3e0bb..9e5a29fa4a 100644 > --- a/default-configs/i386-softmmu.mak > +++ b/default-configs/i386-softmmu.mak > @@ -63,3 +63,5 @@ CONFIG_PXB=y > CONFIG_ACPI_VMGENID=y > CONFIG_FW_CFG_DMA=y > CONFIG_I2C=y > +CONFIG_VTD=y > +CONFIG_AMD_IOMMU=y > diff --git a/default-configs/x86_64-softmmu.mak b/default-configs/x86_64-softmmu.mak > index 1c6cda1d9a..7baf91b921 100644 > --- a/default-configs/x86_64-softmmu.mak > +++ b/default-configs/x86_64-softmmu.mak > @@ -63,3 +63,5 @@ CONFIG_PXB=y > CONFIG_ACPI_VMGENID=y > CONFIG_FW_CFG_DMA=y > CONFIG_I2C=y > +CONFIG_VTD=y > +CONFIG_AMD_IOMMU=y > diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs > index fd279e7584..fa87a14152 100644 > --- a/hw/i386/Makefile.objs > +++ b/hw/i386/Makefile.objs > @@ -2,8 +2,8 @@ obj-$(CONFIG_KVM) += kvm/ > obj-y += multiboot.o > obj-y += pc.o pc_piix.o pc_q35.o > obj-y += pc_sysfw.o > -obj-y += x86-iommu.o intel_iommu.o > -obj-y += amd_iommu.o > +obj-$(CONFIG_VTD) += x86-iommu.o intel_iommu.o > +obj-$(CONFIG_AMD_IOMMU) += x86-iommu.o amd_iommu.o > obj-$(CONFIG_XEN) += ../xenpv/ xen/ > obj-$(CONFIG_VMPORT) += vmport.o > obj-$(CONFIG_VMMOUSE) += vmmouse.o >
© 2016 - 2025 Red Hat, Inc.