diff options
author | H. Peter Anvin <hpa@linux.intel.com> | 2013-05-22 10:58:57 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2013-05-22 10:58:57 -0700 |
commit | 3979fdce77e6c2de97fa6c6f844ee76f001f4371 (patch) | |
tree | c5e2a223fdc8d82595b8cdf4471d7c0589078e7d /drivers | |
parent | fbe06b7bae7c9cf6ab05168fce5ee93b2f4bae7c (diff) | |
parent | eccaf52fee8305d5207ff110950a82c100e459bc (diff) | |
download | linux-stable-3979fdce77e6c2de97fa6c6f844ee76f001f4371.tar.gz linux-stable-3979fdce77e6c2de97fa6c6f844ee76f001f4371.tar.bz2 linux-stable-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); |