Hi, This is a resend of [0] trying to reconnect drivers gracefully in case of a protocol removal failure.
Changes since v1: - Fix an existing memory leak when uninstalling a protocol. The opened protocol information was never released - Drop a patch that was incorrectly trying to free protocols on the handle that were not associated with the driver being released - Rewrite the sefltests and instead of installing a second driver handle on the controller handle, force the controller to return EFI_DEVICE_ERROR on the first removal. When that happens all the children, that are disconnected before the controller, must be reconnected - Reconnect all controllers on the handle if after disconnecting drivers and closing protocols opened by GET_PROTOCOL, TEST_PROTOCOL, HANDLE_PROTOCOL opened protocols are still present in the handle [0] https://lore.kernel.org/u-boot/20230615143941.416924-1-ilias.apalodi...@linaro.org/ Regards /Ilias Ilias Apalodimas (4): efi_loader: reconnect drivers on failure efi_loader: check the status of disconnected drivers efi_loader: fix the return codes of UninstallProtocol efi_selftests: add extra testcases on controller handling lib/efi_loader/efi_boottime.c | 43 ++++++++++++++++---- lib/efi_selftest/efi_selftest_controllers.c | 44 +++++++++++++++++++-- 2 files changed, 77 insertions(+), 10 deletions(-) -- 2.40.1