In case of UCLASS_EFI_LOADER, EFI handles are managed by
EFI application/driver, we must not delete EFI handles.
Signed-off-by: Masahisa Kojima <masahisa.kojima@linaro.org>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
switch (id) {
case UCLASS_BLK:
desc = dev_get_uclass_plat(dev);
- if (desc && desc->uclass_id != UCLASS_EFI_LOADER)
- diskobj = (struct efi_disk_obj *)handle;
+ if (desc && desc->uclass_id == UCLASS_EFI_LOADER)
+ /*
+ * EFI application/driver manages the EFI handle,
+ * no need to delete EFI handle.
+ */
+ return 0;
+
+ diskobj = (struct efi_disk_obj *)handle;
break;
case UCLASS_PARTITION:
diskobj = (struct efi_disk_obj *)handle;
return 0;
}
- if (diskobj) {
- dp = diskobj->dp;
- volume = diskobj->volume;
- }
+ dp = diskobj->dp;
+ volume = diskobj->volume;
ret = efi_delete_handle(handle);
/* Do not delete DM device if there are still EFI drivers attached. */