Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 77d6e139 authored by Akinobu Mita's avatar Akinobu Mita Committed by Linus Torvalds
Browse files

[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: default avatarDoug Thompson <norsk5@xmission.com>
Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 7011774d
Loading
Loading
Loading
Loading
+27 −18
Original line number Diff line number Diff line
@@ -237,7 +237,11 @@ static int edac_sysfs_memctrl_setup(void)
	/* create the /sys/devices/system/edac directory */
	err = sysdev_class_register(&edac_class);

	if (!err) {
	if (err) {
		debugf1("%s() error=%d\n", __func__, err);
		return err;
	}

	/* Init the MC's kobject */
	memset(&edac_memctrl_kobj, 0, sizeof (edac_memctrl_kobj));
	edac_memctrl_kobj.parent = &edac_class.kset.kobj;
@@ -246,18 +250,23 @@ static int edac_sysfs_memctrl_setup(void)
	/* generate sysfs "..../edac/mc"   */
	err = kobject_set_name(&edac_memctrl_kobj,"mc");

		if (!err) {
	if (err)
		goto fail;

	/* FIXME: maybe new sysdev_create_subdir() */
	err = kobject_register(&edac_memctrl_kobj);

			if (err)
	if (err) {
		debugf1("Failed to register '.../edac/mc'\n");
			else
				debugf1("Registered '.../edac/mc' kobject\n");
		goto fail;
	}
	} else
		debugf1("%s() error=%d\n", __func__, err);

	debugf1("Registered '.../edac/mc' kobject\n");

	return 0;

fail:
	sysdev_class_unregister(&edac_class);
	return err;
}