Subject: Re: [PATCH 7/9] iommu/arm-smmu-v3: Directly encode CMDQ_OP_ATC_INV

From: Jason Gunthorpe <[email-masked]>
Date: Sat, 9 May 2026 13:54:01 -0300

On Fri, May 08, 2026 at 11:46:39AM +0000, Pranjal Shrivastava wrote:
> On Fri, May 01, 2026 at 11:29:16AM -0300, Jason Gunthorpe wrote:
> > Add a new command make function and convert all the places using
> > ATC_INV.
> > 
> > Split out full invalidation to directly make the cmd instead of
> > overloading size=0 to mean full invalidation.
> > 
> > Signed-off-by: Jason Gunthorpe <[email-masked]>
> > ---
> 
> Nit: I guess it's worth mentioning that we remove CMDQ_ATC_0_GLOBAL as
> we don't set ent->atc.global = true anywhere in the driver anymore.

I added this:

In section "3.9.1 ATS Interface" of F.b the specification says:

  When the SMMU returns an ATS Translation Completion for a request that
  had a PASID, the Global bit of the Translation Completion Data Entry
  must be zero.

Even though it faithfully forwards the G bit through to the ATS
invalidation command there is no way to create G mappings so there is
never any need to send a G invalidation. Thus don't expose global in the
new helpers and leave CMDQ_ATC_0_GLOBAL unused.

Jason