]> git.dujemihanovic.xyz Git - u-boot.git/commit
Merge patch series "Fix device removal order for Apple dart iommu"
authorTom Rini <trini@konsulko.com>
Sun, 24 Nov 2024 21:41:32 +0000 (15:41 -0600)
committerTom Rini <trini@konsulko.com>
Sun, 24 Nov 2024 21:41:32 +0000 (15:41 -0600)
commit880fcc49eb40a78ed27ff575aa02034d7bd74e80
treef31c80f6079688c879048751172e305100c37eb9
parent6c791b6646c101b5bed6537dafbe7361185466ea
parentdabaa4ae32062cb3f3d995e5c63e6cef54ad079b
Merge patch series "Fix device removal order for Apple dart iommu"

Janne Grunau <j@jannau.net> says:

Starting with v2024.10 dev_iommu_dma_unmap calls during device removal
trigger a NULL pointer dereference in the Apple dart iommu driver. The
iommu device is removed before its user. The sparsely used DM_FLAG_VITAL
flag is intended to describe this dependency. Add it to the driver.

Adding this flag is unfortunately not enough since the boot routines
except the arm one simply remove all drivers. Add and use a new function
which calls
    dm_remove_devioce_flags(DM_REMOVE_ACTIVE_ALL | DM_REMOVE_NON_VITAL);
    dm_remove_devices_flags(DM_REMOVE_ACTIVE_ALL);
to ensure this order dependency is head consistently.

Link: https://lore.kernel.org/r/20241123-iommu_apple_dart_ordering-v2-0-cc2ade6dde97@jannau.net