All of lore.kernel.org
 help / color / mirror / Atom feed
From: Samiullah Khawaja <skhawaja@google.com>
To: Pranjal Shrivastava <praan@google.com>
Cc: iommu@lists.linux.dev, linux-pci@vger.kernel.org,
	 Will Deacon <will@kernel.org>, Joerg Roedel <joro@8bytes.org>,
	 Bjorn Helgaas <bhelgaas@google.com>,
	Robin Murphy <robin.murphy@arm.com>,
	 Jason Gunthorpe <jgg@ziepe.ca>,
	Mostafa Saleh <smostafa@google.com>,
	 Nicolin Chen <nicolinc@nvidia.com>,
	Daniel Mentz <danielmentz@google.com>,
	 Pasha Tatashin <pasha.tatashin@soleen.com>,
	David Matlack <dmatlack@google.com>
Subject: Re: [PATCH v3 2/3] PCI/ATS: Validate STU for VFs in pci_prepare_ats()
Date: Tue, 19 May 2026 19:05:22 +0000	[thread overview]
Message-ID: <agy0aNB-KJPsP3aa@google.com> (raw)
In-Reply-To: <20260519135323.1558777-3-praan@google.com>

On Tue, May 19, 2026 at 01:53:21PM +0000, Pranjal Shrivastava wrote:
>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.
>
>Signed-off-by: Pranjal Shrivastava <praan@google.com>
>---
> drivers/pci/ats.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
>diff --git a/drivers/pci/ats.c b/drivers/pci/ats.c
>index a5fa7745bce8..54319854bfd8 100644
>--- a/drivers/pci/ats.c
>+++ b/drivers/pci/ats.c
>@@ -73,8 +73,13 @@ int pci_prepare_ats(struct pci_dev *dev, int ps)
> 	if (ps < PCI_ATS_MIN_STU)
> 		return -EINVAL;
>
>-	if (dev->is_virtfn)
>+	if (dev->is_virtfn) {
>+		struct pci_dev *pdev = pci_physfn(dev);
>+
>+		if (pdev->ats_stu != ps)
>+			return -EINVAL;
> 		return 0;
>+	}
>
> 	dev->ats_stu = ps;
> 	ctrl = PCI_ATS_CTRL_STU(dev->ats_stu - PCI_ATS_MIN_STU);
>-- 
>2.54.0.563.g4f69b47b94-goog
>

Reviewed-by: Samiullah Khawaja <skhawaja@google.com>

  parent reply	other threads:[~2026-05-19 19:05 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-19 13:53 [PATCH v3 0/3] iommu/arm-smmu-v3: Fix ATS robustness and state tracking Pranjal Shrivastava
2026-05-19 13:53 ` [PATCH v3 1/3] PCI/ATS: Ensure pci_ats_supported() is PF-aware for VFs Pranjal Shrivastava
2026-05-19 14:41   ` Jason Gunthorpe
2026-05-19 19:02   ` Samiullah Khawaja
2026-05-19 13:53 ` [PATCH v3 2/3] PCI/ATS: Validate STU for VFs in pci_prepare_ats() Pranjal Shrivastava
2026-05-19 14:43   ` Jason Gunthorpe
2026-05-19 19:05   ` Samiullah Khawaja [this message]
2026-05-19 13:53 ` [PATCH v3 3/3] iommu/arm-smmu-v3: Fix ATS state tracking via ats_prepared gate Pranjal Shrivastava
2026-05-19 14:44   ` Jason Gunthorpe
2026-05-19 14:55     ` Pranjal Shrivastava
2026-05-19 14:59       ` Jason Gunthorpe
2026-05-19 20:01         ` Samiullah Khawaja
2026-05-20 14:29           ` Pranjal Shrivastava
2026-05-20 14:24         ` Pranjal Shrivastava
2026-05-20 14:51           ` Jason Gunthorpe
2026-05-20 16:24             ` Pranjal Shrivastava
2026-05-20 16:31               ` Jason Gunthorpe
2026-05-22 16:14                 ` Pranjal Shrivastava
2026-05-23 12:34                   ` Jason Gunthorpe
2026-05-25 18:38                     ` Pranjal Shrivastava

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=agy0aNB-KJPsP3aa@google.com \
    --to=skhawaja@google.com \
    --cc=bhelgaas@google.com \
    --cc=danielmentz@google.com \
    --cc=dmatlack@google.com \
    --cc=iommu@lists.linux.dev \
    --cc=jgg@ziepe.ca \
    --cc=joro@8bytes.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=nicolinc@nvidia.com \
    --cc=pasha.tatashin@soleen.com \
    --cc=praan@google.com \
    --cc=robin.murphy@arm.com \
    --cc=smostafa@google.com \
    --cc=will@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.