efi_driver: don't bind internal block devices
UEFI block devices can either mirror U-Boot's internal devices or be provided by an EFI application like iPXE. When ConnectController() is invoked for the EFI_BLOCK_IO_PROTOCOL interface for such an application provided device we create a virtual U-Boot block device of type "efi_blk". Currently we do not call ConnectController() when handles for U-Boot's internal block devices are created. If an EFI application calls ConnectController() for a handle relating to an internal block device, we erroneously create an extra "efi_blk" block device. E.g. the UEFI shell has a command 'connect -r' which calls ConnectController() for all handles with device path protocol. In the Supported() method of our EFI_DRIVER_BINDING_PROTOCOL return EFI_UNSUPPORTED when dealing with an U-Boot internal device. Reported-by:Etienne Carriere <etienne.carriere@linaro.org> Fixes: commit 05ef48a2 ("efi_driver: EFI block driver") Signed-off-by:
Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by:
Etienne Carriere <etienne.carriere@linaro.org> Tested-by:
Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by:
Ilias Apalodimas <ilias.apalodimas@linaro.org>
Loading
Please register or sign in to comment