diff options
Diffstat (limited to 'drivers/firmware/efivars.c')
| -rw-r--r-- | drivers/firmware/efivars.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/firmware/efivars.c b/drivers/firmware/efivars.c index 0287ff65963b..33b17c6a46fb 100644 --- a/drivers/firmware/efivars.c +++ b/drivers/firmware/efivars.c | |||
| @@ -352,7 +352,7 @@ static ssize_t efivar_attr_show(struct kobject *kobj, struct attribute *attr, | |||
| 352 | { | 352 | { |
| 353 | struct efivar_entry *var = to_efivar_entry(kobj); | 353 | struct efivar_entry *var = to_efivar_entry(kobj); |
| 354 | struct efivar_attribute *efivar_attr = to_efivar_attr(attr); | 354 | struct efivar_attribute *efivar_attr = to_efivar_attr(attr); |
| 355 | ssize_t ret = 0; | 355 | ssize_t ret = -EIO; |
| 356 | 356 | ||
| 357 | if (!capable(CAP_SYS_ADMIN)) | 357 | if (!capable(CAP_SYS_ADMIN)) |
| 358 | return -EACCES; | 358 | return -EACCES; |
| @@ -368,7 +368,7 @@ static ssize_t efivar_attr_store(struct kobject *kobj, struct attribute *attr, | |||
| 368 | { | 368 | { |
| 369 | struct efivar_entry *var = to_efivar_entry(kobj); | 369 | struct efivar_entry *var = to_efivar_entry(kobj); |
| 370 | struct efivar_attribute *efivar_attr = to_efivar_attr(attr); | 370 | struct efivar_attribute *efivar_attr = to_efivar_attr(attr); |
| 371 | ssize_t ret = 0; | 371 | ssize_t ret = -EIO; |
| 372 | 372 | ||
| 373 | if (!capable(CAP_SYS_ADMIN)) | 373 | if (!capable(CAP_SYS_ADMIN)) |
| 374 | return -EACCES; | 374 | return -EACCES; |
| @@ -618,8 +618,8 @@ efivar_create_sysfs_entry(unsigned long variable_name_size, | |||
| 618 | new_efivar = kmalloc(sizeof(struct efivar_entry), GFP_KERNEL); | 618 | new_efivar = kmalloc(sizeof(struct efivar_entry), GFP_KERNEL); |
| 619 | 619 | ||
| 620 | if (!short_name || !new_efivar) { | 620 | if (!short_name || !new_efivar) { |
| 621 | if (short_name) kfree(short_name); | 621 | kfree(short_name); |
| 622 | if (new_efivar) kfree(new_efivar); | 622 | kfree(new_efivar); |
| 623 | return 1; | 623 | return 1; |
| 624 | } | 624 | } |
| 625 | memset(short_name, 0, short_name_size+1); | 625 | memset(short_name, 0, short_name_size+1); |
| @@ -644,7 +644,8 @@ efivar_create_sysfs_entry(unsigned long variable_name_size, | |||
| 644 | kobj_set_kset_s(new_efivar, vars_subsys); | 644 | kobj_set_kset_s(new_efivar, vars_subsys); |
| 645 | kobject_register(&new_efivar->kobj); | 645 | kobject_register(&new_efivar->kobj); |
| 646 | 646 | ||
| 647 | kfree(short_name); short_name = NULL; | 647 | kfree(short_name); |
| 648 | short_name = NULL; | ||
| 648 | 649 | ||
| 649 | spin_lock(&efivars_lock); | 650 | spin_lock(&efivars_lock); |
| 650 | list_add(&new_efivar->list, &efivar_list); | 651 | list_add(&new_efivar->list, &efivar_list); |
