The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* [PATCH] iommu/vt-d: Disable IOMMU on Lenovo ThinkPad P50s
@ 2026-06-20 19:22 Oliver Lin
  2026-06-21  1:29 ` Baolu Lu
  0 siblings, 1 reply; 2+ messages in thread
From: Oliver Lin @ 2026-06-20 19:22 UTC (permalink / raw)
  To: baolu.lu, dwmw2; +Cc: joro, will, robin.murphy, iommu, linux-kernel, Oliver Lin

On Lenovo ThinkPad P50s, enabling Intel IOMMU causes TPM
initialization failures, suspend/resume issues, and prevents the
system from powering off completely.

The system works correctly with intel_iommu=off. A locally tested
kernel with this DMI quirk also works correctly without requiring the
kernel parameter.

Add a DMI quirk to disable Intel IOMMU on this platform.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=221674
Signed-off-by: Oliver Lin <oliver@liuxiaozhen.dev>
---
 drivers/iommu/intel/iommu.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
index 849d06dfe1ae..a072e9ef63ef 100644
--- a/drivers/iommu/intel/iommu.c
+++ b/drivers/iommu/intel/iommu.c
@@ -278,6 +278,19 @@ static int __init intel_iommu_setup(char *str)
 
 	return 1;
 }
+
+static const struct dmi_system_id intel_iommu_broken_dmar_table[] __initconst = {
+	{
+		.ident = "Lenovo ThinkPad P50s",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "20FLCTO1WW"),
+			DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad P50s"),
+		},
+	},
+	{}
+};
+
 __setup("intel_iommu=", intel_iommu_setup);
 
 /*
@@ -2565,6 +2578,12 @@ int __init intel_iommu_init(void)
 	force_on = (!intel_iommu_tboot_noforce && tboot_force_iommu()) ||
 		    platform_optin_force_iommu();
 
+	if (!force_on && dmi_check_system(intel_iommu_broken_dmar_table)) {
+		dmar_disabled = 1;
+		no_platform_optin = 1;
+		pr_info("DMAR: IOMMU disabled on Lenovo ThinkPad P50s due to firmware issue\n");
+	}
+
 	down_write(&dmar_global_lock);
 	if (dmar_table_init()) {
 		if (force_on)
-- 
2.53.0

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] iommu/vt-d: Disable IOMMU on Lenovo ThinkPad P50s
  2026-06-20 19:22 [PATCH] iommu/vt-d: Disable IOMMU on Lenovo ThinkPad P50s Oliver Lin
@ 2026-06-21  1:29 ` Baolu Lu
  0 siblings, 0 replies; 2+ messages in thread
From: Baolu Lu @ 2026-06-21  1:29 UTC (permalink / raw)
  To: Oliver Lin, dwmw2; +Cc: baolu.lu, joro, will, robin.murphy, iommu, linux-kernel

On 6/21/2026 3:22 AM, Oliver Lin wrote:
> On Lenovo ThinkPad P50s, enabling Intel IOMMU causes TPM
> initialization failures, suspend/resume issues, and prevents the
> system from powering off completely.
> 
> The system works correctly with intel_iommu=off. A locally tested
> kernel with this DMI quirk also works correctly without requiring the
> kernel parameter.
> 
> Add a DMI quirk to disable Intel IOMMU on this platform.
> 
> Link:https://bugzilla.kernel.org/show_bug.cgi?id=221674
> Signed-off-by: Oliver Lin<oliver@liuxiaozhen.dev>
> ---
>   drivers/iommu/intel/iommu.c | 19 +++++++++++++++++++
>   1 file changed, 19 insertions(+)
> 
> diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
> index 849d06dfe1ae..a072e9ef63ef 100644
> --- a/drivers/iommu/intel/iommu.c
> +++ b/drivers/iommu/intel/iommu.c
> @@ -278,6 +278,19 @@ static int __init intel_iommu_setup(char *str)
>   
>   	return 1;
>   }
> +
> +static const struct dmi_system_id intel_iommu_broken_dmar_table[] __initconst = {
> +	{
> +		.ident = "Lenovo ThinkPad P50s",
> +		.matches = {
> +			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
> +			DMI_MATCH(DMI_PRODUCT_NAME, "20FLCTO1WW"),
> +			DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad P50s"),
> +		},
> +	},
> +	{}
> +};

Is this a broken ACPI DMAR table? If so, please try updating to the
latest firmware. Otherwise, report the issue to the laptop vendor and
ask them to resolve it, especially if they claim their product supports
Linux.

Thanks,
baolu

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-06-21  1:29 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-20 19:22 [PATCH] iommu/vt-d: Disable IOMMU on Lenovo ThinkPad P50s Oliver Lin
2026-06-21  1:29 ` Baolu Lu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox