aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/efi.h
diff options
context:
space:
mode:
authorMatt Fleming <matt.fleming@intel.com>2014-03-17 10:57:00 +0000
committerMatt Fleming <matt.fleming@intel.com>2014-04-17 13:53:43 +0100
commita5d92ad32dad94fd8f3f61778561d532bb3a2f77 (patch)
tree16c7c63f80dedd7996d0efb341aa34ba8b295993 /include/linux/efi.h
parentefivars: Check size of user object (diff)
downloadlinux-dev-a5d92ad32dad94fd8f3f61778561d532bb3a2f77.tar.xz
linux-dev-a5d92ad32dad94fd8f3f61778561d532bb3a2f77.zip
efivars: Stop passing a struct argument to efivar_validate()
In preparation for compat support, we can't assume that user variable object is represented by a 'struct efi_variable'. Convert the validation functions to take the variable name as an argument, which is the only piece of the struct that was ever used anyway. Cc: Mike Waychison <mikew@google.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
Diffstat (limited to 'include/linux/efi.h')
-rw-r--r--include/linux/efi.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/include/linux/efi.h b/include/linux/efi.h
index 82d0abb2b19f..6a4d8e27d1d7 100644
--- a/include/linux/efi.h
+++ b/include/linux/efi.h
@@ -1039,8 +1039,10 @@ struct efivars {
* and we use a page for reading/writing.
*/
+#define EFI_VAR_NAME_LEN 1024
+
struct efi_variable {
- efi_char16_t VariableName[1024/sizeof(efi_char16_t)];
+ efi_char16_t VariableName[EFI_VAR_NAME_LEN/sizeof(efi_char16_t)];
efi_guid_t VendorGuid;
unsigned long DataSize;
__u8 Data[1024];
@@ -1122,7 +1124,7 @@ int efivar_entry_iter(int (*func)(struct efivar_entry *, void *),
struct efivar_entry *efivar_entry_find(efi_char16_t *name, efi_guid_t guid,
struct list_head *head, bool remove);
-bool efivar_validate(struct efi_variable *var, u8 *data, unsigned long len);
+bool efivar_validate(efi_char16_t *var_name, u8 *data, unsigned long len);
extern struct work_struct efivar_work;
void efivar_run_worker(void);