In the Linux kernel, the following vulnerability has been resolved:
iommu/arm-smmu-v3: Don't unregister on shutdown
Similar to SMMUv2, this driver calls iommudeviceunregister() 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 armsmmudeviceremove() from armsmmudeviceshutdown(), let's pick only the relevant function call - armsmmudevicedisable() - more or less the reverse of armsmmudevicereset() - and call just that from the shutdown path.