iommu: Mark dev_iommu_priv_set() with a lockdep
authorJason Gunthorpe <jgg@nvidia.com>
Thu, 7 Dec 2023 18:03:12 +0000 (14:03 -0400)
committerJoerg Roedel <jroedel@suse.de>
Tue, 12 Dec 2023 09:18:49 +0000 (10:18 +0100)
commiteda1a94caf6b05482bbf57dc244e7a31a9dba77c
tree2820166425e5b344e62877e09b25d2eedc204b93
parent64945d1b0ed169aeffa59020941e4ac45ebc315a
iommu: Mark dev_iommu_priv_set() with a lockdep

A perfect driver would only call dev_iommu_priv_set() from its probe
callback. We've made it functionally correct to call it from the of_xlate
by adding a lock around that call.

lockdep assert that iommu_probe_device_lock is held to discourage misuse.

Exclude PPC kernels with CONFIG_FSL_PAMU turned on because FSL_PAMU uses a
global static for its priv and abuses priv for its domain.

Remove the pointless stores of NULL, all these are on paths where the core
code will free dev->iommu after the op returns.

Reviewed-by: Lu Baolu <baolu.lu@linux.intel.com>
Reviewed-by: Jerry Snitselaar <jsnitsel@redhat.com>
Tested-by: Hector Martin <marcan@marcan.st>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/5-v2-16e4def25ebb+820-iommu_fwspec_p1_jgg@nvidia.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/amd/iommu.c
drivers/iommu/apple-dart.c
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
drivers/iommu/arm/arm-smmu/arm-smmu.c
drivers/iommu/intel/iommu.c
drivers/iommu/iommu.c
drivers/iommu/omap-iommu.c
include/linux/iommu.h