summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@linux.intel.com>2013-05-22 10:58:57 -0700
committerH. Peter Anvin <hpa@linux.intel.com>2013-05-22 10:58:57 -0700
commit3979fdce77e6c2de97fa6c6f844ee76f001f4371 (patch)
treec5e2a223fdc8d82595b8cdf4471d7c0589078e7d /drivers
parentfbe06b7bae7c9cf6ab05168fce5ee93b2f4bae7c (diff)
parenteccaf52fee8305d5207ff110950a82c100e459bc (diff)
downloadlinux-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.c8
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);