Vladimir Oltean 32ea2c57dc iommu/arm-smmu-v3: Don't unregister on shutdown
Similar to SMMUv2, this driver calls iommu_device_unregister() from the
shutdown path, which removes the IOMMU groups with no coordination
whatsoever with their users - shutdown methods are optional in device
drivers. This can lead to NULL pointer dereferences in those drivers'
DMA API calls, or worse.

Instead of calling the full arm_smmu_device_remove() from
arm_smmu_device_shutdown(), let's pick only the relevant function call -
arm_smmu_device_disable() - more or less the reverse of
arm_smmu_device_reset() - and call just that from the shutdown path.

Fixes: 57365a04c921 ("iommu: Move bus setup to IOMMU device registration")
Suggested-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Link: https://lore.kernel.org/r/20221215141251.3688780-2-vladimir.oltean@nxp.com
Signed-off-by: Will Deacon <will@kernel.org>
2023-01-13 13:46:21 +01:00
..
2022-12-30 10:47:25 -08:00
2022-12-13 15:22:14 -08:00
2022-12-19 12:33:32 -06:00
2023-01-06 13:12:42 -08:00
2022-12-16 03:49:24 -08:00
2022-12-12 16:39:38 -08:00
2022-12-19 07:13:33 -06:00
2022-12-08 13:03:47 -08:00
2022-12-19 08:54:17 -06:00
2022-12-21 09:37:14 -08:00
2022-12-16 03:49:24 -08:00
2023-01-06 10:16:49 +01:00
2022-12-13 15:47:48 -08:00
2022-12-13 13:09:38 -08:00
2022-12-11 21:25:58 +01:00
2022-12-16 03:49:24 -08:00
2022-12-13 15:22:14 -08:00
2022-12-21 09:19:24 -08:00
2022-12-23 12:00:24 -08:00
2022-12-13 13:41:26 -08:00
2022-12-13 12:32:07 -08:00
2023-01-06 13:12:42 -08:00
2022-12-19 08:40:58 -06:00
2022-12-19 08:40:58 -06:00
2022-12-13 15:47:48 -08:00
2022-12-21 09:41:28 -08:00
2022-12-23 14:38:00 -08:00
2022-12-21 09:19:24 -08:00
2023-01-06 13:12:42 -08:00
2022-12-19 16:07:59 -06:00
2022-12-19 08:47:33 -06:00
2022-12-23 14:44:08 -08:00
2022-12-14 08:58:51 -08:00
2022-12-12 10:17:08 -08:00
2022-12-14 08:58:51 -08:00
2022-12-16 03:54:54 -08:00
2022-12-16 03:49:24 -08:00
2022-12-17 08:34:01 -06:00
2022-12-13 11:59:58 -08:00