[PATCH] edac_mc: fix error handling
Call sysdev_class_unregister() on failure in edac_sysfs_memctrl_setup() and decrease identation level for clear logic. Acked-by: Doug Thompson <norsk5@xmission.com> Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
7011774db8
commit
77d6e1397a
@ -237,7 +237,11 @@ static int edac_sysfs_memctrl_setup(void)
|
|||||||
/* create the /sys/devices/system/edac directory */
|
/* create the /sys/devices/system/edac directory */
|
||||||
err = sysdev_class_register(&edac_class);
|
err = sysdev_class_register(&edac_class);
|
||||||
|
|
||||||
if (!err) {
|
if (err) {
|
||||||
|
debugf1("%s() error=%d\n", __func__, err);
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
/* Init the MC's kobject */
|
/* Init the MC's kobject */
|
||||||
memset(&edac_memctrl_kobj, 0, sizeof (edac_memctrl_kobj));
|
memset(&edac_memctrl_kobj, 0, sizeof (edac_memctrl_kobj));
|
||||||
edac_memctrl_kobj.parent = &edac_class.kset.kobj;
|
edac_memctrl_kobj.parent = &edac_class.kset.kobj;
|
||||||
@ -246,18 +250,23 @@ static int edac_sysfs_memctrl_setup(void)
|
|||||||
/* generate sysfs "..../edac/mc" */
|
/* generate sysfs "..../edac/mc" */
|
||||||
err = kobject_set_name(&edac_memctrl_kobj,"mc");
|
err = kobject_set_name(&edac_memctrl_kobj,"mc");
|
||||||
|
|
||||||
if (!err) {
|
if (err)
|
||||||
|
goto fail;
|
||||||
|
|
||||||
/* FIXME: maybe new sysdev_create_subdir() */
|
/* FIXME: maybe new sysdev_create_subdir() */
|
||||||
err = kobject_register(&edac_memctrl_kobj);
|
err = kobject_register(&edac_memctrl_kobj);
|
||||||
|
|
||||||
if (err)
|
if (err) {
|
||||||
debugf1("Failed to register '.../edac/mc'\n");
|
debugf1("Failed to register '.../edac/mc'\n");
|
||||||
else
|
goto fail;
|
||||||
debugf1("Registered '.../edac/mc' kobject\n");
|
|
||||||
}
|
}
|
||||||
} else
|
|
||||||
debugf1("%s() error=%d\n", __func__, err);
|
|
||||||
|
|
||||||
|
debugf1("Registered '.../edac/mc' kobject\n");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
fail:
|
||||||
|
sysdev_class_unregister(&edac_class);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user