[PATCH 0/5] efivars compat support

From: Matt Fleming
Date: Wed Mar 19 2014 - 16:00:21 EST


From: Matt Fleming <matt.fleming@xxxxxxxxx>

Apparently people are running 32-bit userland on top of 64-bit kernels
and wanting to interact with efivars. At the moment this doesn't work
all too well because 'struct efi_variable' (the data blob passed between
userland and kernel) contains unsigned long data items, leading to
incompatibilities and tears.

We can fix this up fairly trivially in the kernel by using
is_compat_task() and doing a small amount of data munging.

Matt Fleming (5):
efivars: Use local variables instead of a pointer dereference
efivars: Check size of user object
efivars: Stop passing a struct argument to efivar_validate()
efivars: Refactor sanity checking code into separate function
efivars: Add compatibility code for compat tasks

drivers/firmware/efi/efivars.c | 192 ++++++++++++++++++++++++++++++++++-------
drivers/firmware/efi/vars.c | 30 +++----
include/linux/efi.h | 6 +-
3 files changed, 181 insertions(+), 47 deletions(-)

--
1.8.5.3

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/