diff options
author | H. Peter Anvin <hpa@linux.intel.com> | 2013-05-22 19:58:57 +0200 |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2013-05-22 19:58:57 +0200 |
commit | 3979fdce77e6c2de97fa6c6f844ee76f001f4371 (patch) | |
tree | c5e2a223fdc8d82595b8cdf4471d7c0589078e7d /drivers | |
parent | x86, range: fix missing merge during add range (diff) | |
parent | x86, efi: initial the local variable of DataSize to zero (diff) | |
download | linux-3979fdce77e6c2de97fa6c6f844ee76f001f4371.tar.xz linux-3979fdce77e6c2de97fa6c6f844ee76f001f4371.zip |
Merge tag 'efi-urgent' into x86/urgent
* Avoid confusing the user by returning -EIO instead of -ENOENT in
efivarfs if an EFI variable gets deleted from under us and return EOF
when reading from a zero-length file - Lingzhu Xiang
* Fix an oops in efivar_update_sysfs_entries() caused by reusing (and
therefore corrupting) a kzalloc() allocation - Seiji Aguchi
* Initialise the DataSize argument to GetVariable() otherwise it will
not be updated with the actual size of the variable on return.
Discovered on a Acer Aspire V3 BIOS - Lee, Chun-Yi
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/firmware/efi/efivars.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/firmware/efi/efivars.c b/drivers/firmware/efi/efivars.c index b623c599e572..8bd1bb6dbe47 100644 --- a/drivers/firmware/efi/efivars.c +++ b/drivers/firmware/efi/efivars.c @@ -523,13 +523,11 @@ static void efivar_update_sysfs_entries(struct work_struct *work) struct efivar_entry *entry; int err; - entry = kzalloc(sizeof(*entry), GFP_KERNEL); - if (!entry) - return; - /* Add new sysfs entries */ while (1) { - memset(entry, 0, sizeof(*entry)); + entry = kzalloc(sizeof(*entry), GFP_KERNEL); + if (!entry) + return; err = efivar_init(efivar_update_sysfs_entry, entry, true, false, &efivar_sysfs_list); |