
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@denx.de Cc: Simon Glass sjg@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 .