[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aXgpZJTWGGVrvqv1@Asurada-Nvidia>
Date: Mon, 26 Jan 2026 18:56:36 -0800
From: Nicolin Chen <nicolinc@...dia.com>
To: Jason Gunthorpe <jgg@...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 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);
}
Nicolin
Powered by blists - more mailing lists