Janne Grunau
dabaa4ae32
dm: Add dm_remove_devices_active() for ordered device removal
...
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>
2024-11-24 15:41:28 -06:00
..
2024-09-12 17:35:37 +02:00
2024-10-27 17:24:13 -06:00
2022-01-19 18:11:34 +01:00
2024-09-12 17:35:37 +02:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:49 -06:00
2024-11-24 15:41:28 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:49 -06:00
2022-10-31 14:47:33 -04:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:48 -06:00
2024-10-27 17:24:13 -06:00
2024-05-06 15:05:04 -06:00
2015-05-21 09:16:17 -04:00
2024-10-10 16:02:20 -06:00
2024-08-26 18:51:48 -06:00
2024-10-16 11:11:56 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:49 -06:00
2024-05-06 15:05:04 -06:00
2024-08-26 18:51:48 -06:00
2024-10-10 16:02:20 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:48 -06:00
2024-09-30 19:19:07 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:48 -06:00
2024-09-09 17:18:04 +02:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:49 -06:00
2024-09-30 19:19:07 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:49 -06:00
2024-08-26 18:51:49 -06:00
2024-05-06 15:05:04 -06:00
2024-05-06 15:05:04 -06:00
2024-08-26 18:51:49 -06:00
2024-05-06 15:05:04 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:48 -06:00
2024-08-26 18:51:48 -06:00
2024-10-23 06:52:38 +02:00