Also use goto labels for all failure paths in edac_create_sysfs_mci_device and
update meaningless labels.

Signed-off-by: Junjie Mao <junjie....@hotmail.com>
---
 drivers/edac/edac_mc_sysfs.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/edac/edac_mc_sysfs.c b/drivers/edac/edac_mc_sysfs.c
index 670d2829c547..8e48d32efe37 100644
--- a/drivers/edac/edac_mc_sysfs.c
+++ b/drivers/edac/edac_mc_sysfs.c
@@ -989,7 +989,7 @@ int edac_create_sysfs_mci_device(struct mem_ctl_info *mci)

        err = bus_register(mci->bus);
        if (err < 0)
-               return err;
+               goto fail_free_name;

        /* get the /sys/devices/system/edac subsys reference */
        mci->dev.type = &mci_attr_type;
@@ -1005,9 +1005,7 @@ int edac_create_sysfs_mci_device(struct mem_ctl_info *mci)
        err = device_add(&mci->dev);
        if (err < 0) {
                edac_dbg(1, "failure: create device %s\n", dev_name(&mci->dev));
-               bus_unregister(mci->bus);
-               kfree(mci->bus->name);
-               return err;
+               goto fail_unregister_bus;
        }

        if (mci->set_sdram_scrub_rate || mci->get_sdram_scrub_rate) {
@@ -1023,7 +1021,7 @@ int edac_create_sysfs_mci_device(struct mem_ctl_info *mci)
                                         &dev_attr_sdram_scrub_rate);
                if (err) {
                        edac_dbg(1, "failure: create sdram_scrub_rate\n");
-                       goto fail2;
+                       goto fail_unregister_dev;
                }
        }
        /*
@@ -1048,14 +1046,14 @@ int edac_create_sysfs_mci_device(struct mem_ctl_info 
*mci)
                err = edac_create_dimm_object(mci, dimm, i);
                if (err) {
                        edac_dbg(1, "failure: create dimm %d obj\n", i);
-                       goto fail;
+                       goto fail_unregister_dimm;
                }
        }

 #ifdef CONFIG_EDAC_LEGACY_SYSFS
        err = edac_create_csrow_objects(mci);
        if (err < 0)
-               goto fail;
+               goto fail_unregister_dimm;
 #endif

 #ifdef CONFIG_EDAC_DEBUG
@@ -1063,16 +1061,18 @@ int edac_create_sysfs_mci_device(struct mem_ctl_info 
*mci)
 #endif
        return 0;

-fail:
+fail_unregister_dimm:
        for (i--; i >= 0; i--) {
                struct dimm_info *dimm = mci->dimms[i];
                if (dimm->nr_pages == 0)
                        continue;
                device_unregister(&dimm->dev);
        }
-fail2:
+fail_unregister_dev:
        device_unregister(&mci->dev);
+fail_unregister_bus:
        bus_unregister(mci->bus);
+fail_free_name:
        kfree(mci->bus->name);
        return err;
 }
--
1.9.3
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to