* [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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.