Hi Michal,
Thanks for following up on this
> * efi_var_restore() - restore EFI variables from buffer
> *
> diff --git a/lib/efi_loader/Makefile b/lib/efi_loader/Makefile
> index f490081f6542..ca1775eb03be 100644
> --- a/lib/efi_loader/Makefile
> +++ b/lib/efi_loader/Makefile
> @@ -53,7 +53,7 @@ ifeq ($(CONFIG_EFI_MM_COMM_TEE),y)
> obj-y += efi_variable_tee.o
> else
> obj-y += efi_variable.o
> -obj-y += efi_var_file.o
> +obj-$(CONFIG_EFI_VARIABLE_FILE_STORE) += efi_var_file.o
hrmm what if we compile with EFI_VARIABLE_NO_STORE?
> diff --git a/lib/efi_loader/efi_variable.c b/lib/efi_loader/efi_variable.c
> index f3533f4def3a..13db6eae882a 100644
> --- a/lib/efi_loader/efi_variable.c
> +++ b/lib/efi_loader/efi_variable.c
> @@ -397,11 +397,15 @@ efi_status_t efi_set_variable_int(const u16
> *variable_name,
> ret = EFI_SUCCESS;
>
> /*
> - * Write non-volatile EFI variables to file
> + * Write non-volatile EFI variables
> * TODO: check if a value change has occured to avoid superfluous
> writes
> */
> - if (attributes & EFI_VARIABLE_NON_VOLATILE)
> + if (attributes & EFI_VARIABLE_NON_VOLATILE) {
> + if (IS_ENABLED(CONFIG_EFI_VARIABLE_NO_STORE))
> + return EFI_NOT_READY;
I think we should just return success here. EFI_VARIABLE_NO_STORE
means "dont store on file, but we still have to update the memory
backend.
[...]
Thanks
/Ilias