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

Commit 028a7b6d authored by Dave Peterson's avatar Dave Peterson Committed by Linus Torvalds
Browse files

[PATCH] EDAC: edac_mc_add_mc fix [2/2]



This is part 2 of a 2-part patch set.

Fix edac_mc_add_mc() so it cleans up properly if call to
edac_create_sysfs_mci_device() fails.

Signed-off-by: default avatarDavid S. Peterson <dsp@llnl.gov>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent a1d03fcc
Loading
Loading
Loading
Loading
+9 −8
Original line number Diff line number Diff line
@@ -1484,8 +1484,6 @@ EXPORT_SYMBOL(edac_mc_add_mc);
/* FIXME - should a warning be printed if no error detection? correction? */
int edac_mc_add_mc(struct mem_ctl_info *mci)
{
	int rc = 1;

	debugf0("%s()\n", __func__);
#ifdef CONFIG_EDAC_DEBUG
	if (edac_debug_level >= 3)
@@ -1505,7 +1503,7 @@ int edac_mc_add_mc(struct mem_ctl_info *mci)
	down(&mem_ctls_mutex);

	if (add_mc_to_global_list(mci))
		goto finish;
		goto fail0;

	/* set load time so that error rate can be tracked */
	mci->start_time = jiffies;
@@ -1513,19 +1511,22 @@ int edac_mc_add_mc(struct mem_ctl_info *mci)
        if (edac_create_sysfs_mci_device(mci)) {
                edac_mc_printk(mci, KERN_WARNING,
			"failed to create sysfs device\n");
		/* FIXME - should there be an error code and unwind? */
                goto finish;
                goto fail1;
        }

	/* Report action taken */
	edac_mc_printk(mci, KERN_INFO, "Giving out device to %s %s: PCI %s\n",
		mci->mod_name, mci->ctl_name, pci_name(mci->pdev));

	rc = 0;
	up(&mem_ctls_mutex);
	return 0;

finish:
fail1:
	del_mc_from_global_list(mci);

fail0:
	up(&mem_ctls_mutex);
	return rc;
	return 1;
}