From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from va-2-50.ptr.blmpb.com (va-2-50.ptr.blmpb.com [209.127.231.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 450B2366DD3 for ; Thu, 2 Jul 2026 10:35:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.127.231.50 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782988521; cv=none; b=Nxpwhn6gqGzmbR57QIlLXFTtWWb6qylDwpP9oypNZChrYu/vCbNQURQ11nYw6b5XF2g7X2Os/dqW6rDJbAPkPBl6O/eFxXBUTP6fj/ceVdperHgN104Vnzcx6IaQ0uei9XKzif9nkCFmHGNVY7XeO+Afn0HcplvFeGPDK8U8jvk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782988521; c=relaxed/simple; bh=nZwYwYMg8Syy6ptlmYhadTDoRFr/Hiecu+eau2AzEHI=; h=Mime-Version:Content-Type:From:Subject:Date:References:To: Message-Id:In-Reply-To:Cc; b=IYWExCWtj2eckfvqo5jDsYKp/jEXaU+pTcs2/VUb1gDPm8xf8j2u41rgKyCIw+kPDd+sZHYdr1IA1gu2rnrm2ODolItk8ODbL3LyI6Aj/5/bHs+QzJOz13OIPMm4HMnAd9/J6ku+GdhdPUZUHh/UzaoBi6dJ4HQbqVhJflRZv/4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=liuxiaozhen.dev; spf=pass smtp.mailfrom=liuxiaozhen.dev; dkim=pass (2048-bit key) header.d=liuxiaozhen.dev header.i=@liuxiaozhen.dev header.b=HQ7w3UWw; arc=none smtp.client-ip=209.127.231.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=liuxiaozhen.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=liuxiaozhen.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=liuxiaozhen.dev header.i=@liuxiaozhen.dev header.b="HQ7w3UWw" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=feishu2602171341; d=liuxiaozhen.dev; t=1782988393; h=from:subject:mime-version:from:date:message-id:subject:to:cc: reply-to:content-type:mime-version:in-reply-to:message-id; bh=NfVIY4wu+NNat4zXsYBCv4STeOf4c/IYuLGn0Xvy4R4=; b=HQ7w3UWwI66a/OLvi7ypdvJ1891igKfJKmxTVOcv7xpP/YhMeouy9coeTU4hsGXbTTDrmE vAufyfuBaYHTusPEUe0XimRnzs7V/Xs+jm6960pnhPMKSvH/EXHb0tawuMk15pr5EUqG/f np246bpNgDKJkFwjIfXIpQGjuqLdEcn0cb27GmJqc+CJKX72O4sK5qpPXW182u/ekpDIHY v9LF4PxT0J12Ri9Vs84COBH8594jwJjX8lX/sN2dHxnHhb6Laf+T/WHAAFAMe7rStmYSva CD26VVx5GSkmmuv4PwwUZMIzdoBL/6YRvumgy9vnyuY6FXyRgi9evf/0N81b/w== Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 X-Lms-Return-Path: Content-Type: text/plain; charset=UTF-8 From: "Oliver Lin" Subject: [PATCH] iommu/vt-d: respect user override for intel_iommu=on on Lenovo ThinkPad P50s Received: from ThinkPadP15-Gen1 ([23.151.104.73]) by smtp.feishu.cn with ESMTPS; Thu, 02 Jul 2026 18:33:10 +0800 X-Mailer: git-send-email 2.53.0 Date: Thu, 2 Jul 2026 18:31:37 +0800 Content-Transfer-Encoding: 7bit References: <8d131b2c-978e-4aac-88aa-21b39237344a@liuxiaozhen.dev> To: Message-Id: <20260702103137.508709-1-oliver@liuxiaozhen.dev> In-Reply-To: <8d131b2c-978e-4aac-88aa-21b39237344a@liuxiaozhen.dev> Cc: , , , , , "oliver" X-Original-From: Oliver Lin From: oliver The current DMI quirk disables VT-d on ThinkPad P50s unconditionally, even when intel_iommu=on is explicitly requested via kernel command line. This breaks kernel parameter precedence and user intent. Make the quirk conditional so that it does not override explicit user enabling of Intel IOMMU. Signed-off-by: Oliver --- drivers/iommu/intel/iommu.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c index a072e9ef63ef..b34b5a60f349 100644 --- a/drivers/iommu/intel/iommu.c +++ b/drivers/iommu/intel/iommu.c @@ -201,6 +201,7 @@ static void intel_iommu_domain_free(struct iommu_domain *domain); int dmar_disabled = !IS_ENABLED(CONFIG_INTEL_IOMMU_DEFAULT_ON); int intel_iommu_sm = IS_ENABLED(CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON); +static int intel_iommu_cmdline_on; int intel_iommu_enabled = 0; EXPORT_SYMBOL_GPL(intel_iommu_enabled); @@ -241,10 +242,12 @@ static int __init intel_iommu_setup(char *str) while (*str) { if (!strncmp(str, "on", 2)) { dmar_disabled = 0; + intel_iommu_cmdline_on = 1; pr_info("IOMMU enabled\n"); } else if (!strncmp(str, "off", 3)) { dmar_disabled = 1; no_platform_optin = 1; + intel_iommu_cmdline_on = 0; pr_info("IOMMU disabled\n"); } else if (!strncmp(str, "igfx_off", 8)) { disable_igfx_iommu = 1; @@ -2578,7 +2581,8 @@ 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)) { + if (!force_on && !intel_iommu_cmdline_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"); -- 2.53.0