On Wed, 25 Feb 2026 10:20:23 +0100
Thomas Huth <thuth@redhat.com> wrote:
> From: Philippe Mathieu-Daudé <philmd@linaro.org>
>
> 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é <philmd@linaro.org>
> Message-ID: <20250501210456.89071-19-philmd@linaro.org>
> [thuth: Dropped the hunks that were already merged via commit 31753d5a336f]
> Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
> ---
> 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),
> };
>