Skip to content

Commit 3116aab

Browse files
error27gregkh
authored andcommitted
efivars: handle errors from register_efivars()
We should unwind and return an error if register_efivars() fails. Signed-off-by: Dan Carpenter <[email protected]> Acked-by: Mike Waychison <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent 051d51b commit 3116aab

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

drivers/firmware/efivars.c

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -803,17 +803,24 @@ efivars_init(void)
803803
ops.set_variable = efi.set_variable;
804804
ops.get_next_variable = efi.get_next_variable;
805805
error = register_efivars(&__efivars, &ops, efi_kobj);
806+
if (error)
807+
goto err_put;
806808

807809
/* Don't forget the systab entry */
808810
error = sysfs_create_group(efi_kobj, &efi_subsys_attr_group);
809811
if (error) {
810812
printk(KERN_ERR
811813
"efivars: Sysfs attribute export failed with error %d.\n",
812814
error);
813-
unregister_efivars(&__efivars);
814-
kobject_put(efi_kobj);
815+
goto err_unregister;
815816
}
816817

818+
return 0;
819+
820+
err_unregister:
821+
unregister_efivars(&__efivars);
822+
err_put:
823+
kobject_put(efi_kobj);
817824
return error;
818825
}
819826

0 commit comments

Comments
 (0)