iommu/arm-smmu-v3-sva: Remove bond refcount
authorMichael Shavit <mshavit@google.com>
Tue, 5 Sep 2023 11:49:13 +0000 (19:49 +0800)
committerWill Deacon <will@kernel.org>
Thu, 12 Oct 2023 17:37:06 +0000 (18:37 +0100)
commit37ed36448fcd73be197c87ce291d96eeb4d55c00
treedfe2a31712217d2bf7ee447ee450adde813af6f2
parentd912aed14fe412038379b1a90d1ae5a02307e830
iommu/arm-smmu-v3-sva: Remove bond refcount

Always allocate a new arm_smmu_bond in __arm_smmu_sva_bind and remove
the bond refcount since arm_smmu_bond can never be shared across calls
to __arm_smmu_sva_bind.

The iommu framework will not allocate multiple SVA domains for the same
(device/mm) pair, nor will it call set_dev_pasid for a device if a
domain is already attached on the given pasid. There's also a one-to-one
mapping between MM and PASID. __arm_smmu_sva_bind is therefore never
called with the same (device/mm) pair, and so there's no reason to try
and normalize allocations of the arm_smmu_bond struct for a (device/mm)
pair across set_dev_pasid.

Signed-off-by: Michael Shavit <mshavit@google.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/20230905194849.v1.2.Id3ab7cf665bcead097654937233a645722a4cce3@changeid
Signed-off-by: Will Deacon <will@kernel.org>
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c