[PATCH] dm: core: Check flags before removing devices
Marek Vasut
marex at denx.de
Fri Feb 11 16:24:12 CET 2022
On 2/11/22 16:05, Simon Glass wrote:
> Hi Marek,
Hi,
>> Calling device_chld_remove() before flags_remove() means all devices
>> get removed no matter whether they should be removed late or not. This
>> breaks teardown of eMMC when booting and other critical boot paths.
>>
>> Fixes: c51d2e704a1 ("dm: core: Avoid partially removing devices")
>> Signed-off-by: Marek Vasut <marex at denx.de>
>> Cc: Simon Glass <sjg at chromium.org>
>> ---
>> drivers/core/device-remove.c | 16 ++++++++--------
>> 1 file changed, 8 insertions(+), 8 deletions(-)
>
> This means that the children do not get the remove signal if
> -EPROBE_DEFER or -EKEYREJECTED are returned by the 'dev' device.
>
> Also it fails several tests ('make qcheck').
Do you have an idea for a better fix, one which doesn't break booting
Linux from U-Boot ? I think that's a rather important use-case .
More information about the U-Boot
mailing list