> > + if (IS_ENABLED(CONFIG_EFI_IGNORE_OSINDICATIONS)) [...] > > + return true; > > + > > + size = sizeof(os_indications); > > + ret = efi_get_variable_int(L"OsIndications", &efi_global_variable_guid, > > + NULL, &size, &os_indications, NULL); > > + if (ret == EFI_SUCCESS && > > + (os_indications > > + & EFI_OS_INDICATIONS_FILE_CAPSULE_DELIVERY_SUPPORTED)) > > The bit EFI_OS_INDICATIONS_FILE_CAPSULE_DELIVERY_SUPPORTED must be > cleared in OsIndications after successfully applying the capsule. See > related patch
Yea I noticed that as well while I was coding this and meant to sent a patch afterwards. You've already done that,so let me go have a look! > > [PATCH 1/1] efi_loader: fix set_capsule_result() > https://lists.denx.de/pipermail/u-boot/2021-June/453111.html > > Reviewed-by: Heinrich Schuchardt <xypron.g...@gmx.de> > > > + return true; > > + > > + return false; > > +} > > + > > /** > > * efi_launch_capsule - launch capsules > > * > > @@ -958,20 +985,13 @@ efi_status_t __weak efi_load_capsule_drivers(void) > > */ > > efi_status_t efi_launch_capsules(void) > > { > > - u64 os_indications; > > - efi_uintn_t size; > > struct efi_capsule_header *capsule = NULL; > > u16 **files; > > unsigned int nfiles, index, i; > > u16 variable_name16[12]; > > efi_status_t ret; > > > > - size = sizeof(os_indications); > > - ret = efi_get_variable_int(L"OsIndications", &efi_global_variable_guid, > > - NULL, &size, &os_indications, NULL); > > - if (ret != EFI_SUCCESS || > > - !(os_indications > > - & EFI_OS_INDICATIONS_FILE_CAPSULE_DELIVERY_SUPPORTED)) > > + if (!check_run_capsules()) > > return EFI_SUCCESS; > > > > index = get_last_capsule(); > > >