bus: fsl_mc: Fix driver_managed_dma check
Since it's not currently safe to take device_lock() in the IOMMU probe path, that can race against really_probe() setting dev->driver before attempting to bind. The race itself isn't so bad, since we're only concerned with dereferencing dev->driver itself anyway, but sadly my attempt to implement the check with minimal churn leads to a kind of TOCTOU issue, where dev->driver becomes valid after to_fsl_mc_driver(NULL) is already computed, and thus the check fails to work as intended. Will and I both hit this with the platform bus, but the pattern here is the same, so fix it for correctness too. Reported-by:Will McVicker <willmcvicker@google.com> Fixes: bcb81ac6 ("iommu: Get DT/ACPI parsing into the proper probe path") Signed-off-by:
Robin Murphy <robin.murphy@arm.com> Reviewed-by:
Will McVicker <willmcvicker@google.com> Link: https://lore.kernel.org/r/20250425133929.646493-3-robin.murphy@arm.com Signed-off-by:
Christophe Leroy <christophe.leroy@csgroup.eu>
Loading
Please sign in to comment