[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20260127150947.GH1134360@nvidia.com>
Date: Tue, 27 Jan 2026 11:09:47 -0400
From: Jason Gunthorpe <jgg@...dia.com>
To: Nicolin Chen <nicolinc@...dia.com>
Cc: will@...nel.org, robin.murphy@....com, joro@...tes.org, jpb@...nel.org,
praan@...gle.com, miko.lenczewski@....com,
linux-arm-kernel@...ts.infradead.org, iommu@...ts.linux.dev,
linux-kernel@...r.kernel.org, patches@...ts.linux.dev
Subject: Re: [PATCH v2 05/10] iommu/arm-smmu-v3: Flush iotlb in
arm_smmu_iotlb_tag_free()
On Mon, Jan 26, 2026 at 06:56:36PM -0800, Nicolin Chen wrote:
> On Mon, Jan 26, 2026 at 05:08:33PM -0400, Jason Gunthorpe wrote:
> > On Wed, Jan 21, 2026 at 05:24:23PM -0800, Nicolin Chen wrote:
> > > static void arm_smmu_iotlb_tag_free(struct arm_smmu_inv *tag)
> > > {
> > > + struct arm_smmu_cmdq_ent cmd = {
> > > + .opcode = tag->nsize_opcode,
> > > + };
> > > +
> > > + if (tag->type == INV_TYPE_S1_ASID)
> > > + cmd.tlbi.asid = tag->id;
> > > + else
> > > + cmd.tlbi.vmid = tag->id;
> > > + arm_smmu_cmdq_issue_cmd_with_sync(tag->smmu, &cmd);
> >
> > I think in all these places checking the tag->type it is probably a
> > good idea to not use a catch all else for vmid? We have many tag types
> > and some should never come to this, or other, functions.
>
> Or maybe we can add an assert function?
>
> static inline void arm_smmu_inv_assert_iotlb_tag(struct arm_smmu_inv *inv)
> {
> WARN_ON(inv != INV_TYPE_S1_ASID && inv != INV_TYPE_S1_VMID &&
> inv != INV_TYPE_S1_VMID_VSMMU);
> }
That works too
Jason
Powered by blists - more mailing lists