mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-03-13 21:36:57 +00:00
This replaces dm_remove_devices_flags() calls in all boot implementations to ensure non vital devices are consistently removed first. All boot implementation except arch/arm/lib/bootm.c currently just call dm_remove_devices_flags(DM_REMOVE_ACTIVE_ALL). This can result in crashes when dependencies between devices exists. The driver model's design document describes DM_FLAG_VITAL as "indicates that the device is 'vital' to the operation of other devices". Device removal at boot should follow this. Instead of adding dm_remove_devices_flags() with (DM_REMOVE_ACTIVE_ALL | DM_REMOVE_NON_VITAL) everywhere add dm_remove_devices_active() which does this. Fixes a NULL pointer deref in the apple dart IOMMU driver during EFI boot. The xhci-pci (driver which depends on the IOMMU to work) removes its mapping on removal. This explodes when the IOMMU device was removed first. dm_remove_devices_flags() is kept since it is used for testing of device_remove() calls in dm. Signed-off-by: Janne Grunau <j@jannau.net> |
||
---|---|---|
.. | ||
platform_data | ||
acpi.h | ||
device-internal.h | ||
device.h | ||
device_compat.h | ||
devres.h | ||
fdtaddr.h | ||
lists.h | ||
of.h | ||
of_access.h | ||
of_addr.h | ||
of_extra.h | ||
ofnode.h | ||
ofnode_decl.h | ||
pci.h | ||
pinctrl.h | ||
platdata.h | ||
read.h | ||
root.h | ||
simple_bus.h | ||
tag.h | ||
test.h | ||
uclass-id.h | ||
uclass-internal.h | ||
uclass.h | ||
util.h |