On Wed, 25 Feb 2026 10:20:23 +0100 Thomas Huth <[email protected]> wrote:
> From: Philippe Mathieu-Daudé <[email protected]> > > The X86IOMMUState::pt_supported boolean was only set in > the hw_compat_2_9[] array, via the 'pt=off' property. We > removed all machines using that array, lets remove that > property and all the code around it, always setting the > VTD_ECAP_PT capability. > > Signed-off-by: Philippe Mathieu-Daudé <[email protected]> > Message-ID: <[email protected]> > [thuth: Dropped the hunks that were already merged via commit 31753d5a336f] > Signed-off-by: Thomas Huth <[email protected]> Reviewed-by: Igor Mammedov <[email protected]> > --- > include/hw/i386/x86-iommu.h | 1 - > hw/i386/intel_iommu.c | 13 ++----------- > hw/i386/x86-iommu.c | 1 - > 3 files changed, 2 insertions(+), 13 deletions(-) > > diff --git a/include/hw/i386/x86-iommu.h b/include/hw/i386/x86-iommu.h > index c526a047ab6..0a1e1ba7257 100644 > --- a/include/hw/i386/x86-iommu.h > +++ b/include/hw/i386/x86-iommu.h > @@ -63,7 +63,6 @@ struct X86IOMMUState { > SysBusDevice busdev; > OnOffAuto intr_supported; /* Whether vIOMMU supports IR */ > bool dt_supported; /* Whether vIOMMU supports DT */ > - bool pt_supported; /* Whether vIOMMU supports pass-through */ > bool dma_translation; /* Whether vIOMMU supports DMA translation */ > QLIST_HEAD(, IEC_Notifier) iec_notifiers; /* IEC notify list */ > }; > diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c > index 4924aa43750..d24ba989bfc 100644 > --- a/hw/i386/intel_iommu.c > +++ b/hw/i386/intel_iommu.c > @@ -1072,6 +1072,7 @@ static inline bool vtd_ce_type_check(X86IOMMUState > *x86_iommu, > { > switch (vtd_ce_get_type(ce)) { > case VTD_CONTEXT_TT_MULTI_LEVEL: > + case VTD_CONTEXT_TT_PASS_THROUGH: > /* Always supported */ > break; > case VTD_CONTEXT_TT_DEV_IOTLB: > @@ -1080,12 +1081,6 @@ static inline bool vtd_ce_type_check(X86IOMMUState > *x86_iommu, > return false; > } > break; > - case VTD_CONTEXT_TT_PASS_THROUGH: > - if (!x86_iommu->pt_supported) { > - error_report_once("%s: PT specified but not supported", > __func__); > - return false; > - } > - break; > default: > /* Unknown type */ > error_report_once("%s: unknown ce type: %"PRIu32, __func__, > @@ -5004,7 +4999,7 @@ static void vtd_cap_init(IntelIOMMUState *s) > { > X86IOMMUState *x86_iommu = X86_IOMMU_DEVICE(s); > > - s->cap = VTD_CAP_FRO | VTD_CAP_NFR | VTD_CAP_ND | > + s->cap = VTD_CAP_FRO | VTD_CAP_NFR | VTD_CAP_ND | VTD_ECAP_PT | > VTD_CAP_MAMV | VTD_CAP_PSI | VTD_CAP_SSLPS | > VTD_CAP_ESRTPS | VTD_CAP_MGAW(s->aw_bits); > if (s->dma_drain) { > @@ -5032,10 +5027,6 @@ static void vtd_cap_init(IntelIOMMUState *s) > s->ecap |= VTD_ECAP_DT; > } > > - if (x86_iommu->pt_supported) { > - s->ecap |= VTD_ECAP_PT; > - } > - > if (s->caching_mode) { > s->cap |= VTD_CAP_CM; > } > diff --git a/hw/i386/x86-iommu.c b/hw/i386/x86-iommu.c > index 33ac0bfc97e..a57445404ef 100644 > --- a/hw/i386/x86-iommu.c > +++ b/hw/i386/x86-iommu.c > @@ -129,7 +129,6 @@ static const Property x86_iommu_properties[] = { > DEFINE_PROP_ON_OFF_AUTO("intremap", X86IOMMUState, > intr_supported, ON_OFF_AUTO_AUTO), > DEFINE_PROP_BOOL("device-iotlb", X86IOMMUState, dt_supported, false), > - DEFINE_PROP_BOOL("pt", X86IOMMUState, pt_supported, true), > DEFINE_PROP_BOOL("dma-translation", X86IOMMUState, dma_translation, > true), > }; >
