Compile out filestore functions when config isn't enabled. Signed-off-by: Shantur Rathore <i...@shantur.com> ---
include/efi_variable.h | 21 ++++++++++++--------- lib/efi_loader/efi_var_file.c | 13 +++++++------ lib/efi_loader/efi_variable.c | 10 +++++++++- 3 files changed, 28 insertions(+), 16 deletions(-) diff --git a/include/efi_variable.h b/include/efi_variable.h index 805e6c5f1e..ca7e19d514 100644 --- a/include/efi_variable.h +++ b/include/efi_variable.h @@ -136,15 +136,6 @@ struct efi_var_file { struct efi_var_entry var[]; }; -/** - * efi_var_to_file() - save non-volatile variables as file - * - * File ubootefi.var is created on the EFI system partion. - * - * Return: status code - */ -efi_status_t efi_var_to_file(void); - /** * efi_var_collect() - collect variables in buffer * @@ -172,6 +163,16 @@ efi_status_t __maybe_unused efi_var_collect(struct efi_var_file **bufp, loff_t * */ efi_status_t efi_var_restore(struct efi_var_file *buf, bool safe); +#ifdef CONFIG_EFI_VARIABLE_FILE_STORE +/** + * efi_var_to_file() - save non-volatile variables as file + * + * File ubootefi.var is created on the EFI system parition. + * + * Return: status code + */ +efi_status_t efi_var_to_file(void); + /** * efi_var_from_file() - read variables from file * @@ -185,6 +186,8 @@ efi_status_t efi_var_restore(struct efi_var_file *buf, bool safe); */ efi_status_t efi_var_from_file(void); +#endif // CONFIG_EFI_VARIABLE_FILE_STORE + /** * efi_var_mem_init() - set-up variable list * diff --git a/lib/efi_loader/efi_var_file.c b/lib/efi_loader/efi_var_file.c index 62e071bd83..7ceb7e3cf7 100644 --- a/lib/efi_loader/efi_var_file.c +++ b/lib/efi_loader/efi_var_file.c @@ -117,6 +117,8 @@ efi_status_t __maybe_unused efi_var_collect(struct efi_var_file **bufp, loff_t * return EFI_SUCCESS; } +#ifdef CONFIG_EFI_VARIABLE_FILE_STORE + /** * efi_var_to_file() - save non-volatile variables as file * @@ -126,7 +128,6 @@ efi_status_t __maybe_unused efi_var_collect(struct efi_var_file **bufp, loff_t * */ efi_status_t efi_var_to_file(void) { -#ifdef CONFIG_EFI_VARIABLE_FILE_STORE efi_status_t ret; struct efi_var_file *buf; loff_t len; @@ -150,11 +151,10 @@ error: log_err("Failed to persist EFI variables\n"); free(buf); return ret; -#else - return EFI_SUCCESS; -#endif } +#endif // CONFIG_EFI_VARIABLE_FILE_STORE + efi_status_t efi_var_restore(struct efi_var_file *buf, bool safe) { struct efi_var_entry *var, *last_var; @@ -198,6 +198,7 @@ efi_status_t efi_var_restore(struct efi_var_file *buf, bool safe) return EFI_SUCCESS; } +#ifdef CONFIG_EFI_VARIABLE_FILE_STORE /** * efi_var_from_file() - read variables from file * @@ -211,7 +212,6 @@ efi_status_t efi_var_restore(struct efi_var_file *buf, bool safe) */ efi_status_t efi_var_from_file(void) { -#ifdef CONFIG_EFI_VARIABLE_FILE_STORE struct efi_var_file *buf; loff_t len; efi_status_t ret; @@ -236,6 +236,7 @@ efi_status_t efi_var_from_file(void) log_err("Invalid EFI variables file\n"); error: free(buf); -#endif return EFI_SUCCESS; } + +#endif // CONFIG_EFI_VARIABLE_FILE_STORE diff --git a/lib/efi_loader/efi_variable.c b/lib/efi_loader/efi_variable.c index be95ed44e6..7fa444451d 100644 --- a/lib/efi_loader/efi_variable.c +++ b/lib/efi_loader/efi_variable.c @@ -357,8 +357,11 @@ efi_status_t efi_set_variable_int(const u16 *variable_name, * Write non-volatile EFI variables to file * TODO: check if a value change has occured to avoid superfluous writes */ - if (attributes & EFI_VARIABLE_NON_VOLATILE) + if (attributes & EFI_VARIABLE_NON_VOLATILE) { +#ifdef CONFIG_EFI_VARIABLE_FILE_STORE efi_var_to_file(); +#endif + } return EFI_SUCCESS; } @@ -466,7 +469,12 @@ efi_status_t efi_init_variables(void) if (ret != EFI_SUCCESS) return ret; +#ifdef CONFIG_EFI_VARIABLE_FILE_STORE ret = efi_var_from_file(); +#else + ret = EFI_SUCCESS; +#endif + if (ret != EFI_SUCCESS) return ret; if (IS_ENABLED(CONFIG_EFI_VARIABLES_PRESEED)) { -- 2.40.1