From nobody Mon Jun 8 07:22:55 2026 Received: from mail-pl1-f201.google.com (mail-pl1-f201.google.com [209.85.214.201]) (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 B5A723BED7D for ; Mon, 1 Jun 2026 14:36:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780324611; cv=none; b=N8wrRXhwjAgPT0NPM1AU9gp08bttOi58o2eZutj5m2O8NGyLECarkN8hSiAtQgmx424iDHOlDyF7e7E+M50pxhttPCkifIpEXGxYYLdWXKEWKEZNRfLNX45Q/tUfPIHQLVfpPpV3PA1DbIRYTVXxe+3foMeL87qrgyGoAlX/vDs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780324611; c=relaxed/simple; bh=zLhKJQfxvv+d9aNsqJrU4irOe5OKs7/A2799Tf2JNWI=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=qF3d4aDu95wK4FzArqeBwq3LIcJcPE5LsfgpNfiysAsifNhK+4J5bcIKgotO6q12H8meBEHV7/tcpfQGO8rLOk6KM3SvBObHqzj854rCetpAwt8XU5n6XfS4NEn9UkuYVRPwL1vJQA4Hx42/jbrLX/f5EVb15TXaxebCBexhX2g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--praan.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=o86A/2+d; arc=none smtp.client-ip=209.85.214.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--praan.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="o86A/2+d" Received: by mail-pl1-f201.google.com with SMTP id d9443c01a7336-2bf243973c2so22512785ad.1 for ; Mon, 01 Jun 2026 07:36:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1780324609; x=1780929409; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=H1WHbQ1I/exyopX3p7b75ehhnkD9ODb3Bve7jByn9iQ=; b=o86A/2+dhHNysWMSV7dnGUt4JeucHi4nygMBcNXIqvXfXlfoAYu9/S/s3fTM+qSFCV ouKaVInfWoUqTa5pX8xVCQw26ij7C2GvzLmVjI01salrBw9moknHYqAo3l3vIByMpKEj qcNmu8neQpGrx2FrIhpKWSa/xLnig5q0Ww5AznQIDkscL386Vz+lE2Tv+JM+vHBasT3Y NbSRCdnlvTACMNf2nDtAnWj8Gxubk68Y6LeTdysdRE2YEV1+DivNm0uhyJQ2ZkFcMDgp xB1RuUKBPHqCzAsNwudeJ83ad0tuLFZNsPUpmlA4nj71+TAU0VHBB1f15ovtZVzQKqIv T3sg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780324609; x=1780929409; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=H1WHbQ1I/exyopX3p7b75ehhnkD9ODb3Bve7jByn9iQ=; b=PKyX2xSFalLoyvs+F0rnhfQeuIREfclTPvQgAnrAARWIujnKdV+RrFl+uKPKOnhibh ZhNDxsbcChbDYhGkePo8wkwZZtTckMyXpxVWQ8hfR7F7T+we6zs9tHdJBxA06BMq6ap0 alqIXm/U7nqEZJry+XnEXjoQiHg9aUHoeNgRuhv1jE2nBtKwuF4WJBbKWaIq8hxfYqFB dkAHqLfPP7zHexSZAvkAGHjyaBpjBF9Pq9BxTbmOrb+QCpxnia2piamIlxWmxUGURlqO 03qjrUQ/1zoygA0TSsFRGleAp042vJsq69O3/8UQwZet3M+jR8Tpoqk2+YhgyHkl1mQT npeQ== X-Forwarded-Encrypted: i=1; AFNElJ/Wj4fCaiIRbQpWSE3pIM4Jv2uvnX8zX6QjX9VqqXeS3wDHbdDiSVmmDAYqAcMxEvOga3qfrdlXr4fJiXQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yx+Wj13JC6/9F3PstG7ZAi4a9Or+PsCjMi1+hFI/75v2L+2uzFa h94M49nnT33OrSjE/6lF4ynCLxqDqOXdJLK5eBxxPdRP7cw12m4eRVLFc2CDifEWxh5U0XZkoRb iRg== X-Received: from pldy13.prod.google.com ([2002:a17:902:cacd:b0:2b2:a70b:98ea]) (user=praan job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:4b07:b0:2c0:b6c7:2273 with SMTP id d9443c01a7336-2c0b6c7267emr92934605ad.3.1780324608765; Mon, 01 Jun 2026 07:36:48 -0700 (PDT) Date: Mon, 1 Jun 2026 14:36:40 +0000 In-Reply-To: <20260601143644.2358771-1-praan@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260601143644.2358771-1-praan@google.com> X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog Message-ID: <20260601143644.2358771-2-praan@google.com> Subject: [PATCH v7 1/5] PCI/ATS: Ensure pci_ats_supported() is PF-aware for VFs From: Pranjal Shrivastava To: iommu@lists.linux.dev, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Joerg Roedel , Will Deacon , Robin Murphy , Baolu Lu , Jason Gunthorpe , Kevin Tian , Bjorn Helgaas , Samiullah Khawaja , Pranjal Shrivastava , Nicolin Chen Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Update pci_ats_supported() to additionally check the associated PF's status when called on a VF. This ensures that PF-level quirks and untrusted status are correctly propagated to VFs, providing a robust support check that aligns with the kernel's PF-centric ATS configuration model and is immune to the timing of VF-specific fixups. Reviewed-by: Jason Gunthorpe Reviewed-by: Samiullah Khawaja Reviewed-by: Nicolin Chen Reviewed-by: Lu Baolu Signed-off-by: Pranjal Shrivastava Reviewed-by: Kevin Tian --- drivers/pci/ats.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/pci/ats.c b/drivers/pci/ats.c index 96efa00d9743..679a3c3c1d54 100644 --- a/drivers/pci/ats.c +++ b/drivers/pci/ats.c @@ -40,10 +40,13 @@ void pci_ats_init(struct pci_dev *dev) */ bool pci_ats_supported(struct pci_dev *dev) { - if (!dev->ats_cap) + if (!dev->ats_cap || dev->untrusted) return false; =20 - return (dev->untrusted =3D=3D 0); + if (dev->is_virtfn) + return pci_ats_supported(pci_physfn(dev)); + + return true; } EXPORT_SYMBOL_GPL(pci_ats_supported); =20 --=20 2.54.0.823.g6e5bcc1fc9-goog From nobody Mon Jun 8 07:22:55 2026 Received: from mail-pl1-f201.google.com (mail-pl1-f201.google.com [209.85.214.201]) (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 C7E073BF66B for ; Mon, 1 Jun 2026 14:36:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780324617; cv=none; b=ABAwO8CFSyhSqmDDrO2MnzijmVCvfUltZ/62PJ5LXM5knXJsSZrOWjNPhtu27yNkQPS0NdIYpEcCL5p+W/bYz25mh6EHsRndhToGxyx4Qhba5pem/PSXZ6Ujr8TMTDb8OZcAhtRgrqi0oW9mVePnbd7JIGpqvQUWxMvmKSjYoPc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780324617; c=relaxed/simple; bh=QMWF1Nn5UhAxAEgwX3QVOSlhArpqB7BokO3nvPMLRNI=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=IWmq2larQvXY8Op0rHBlW+Pzv5Y05Z7UX15b0Q2btYbWks3qbN1nBSCXwvHUjGd4svbEN5hicVsPtvCe8/IoiXt1rdW95YN+sql23eegApwFuD3cq0wOBEuq1Bi4AsQBH3d4MSt5WnO+ceKdzjtjfBe2lYIH3gnHtMK559NN558= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--praan.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=eVCT+JHy; arc=none smtp.client-ip=209.85.214.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--praan.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="eVCT+JHy" Received: by mail-pl1-f201.google.com with SMTP id d9443c01a7336-2c0c32faa62so26773585ad.2 for ; Mon, 01 Jun 2026 07:36:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1780324611; x=1780929411; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=V1OhefJlO7SddiDjet5+3aQQ9KCjHVV2cUEJthb1Tt4=; b=eVCT+JHyenGFqCgVyc/4CTD4IFnXkGAa0S8CSPEtkwOTHyOdMb0DYJF45+sDfj6Ilh C+5LxLVvHWomwYV9LqXq8Da7jSnBINC9l4bdtUbr3BbtUjC+tPCRnJzRiYlkIBLZM7F3 tHz6yfj3vQW9ivz5P8PVryq9qf2eg9AVVx3izJGsUseNFX0pknhzlIul/Kf5D1KffO9V Bo/jTiHrfgVfJv029T2BAlF4WBa0MRPVyR5+1kLdygQi2X4vq/rZI4I9MAWsPIlpwuI8 nrkcCEX5jqyq1i1CB9KD+J/C+p5mqZulQkNvCIaisppk2RCjbWayiyumc27HjNdogX0w EmBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780324611; x=1780929411; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=V1OhefJlO7SddiDjet5+3aQQ9KCjHVV2cUEJthb1Tt4=; b=EfaeTEkLeIN5rqs7h3vo2RBL/C2fShcG6AvZqll2XNEPEALeglyt9ierEAZ3UI8Tfl f+4+Mt4cEu7XpOMvg0+QXT9IO5bAMkmcGSsknPEWCbq0oKgVMHhpbyLca2VM9FhwelKl 4xV0p5ob5HzcDGY4ccjo5d3F4xwHuWGQfSiGBkid/90FaDOjiamjgfD3itkWDZ1B8KJh T3mAlRuem5otXUU4Kk7yYauLn10fFclG25fBQAko9/r+q250Ogu6DtM5LNMfICcZk3Av 9Zpv+AiLxG2+Hp7+rHtAtoNezvEtodKN7+0ZLgRYgPvrRVt5rSfkaF2OXn9hF38MbxBs nT0Q== X-Forwarded-Encrypted: i=1; AFNElJ8zawT2rMqLdKliq0hUMy7UBXfVgianVFclfbhgG8d/p3sB2Aemx1oT6NX7YpAs3KQBm6k7M0a8+pc8cC8=@vger.kernel.org X-Gm-Message-State: AOJu0YzVjEgTOOQwjgye1PSw/0zHaSPUbhRUNKAibE1eDAXikW3bYj4Z JMdVs2WjL+eMYXrT7mDKXY98W8iBSTHD5uSmHxlF+fPMdlmE/LSbVOGVBPNvHEUyFLnPn+Byve7 GKg== X-Received: from plqu9.prod.google.com ([2002:a17:902:a609:b0:2bd:106:8ad0]) (user=praan job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:22d2:b0:2c0:a360:45e9 with SMTP id d9443c01a7336-2c0a36046d6mr119940385ad.29.1780324610786; Mon, 01 Jun 2026 07:36:50 -0700 (PDT) Date: Mon, 1 Jun 2026 14:36:41 +0000 In-Reply-To: <20260601143644.2358771-1-praan@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260601143644.2358771-1-praan@google.com> X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog Message-ID: <20260601143644.2358771-3-praan@google.com> Subject: [PATCH v7 2/5] PCI/ATS: Validate STU for VFs in pci_prepare_ats() From: Pranjal Shrivastava To: iommu@lists.linux.dev, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Joerg Roedel , Will Deacon , Robin Murphy , Baolu Lu , Jason Gunthorpe , Kevin Tian , Bjorn Helgaas , Samiullah Khawaja , Pranjal Shrivastava , Nicolin Chen Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" While every PCI Function that implements ATS has an independent ATS Extended Capability structure with a Read/Write Smallest Translation Unit (STU) field, the kernel manages SR-IOV ATS by requiring the IOMMU driver to configure the STU on the Physical Function (PF) before any any Virtual Functions (VFs) are created. Currently, pci_prepare_ats() bails out early for VFs, assuming that the PF has already been correctly prepared. However, this creates a potential mismatch if a VF is subsequently prepared with a different page shift. Update pci_prepare_ats() to validate that the requested page shift (ps) matches the STU already configured in the associated PF. This ensures early detection of incompatible configurations and maintains the kernel's policy of consistent STU sizing across all functions associated with a given SMMU. Reviewed-by: Jason Gunthorpe Reviewed-by: Samiullah Khawaja Reviewed-by: Nicolin Chen Reviewed-by: Lu Baolu Signed-off-by: Pranjal Shrivastava Reviewed-by: Kevin Tian --- drivers/pci/ats.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/pci/ats.c b/drivers/pci/ats.c index 679a3c3c1d54..9cb23780093d 100644 --- a/drivers/pci/ats.c +++ b/drivers/pci/ats.c @@ -73,8 +73,12 @@ int pci_prepare_ats(struct pci_dev *dev, int ps) if (ps < PCI_ATS_MIN_STU) return -EINVAL; =20 - if (dev->is_virtfn) + if (dev->is_virtfn) { + if (pci_physfn(dev)->ats_stu !=3D ps) + return -EINVAL; + return 0; + } =20 dev->ats_stu =3D ps; ctrl =3D PCI_ATS_CTRL_STU(dev->ats_stu - PCI_ATS_MIN_STU); --=20 2.54.0.823.g6e5bcc1fc9-goog From nobody Mon Jun 8 07:22:55 2026 Received: from mail-pj1-f73.google.com (mail-pj1-f73.google.com [209.85.216.73]) (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 CF7A33BE621 for ; Mon, 1 Jun 2026 14:36:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.73 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780324616; cv=none; b=pxfJduuBio1fvRORSDKQ2pu9F9kqrZyJi+65tuTVB92Peqv33bixzWFMt/4DVVcQgg5m16nPpF/7zVNHPSXUgKC/UtVkXvatse+Lz4tqQjzun4MGHbsxZHTakiurWLxGVv8xRHp1L+HOzyKozUVDpOINH1iuPqGm/38NWXPGbko= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780324616; c=relaxed/simple; bh=ZY1CHI2qLE7gvcNu09TeXmB6q3EuV2tMfE05QxQiulQ=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=hwDIbJfIhwD21Vod+J6lnPIwYuLJIL+PEqnlkF6lilb0lnUmzNNQl4cceep+ntaJXs9Kiy0jrycdtL1WXD6YtmVWgLgzvXZVD7/+HLiXZW3gyl31M/j8i8T9k5LLukEmKVUy6Wcr2OcwjCHYtxx+dP54L1Ly7yI3Dzvl2vQUwpU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--praan.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=Y3lcZCDl; arc=none smtp.client-ip=209.85.216.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--praan.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="Y3lcZCDl" Received: by mail-pj1-f73.google.com with SMTP id 98e67ed59e1d1-36d8719bae6so1398571a91.3 for ; Mon, 01 Jun 2026 07:36:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1780324613; x=1780929413; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=J1VlFw02VkFXjGZD0LXM1rfEtalYzEU51knuxCZNQpI=; b=Y3lcZCDl1kDBStCHLH0UqlGSbpkNQUnS3rQrug9CN6eEE8nHQM1XNzajFokwXhaoPr cOkDxPSTcbzmAlf+xA+3jao8A/coSRnQdV+hL7pHG7CdEJpkpklq4iOWYvLqKqXFD8KV ovDf/bRBUSAxDOzSvjLqnR89wZjNDjsbynb7skFYi591ymsRKtGP7lIfuhtY3YzOOXBG UILNPdcGQ4lJuj40Bbr9GTdrcvrTCkAIctuL3oy8dG+NnUV5a1PRsay0goSTxnWZ32jP KUIFfR+4SnC5+I5jVGR+HJCWwG5hku/9plBR4JtLya804bEI/UorurMAyMrQ9h7pkF08 oQvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780324613; x=1780929413; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=J1VlFw02VkFXjGZD0LXM1rfEtalYzEU51knuxCZNQpI=; b=Vfts/FrChQAMzvYhceb3mvKLmAz9ia/ENkcPKbCUxqv6OXZhOUINL7hWUmtZfZTlU7 ARr1ZARA47zcMLNRayRfwLQdyAr71kcRkFV/gLYY5gmuIGxVbxG1q3i/wv9VvZ054CSA Na1VShR9uO8pQRmxYBD1An/ZrCtMd8WEldWqIJK/gYmFtP1PD056eFUVGC5RQIFi7fqD w8UNul7MQs29Pa1s+qiF+C8jT1ehDQd9elcvdSWcfTYBvQOM+OZQ2ik11bnrdLiB0r5h 1/7kMq3n+cpAoZ/F+FJ2Drvs7XTfkwqI/vF7BSd1YD0OdYdfWt9rvi9vhGlXSwGoayF8 BaTg== X-Forwarded-Encrypted: i=1; AFNElJ+SVlFvUSl5d5tJWj05o2AhLm3+10cQGKHvroWzXa1VFlNg+g7BTLl7zB7nXfdXrYVoGDOye/enxPgIPlg=@vger.kernel.org X-Gm-Message-State: AOJu0YzXrJuHaW2r8K/fssxDmdKqOk7n/kxLca63Pm7KBxcbYiVACZvF yB5PqaffJ2DKzdFcO6nkXjr0L97ao+aGHiHKL7m6EjGJ1VCbe5P2G/H1rpEwi5n1GOuCwgiWyiB sRg== X-Received: from pjnj13.prod.google.com ([2002:a17:90a:840d:b0:368:eea2:5650]) (user=praan job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:2c84:b0:36b:9faf:8396 with SMTP id 98e67ed59e1d1-36c4ff6b3cdmr10066002a91.11.1780324612870; Mon, 01 Jun 2026 07:36:52 -0700 (PDT) Date: Mon, 1 Jun 2026 14:36:42 +0000 In-Reply-To: <20260601143644.2358771-1-praan@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260601143644.2358771-1-praan@google.com> X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog Message-ID: <20260601143644.2358771-4-praan@google.com> Subject: [PATCH v7 3/5] iommu/arm-smmu-v3: Fix a UAF in the probe_device error path From: Pranjal Shrivastava To: iommu@lists.linux.dev, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Joerg Roedel , Will Deacon , Robin Murphy , Baolu Lu , Jason Gunthorpe , Kevin Tian , Bjorn Helgaas , Samiullah Khawaja , Pranjal Shrivastava Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Clear the iommu->priv to NULL while returning an error from probe_device. Fixes: a2be6218e649 ("iommu/arm-smmu-v3: Improve add_device() error handlin= g") Signed-off-by: Pranjal Shrivastava Reviewed-by: Kevin Tian --- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c b/drivers/iommu/ar= m/arm-smmu-v3/arm-smmu-v3.c index a10affb483a4..54c7f1ae3a84 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c @@ -4206,6 +4206,7 @@ static struct iommu_device *arm_smmu_probe_device(str= uct device *dev) arm_smmu_disable_pasid(master); arm_smmu_remove_master(master); err_free_master: + dev_iommu_priv_set(dev, NULL); kfree(master); return ERR_PTR(ret); } --=20 2.54.0.823.g6e5bcc1fc9-goog From nobody Mon Jun 8 07:22:55 2026 Received: from mail-pj1-f74.google.com (mail-pj1-f74.google.com [209.85.216.74]) (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 CB2B43BED7D for ; Mon, 1 Jun 2026 14:36:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780324616; cv=none; b=dkbsV9bjb43pdPH5bGEKLUEJoEtBHteetZeXsDzOmKyuYcjv9c7f9jfRkLRGd1D7NwSQMFupv3ZebnyISHFiGIbtf/pFp9QvGULpbVSBz6kgzL4hU3DIKilbM2RA8ue3INSjxZZWwFqd828uFnG52uNBEJuSAheeXLf3K2d76U8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780324616; c=relaxed/simple; bh=j7uWcfmh8/AWow0GpSjwBM2W8CoLXjCsLXTc1fs8K4M=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=c8zdMIQ7i2I4fB99HfKzqpkpFb0WT1652cNzabJBvh290qdp4EH4UumhCGtAJDgjf/Bd00dbGPg3H9NFxjblpkJCNKtxlmFWL2hI51IR44t2ChrlQVnIZszhUidjd+6vItODRsu8v4Wq6Hgx0gfo+W54aQID1vq3WQsU0UTDAV8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--praan.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=XtVpGAzc; arc=none smtp.client-ip=209.85.216.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--praan.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="XtVpGAzc" Received: by mail-pj1-f74.google.com with SMTP id 98e67ed59e1d1-36d98b76d12so1062046a91.2 for ; Mon, 01 Jun 2026 07:36:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1780324615; x=1780929415; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=S3NEMqkb9FMkJODx4KCoMPC9Bib26rrCy6qGt3/6ySA=; b=XtVpGAzcNJsSUUUhc8qrSZDgoYvPUX1PWfFiXTGTr6vp0TeWQGsisMt/217ki6OY4W NcsppRuqxRivNyXSlDFaW0cJVmS0b22aNN3pzAjMV1gR4upmeeyhd6V/bb61rRiC9Eas GYlfqpS1yVHS9cXvomfdnynPo5emslD1zRLnazAAStjUrvLAif2DR+ZL3Wt6fD5eg4Pp J4EzSv3O03rQUCcNhTIieHOfVjFO/2BeiRiDhi6aL07QTCVwG2RSTQw3yY1Dys7dO7E8 FjOqkCVtbpMcm1f9WyntqwK+Ct7RS5DLu85VUjjFCriTTP6xHt8zuZClC52JLl4cQIXL aFfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780324615; x=1780929415; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=S3NEMqkb9FMkJODx4KCoMPC9Bib26rrCy6qGt3/6ySA=; b=Al5QAWqkQHmtwtOfNs6t1gLDzL6jL4qeus3kOjVmdKb4hUdP8Fh8ayHkLi80KyWk1n yEbfKnq+4443DKw9Q+iW2dFZHRaV9CAgve7vd8ULth53qmTdaNxcBxemL9xxb5cgiznx 4Tv73zalwkcdm4mNKGv/TQT2pFoKnUPVkLRejefS5bR6o3P7ta3H4OLi8/jTqzVv0eoo vmXFRkEUwtm1PwZIKZgK6AGNxaLqE31qHu2+BBUIYBGoYgcFhecZ80uOWhqp67+cFtap t1TIvB0uwyowegpIfYG9sR9ab9qF40TaYZvr66lix/PhbYnSIaCjtmlfQlxP2il9J01C lrWw== X-Forwarded-Encrypted: i=1; AFNElJ+Jw63JaAPXmcDgqF/9zGmim65QW47Ey/tXWk9hsR6k+LmaUNPajLF9Fz4cRZCUXGkSTT8kl8ZPzsAdRus=@vger.kernel.org X-Gm-Message-State: AOJu0YzDwHYIXPt6EvnmcilkXTb/m3GOHCCeycwQJyiaSj2hhb7RFRpT SkQQZwmgxuKgsUqlwf16K+z4mFMvk9thdP82To0ZFRhXKoK4Pp16aX7yZB1Q/q0MsV5rdOp9A8h xzA== X-Received: from pjpo14.prod.google.com ([2002:a17:90a:9f8e:b0:36b:28fe:916f]) (user=praan job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:590d:b0:36b:b3f4:d574 with SMTP id 98e67ed59e1d1-36c68482266mr10917424a91.25.1780324614861; Mon, 01 Jun 2026 07:36:54 -0700 (PDT) Date: Mon, 1 Jun 2026 14:36:43 +0000 In-Reply-To: <20260601143644.2358771-1-praan@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260601143644.2358771-1-praan@google.com> X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog Message-ID: <20260601143644.2358771-5-praan@google.com> Subject: [PATCH v7 4/5] iommu/arm-smmu-v3: Standardize ATS enablement failure reporting From: Pranjal Shrivastava To: iommu@lists.linux.dev, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Joerg Roedel , Will Deacon , Robin Murphy , Baolu Lu , Jason Gunthorpe , Kevin Tian , Bjorn Helgaas , Samiullah Khawaja , Pranjal Shrivastava Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Update arm_smmu_enable_ats() to wrap the pci_enable_ats() call in WARN_ON(). Since probe-time checks now preclude configuration errors any failure during hardware enablement is considered a kernel bug. Signed-off-by: Pranjal Shrivastava Reviewed-by: Kevin Tian --- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c b/drivers/iommu/ar= m/arm-smmu-v3/arm-smmu-v3.c index 54c7f1ae3a84..dfb2b0d2d2a5 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c @@ -2956,7 +2956,12 @@ static void arm_smmu_enable_ats(struct arm_smmu_mast= er *master) * ATC invalidation of PASID 0 causes the entire ATC to be flushed. */ arm_smmu_atc_inv_master(master, IOMMU_NO_PASID); - if (pci_enable_ats(pdev, stu)) + + /* + * Since pci_prepare_ats() has already verified the HW capability + * and programmed the STE, pci_enable_ats() should not fail here. + */ + if (WARN_ON(pci_enable_ats(pdev, stu))) dev_err(master->dev, "Failed to enable ATS (STU %zu)\n", stu); } =20 --=20 2.54.0.823.g6e5bcc1fc9-goog From nobody Mon Jun 8 07:22:55 2026 Received: from mail-pl1-f201.google.com (mail-pl1-f201.google.com [209.85.214.201]) (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 C5BD23BFE4D for ; Mon, 1 Jun 2026 14:36:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780324619; cv=none; b=OzHjsYXjGT3gkc+BT3Hx6P+jBIKXqBWHf5p+zfuDEneVbLXHcn4GxXOzVxebbnm76hS3W2my/eT0Ypg+qaYcRxd41RtcQ4KAS87Hzv+r9VHfCO+4AMyLQoVXitdQ+2BAfS4rkEMmmKAfPUYaq0N9HusHN8tgZ47mPeIl5H8ykEU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780324619; c=relaxed/simple; bh=7e7DAPIm+AHn3qv5bIN9iON9Yk8ymifmGfWJ9sb7sLE=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=d5qWhxuGMdFgTZdEcZBwAjwVd9pfjm6wuU0bFJMKpCwmYRXNtPzwD9PPKHiQ5O9F74ozu+jCUvPbUpyX9VsFzc3aeJWd4k9qtgejqTzPsT1y4wgV3jflhB34PyRI9iSewSlKvFXe/1Eznqsidw4GFFKINwjLKXFPMJj+MCW1LMo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--praan.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=R35KGZwm; arc=none smtp.client-ip=209.85.214.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--praan.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="R35KGZwm" Received: by mail-pl1-f201.google.com with SMTP id d9443c01a7336-2c0c3315d31so16058385ad.3 for ; Mon, 01 Jun 2026 07:36:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1780324617; x=1780929417; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=lNaUgI3CtCWyHWdRlJq0xZGnOnJtcDe+W2oSC+iqpLQ=; b=R35KGZwmQd+dIcH0COmTdOwAOCpZ9yOs9JWtfOI/jZOdIlCKIgsMMzd4VsLM8xbWpj fEgBzolfgeAjJCMpy413IyxmeQb40TG9KkcvjFnxEmGfXQOiezxHnTqm0C8UQK94XK+7 DL2Id049fDSu63ZF/h8aoLVeU06mw/WBfCKoGSprcXJNNXGqP0eeSNhpbEzzPjf1zwXq q7+bsxrBwokENLNTIgsu3nLJ5YOg3Bz8d1rYHMYQndy+mWd42n56nXbWjRTDCoWtvZKn p3c9+XZMFSb6b3tq6G2hozeeLigeiNjEYi7vhF/BK/weYnWpncL675raG7KrepqR9vaX rAnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780324617; x=1780929417; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=lNaUgI3CtCWyHWdRlJq0xZGnOnJtcDe+W2oSC+iqpLQ=; b=WPuNA6wj8LQXri5HFnlLRndXhzbF4XG///6h3q0s2SuEo6fKwfpO2G8Kp1VSDBRv9j LiRXotBrtBL8/3GTdJRSQk4tsCiIPUH0oxrDQzFMHn7Q3KuttMlZpVqF/bgMaffuq9cG oM7Gs2Nlf86DOtbonJlxwwm3TwxcjavTrBGwnf1d/xFteVNpkvpPdbIv8UjeaD1fne9C E2W4VVYBFtv0EysrZObLW+KakqZ0qAc4ti4o4F25U7P96z4hxjdL3SaMw739PpSCBelg aFut/DPentgV5maKaRhhuPChna4lwtNCrjQtIqpD90MEmj5YzDpqKhHh2SsxhT5uOvBq SDAQ== X-Forwarded-Encrypted: i=1; AFNElJ/sLKEx0ma2omsnjTHycPHKbnVX2ToGxummSjJnEfvVHiX6VVp4PjefqcatXpF5Us7wStkfC9OKK2ImGP8=@vger.kernel.org X-Gm-Message-State: AOJu0Yxljpb+D5qv1zBuNyNx9JmPk0VuGbewpa+p4WQEpmlep/3ktSAZ U2/wuFNST+wZo5WhrcEGEakzyPxVB9DUCZSEPKfDTs/vGfujcttZp0rdzh2GYx42ShTtFaCFrRU yKQ== X-Received: from plpm15.prod.google.com ([2002:a17:903:3def:b0:2c0:b1b0:fad5]) (user=praan job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:d58d:b0:2bd:5026:ca11 with SMTP id d9443c01a7336-2bf367936ecmr115140945ad.2.1780324616758; Mon, 01 Jun 2026 07:36:56 -0700 (PDT) Date: Mon, 1 Jun 2026 14:36:44 +0000 In-Reply-To: <20260601143644.2358771-1-praan@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260601143644.2358771-1-praan@google.com> X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog Message-ID: <20260601143644.2358771-6-praan@google.com> Subject: [PATCH v7 5/5] iommu/vt-d: Fail probe on ATS configuration failure From: Pranjal Shrivastava To: iommu@lists.linux.dev, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Joerg Roedel , Will Deacon , Robin Murphy , Baolu Lu , Jason Gunthorpe , Kevin Tian , Bjorn Helgaas , Samiullah Khawaja , Pranjal Shrivastava Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Update the Intel VT-d driver to handle ATS configuration and enablement more strictly. Specifically, update the device probe to fail if pci_prepare_ats() returns an error. This ensures that any ATS-capable master reaching the attach phase is guaranteed to have a valid config. Additionally, update iommu_enable_pci_ats() to WARN() if pci_enable_ats fails. Since earlier checks in the probe phase preclude config-related failures, any failure during hardware enablement is considered a kernel bug. Signed-off-by: Pranjal Shrivastava Reviewed-by: Kevin Tian Reviewed-by: Lu Baolu --- drivers/iommu/intel/iommu.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c index 4d0e65bc131d..22308e4911e1 100644 --- a/drivers/iommu/intel/iommu.c +++ b/drivers/iommu/intel/iommu.c @@ -873,8 +873,14 @@ static void iommu_enable_pci_ats(struct device_domain_= info *info) if (!pci_ats_page_aligned(pdev)) return; =20 - if (!pci_enable_ats(pdev, VTD_PAGE_SHIFT)) - info->ats_enabled =3D 1; + /* + * pci_enable_ats() should not fail here because earlier checks + * have already verified support and configuration. + */ + if (WARN_ON(pci_enable_ats(pdev, VTD_PAGE_SHIFT))) + return; + + info->ats_enabled =3D 1; } =20 static void iommu_disable_pci_ats(struct device_domain_info *info) @@ -3288,7 +3294,10 @@ static struct iommu_device *intel_iommu_probe_device= (struct device *dev) =20 dev_iommu_priv_set(dev, info); if (pdev && pci_ats_supported(pdev)) { - pci_prepare_ats(pdev, VTD_PAGE_SHIFT); + ret =3D pci_prepare_ats(pdev, VTD_PAGE_SHIFT); + if (ret) + goto free; + ret =3D device_rbtree_insert(iommu, info); if (ret) goto free; --=20 2.54.0.823.g6e5bcc1fc9-goog