diff options
Diffstat (limited to '0047-AMD-IOMMU-without-XT-x2APIC-needs-to-be-forced-into-.patch')
-rw-r--r-- | 0047-AMD-IOMMU-without-XT-x2APIC-needs-to-be-forced-into-.patch | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/0047-AMD-IOMMU-without-XT-x2APIC-needs-to-be-forced-into-.patch b/0047-AMD-IOMMU-without-XT-x2APIC-needs-to-be-forced-into-.patch new file mode 100644 index 0000000..54940ba --- /dev/null +++ b/0047-AMD-IOMMU-without-XT-x2APIC-needs-to-be-forced-into-.patch @@ -0,0 +1,42 @@ +From 8e9690a2252eda09537275a951ee0af0b3b330f2 Mon Sep 17 00:00:00 2001 +From: Jan Beulich <jbeulich@suse.com> +Date: Fri, 31 Mar 2023 08:36:59 +0200 +Subject: [PATCH 47/61] AMD/IOMMU: without XT, x2APIC needs to be forced into + physical mode + +An earlier change with the same title (commit 1ba66a870eba) altered only +the path where x2apic_phys was already set to false (perhaps from the +command line). The same of course needs applying when the variable +wasn't modified yet from its initial value. + +Reported-by: Elliott Mitchell <ehem+xen@m5p.com> +Signed-off-by: Jan Beulich <jbeulich@suse.com> +Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com> +master commit: 0d2686f6b66b4b1b3c72c3525083b0ce02830054 +master date: 2023-03-21 09:23:25 +0100 +--- + xen/arch/x86/genapic/x2apic.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/xen/arch/x86/genapic/x2apic.c b/xen/arch/x86/genapic/x2apic.c +index 628b441da5..247364af58 100644 +--- a/xen/arch/x86/genapic/x2apic.c ++++ b/xen/arch/x86/genapic/x2apic.c +@@ -239,11 +239,11 @@ const struct genapic *__init apic_x2apic_probe(void) + if ( x2apic_phys < 0 ) + { + /* +- * Force physical mode if there's no interrupt remapping support: The +- * ID in clustered mode requires a 32 bit destination field due to ++ * Force physical mode if there's no (full) interrupt remapping support: ++ * The ID in clustered mode requires a 32 bit destination field due to + * the usage of the high 16 bits to hold the cluster ID. + */ +- x2apic_phys = !iommu_intremap || ++ x2apic_phys = iommu_intremap != iommu_intremap_full || + (acpi_gbl_FADT.flags & ACPI_FADT_APIC_PHYSICAL); + } + else if ( !x2apic_phys ) +-- +2.40.0 + |