From: Takashi Iwai <tiwai@suse.de>
Subject: kABI compatibility workaround for efivars
Patch-mainline: Never, kABI workaround
References: git-fixes
Re-export two functions that were removed by the patch
efi-efivars-Fix-variable-writes-without-query_variab.patch
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
drivers/firmware/efi/vars.c | 17 +++++++++++++++--
include/linux/efi.h | 4 ++++
2 files changed, 19 insertions(+), 2 deletions(-)
--- a/drivers/firmware/efi/vars.c
+++ b/drivers/firmware/efi/vars.c
@@ -21,7 +21,7 @@ static struct efivars *__efivars;
static DEFINE_SEMAPHORE(efivars_lock);
-static efi_status_t check_var_size(bool nonblocking, u32 attributes,
+static efi_status_t __check_var_size(bool nonblocking, u32 attributes,
unsigned long size)
{
const struct efivar_operations *fops;
@@ -39,6 +39,19 @@ static efi_status_t check_var_size(bool
return status;
}
+/* FIXME: exported just for kABI compatibility with SLE15-SP5 */
+efi_status_t check_var_size(u32 attributes, unsigned long size)
+{
+ return __check_var_size(false, attributes, size);
+}
+EXPORT_SYMBOL_NS_GPL(check_var_size, EFIVAR);
+
+efi_status_t check_var_size_nonblocking(u32 attributes, unsigned long size)
+{
+ return __check_var_size(true, attributes, size);
+}
+EXPORT_SYMBOL_NS_GPL(check_var_size_nonblocking, EFIVAR);
+
/**
* efivars_kobject - get the kobject for the registered efivars
*
@@ -202,7 +215,7 @@ efi_status_t efivar_set_variable_locked(
efi_status_t status;
if (data_size > 0) {
- status = check_var_size(nonblocking, attr,
+ status = __check_var_size(nonblocking, attr,
data_size + ucs2_strsize(name, 1024));
if (status != EFI_SUCCESS)
return status;
--- a/include/linux/efi.h
+++ b/include/linux/efi.h
@@ -1065,6 +1065,10 @@ efi_status_t efivar_set_variable_locked(
efi_status_t efivar_set_variable(efi_char16_t *name, efi_guid_t *vendor,
u32 attr, unsigned long data_size, void *data);
+/* exported for kABI compatibility */
+efi_status_t check_var_size(u32 attributes, unsigned long size);
+efi_status_t check_var_size_nonblocking(u32 attributes, unsigned long size);
+
#if IS_ENABLED(CONFIG_EFI_CAPSULE_LOADER)
extern bool efi_capsule_pending(int *reset_type);