Otherwise, a NMI may happen causing a race condition and a panic.
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
debugf0("MC: " __FILE__ ": %s(): mci = %p, dev = %p\n",
__func__, mci, &i7core_dev->pdev[0]->dev);
debugf0("MC: " __FILE__ ": %s(): mci = %p, dev = %p\n",
__func__, mci, &i7core_dev->pdev[0]->dev);
+ /* Disable MCE NMI handler */
+ edac_mce_unregister(&pvt->edac_mce);
+
+ /* Disable EDAC polling */
if (likely(pvt->i7core_pci))
edac_pci_release_generic_ctl(pvt->i7core_pci);
else
if (likely(pvt->i7core_pci))
edac_pci_release_generic_ctl(pvt->i7core_pci);
else
i7core_dev->socket);
pvt->i7core_pci = NULL;
i7core_dev->socket);
pvt->i7core_pci = NULL;
+ /* Remove MC sysfs nodes */
edac_mc_del_mc(&i7core_dev->pdev[0]->dev);
edac_mc_del_mc(&i7core_dev->pdev[0]->dev);
- edac_mce_unregister(&pvt->edac_mce);
kfree(mci->ctl_name);
edac_mc_free(mci);
kfree(mci->ctl_name);
edac_mc_free(mci);
+
+ /* Release PCI resources */
i7core_put_devices(i7core_dev);
}
}
i7core_put_devices(i7core_dev);
}
}