summaryrefslogtreecommitdiffstats
path: root/drivers/edac
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2010-08-16 23:22:43 +0200
committerMauro Carvalho Chehab <mchehab@redhat.com>2010-10-24 15:20:38 +0200
commitbbc560ae677c0f4d7ff8404a21409c99f35b297b (patch)
tree7aaa24b51bfc57ec11c823bff43a081359358a1e /drivers/edac
parentedac_core: Don't let free(mci) happen while using it (diff)
downloadlinux-bbc560ae677c0f4d7ff8404a21409c99f35b297b.tar.xz
linux-bbc560ae677c0f4d7ff8404a21409c99f35b297b.zip
edac_core: Print debug messages at release calls
This is important to track a nasty bug at the free logic. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/edac')
-rw-r--r--drivers/edac/edac_mc.c2
-rw-r--r--drivers/edac/edac_mc_sysfs.c2
-rw-r--r--drivers/edac/i7core_edac.c1
3 files changed, 5 insertions, 0 deletions
diff --git a/drivers/edac/edac_mc.c b/drivers/edac/edac_mc.c
index b10b45cc7870..889ce7566b56 100644
--- a/drivers/edac/edac_mc.c
+++ b/drivers/edac/edac_mc.c
@@ -235,6 +235,8 @@ EXPORT_SYMBOL_GPL(edac_mc_alloc);
*/
void edac_mc_free(struct mem_ctl_info *mci)
{
+ debugf1("%s()\n", __func__);
+
edac_mc_unregister_sysfs_main_kobj(mci);
}
EXPORT_SYMBOL_GPL(edac_mc_free);
diff --git a/drivers/edac/edac_mc_sysfs.c b/drivers/edac/edac_mc_sysfs.c
index 7024b873a3b9..ddd765253630 100644
--- a/drivers/edac/edac_mc_sysfs.c
+++ b/drivers/edac/edac_mc_sysfs.c
@@ -712,6 +712,8 @@ fail_out:
*/
void edac_mc_unregister_sysfs_main_kobj(struct mem_ctl_info *mci)
{
+ debugf1("%s()\n", __func__);
+
/* delete the kobj from the mc_kset */
kobject_put(&mci->edac_mci_kobj);
}
diff --git a/drivers/edac/i7core_edac.c b/drivers/edac/i7core_edac.c
index 11c61b4d8149..b0559973c66f 100644
--- a/drivers/edac/i7core_edac.c
+++ b/drivers/edac/i7core_edac.c
@@ -2086,6 +2086,7 @@ static void __devexit i7core_remove(struct pci_dev *pdev)
edac_mc_del_mc(&i7core_dev->pdev[0]->dev);
/* Free data */
+ debugf1("%s: free structs\n");
kfree(mci->ctl_name);
edac_mc_free(mci);