linux/drivers/edac
Mauro Carvalho Chehab ac99768c53 edac_core: Don't let free(mci) happen while using it
A very nasty bug were happening on edac core, due to the way mci objects are
freed. mci memory is freed when kobject count reaches zero, by
edac_mci_control_release(). However, from the logs, this is clearly happening
before the final usage of mci struct:

[15799.607454] EDAC DEBUG: in drivers/edac/edac_mc_sysfs.c, line at 640: edac_mci_control_release() mci instance idx=0 releasing
[15799.618773] EDAC DEBUG: in drivers/edac/edac_mc_sysfs.c, line at 769: edac_inst_grp_release()
[15799.627326] EDAC DEBUG: in drivers/edac/edac_mc_sysfs.c, line at 894: edac_remove_mci_instance_attributes() end of seeking for group all_channel_counts
[15799.640887] EDAC DEBUG: in drivers/edac/edac_mc_sysfs.c, line at 877: edac_remove_mci_instance_attributes() sysfs_attrib = ffffffffa01d7240
[15799.653412] EDAC DEBUG: in drivers/edac/edac_mc_sysfs.c, line at 1020: edac_remove_sysfs_mci_device()  remove_link
[15799.663753] EDAC DEBUG: in drivers/edac/edac_mc_sysfs.c, line at 1024: edac_remove_sysfs_mci_device()  remove_mci_instance

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-10-24 11:20:37 -02:00
..
amd64_edac_dbg.c x86, mce: pass mce info to EDAC for decoding 2009-09-14 18:59:17 +02:00
amd64_edac_inj.c amd64_edac: beef up DRAM error injection 2009-10-07 16:51:28 +02:00
amd64_edac.c amd64_edac: Do not report error overflow as a separate error 2010-08-26 12:46:03 +02:00
amd64_edac.h amd64_edac: Remove unneeded defines 2010-08-03 16:14:01 +02:00
amd76x_edac.c PCI: fix typos pci_device_dis/enable to pci_dis/enable_device in comments 2010-05-18 14:59:08 -07:00
amd8111_edac.c edac: add edac_device_alloc_index() 2009-06-18 13:03:56 -07:00
amd8111_edac.h edac: AMD8111 driver header file 2009-04-02 19:05:03 -07:00
amd8131_edac.c edac: AMD8111 & AMD8131 use dev_name() 2009-05-29 08:40:03 -07:00
amd8131_edac.h edac: AMD8131 driver header file 2009-04-02 19:05:03 -07:00
cell_edac.c edac: add missing __devexit_p() 2009-06-18 13:03:57 -07:00
cpc925_edac.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
e7xxx_edac.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
e752x_edac.c edac, mc: Improve scrub rate handling 2010-08-03 16:14:06 +02:00
edac_core.h i7core_edac: move #if PAGE_SHIFT to edac_core.h 2010-10-24 11:20:36 -02:00
edac_device_sysfs.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
edac_device.c edac: core: remove completion-wait for complete with rcu_barrier 2009-09-24 07:21:05 -07:00
edac_mc_sysfs.c edac_core: Don't let free(mci) happen while using it 2010-10-24 11:20:37 -02:00
edac_mc.c edac_core: Do a better job with node removal 2010-10-24 11:20:37 -02:00
edac_mce_amd.c amd64_edac: Do not report error overflow as a separate error 2010-08-26 12:46:03 +02:00
edac_mce_amd.h EDAC, AMD: carve out MCi_STATUS decoding 2009-09-14 19:01:07 +02:00
edac_mce.c i7core_edac: Add edac_mce glue 2010-05-10 11:44:50 -03:00
edac_module.c Driver core: change sysdev classes to use dynamic kobject names 2008-01-24 20:40:40 -08:00
edac_module.h edac: remove unneeded functions and add static accessor 2008-04-29 08:06:26 -07:00
edac_pci_sysfs.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
edac_pci.c edac: core: remove completion-wait for complete with rcu_barrier 2009-09-24 07:21:05 -07:00
edac_stub.c
i7core_edac.c i7core_edac: explicitly remove PCI devices from the devices list 2010-10-24 11:20:37 -02:00
i3000_edac.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
i3200_edac.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
i5000_edac.c edac: i5000: improve handling of pci_enable_device() return value 2010-08-11 08:59:21 -07:00
i5100_edac.c edac, mc: Improve scrub rate handling 2010-08-03 16:14:06 +02:00
i5400_edac.c edac: i5400: improve handling of pci_enable_device() return value 2010-08-11 08:59:21 -07:00
i82443bxgx_edac.c drivers/edac: convert logging messages direct uses of __FILE__ to %s, __FILE 2010-05-27 09:12:52 -07:00
i82860_edac.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
i82875p_edac.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
i82975x_edac.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
Kconfig edac: Remove EDAC_DEBUG_VERBOSE 2010-08-03 16:14:00 +02:00
Makefile edac_mce: Add an interface driver to report mce errors via edac 2010-05-10 11:44:49 -03:00
mpc85xx_edac.c Merge branch 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6 2010-08-12 09:11:31 -07:00
mpc85xx_edac.h edac: mpc85xx mask ecc syndrome correctly 2010-03-12 15:52:40 -08:00
mv64x60_edac.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
mv64x60_edac.h drivers-edac: add marvell mv64x60 driver 2008-02-07 08:42:23 -08:00
pasemi_edac.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
ppc4xx_edac.c of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
ppc4xx_edac.h edac: new ppc4xx driver module 2009-04-02 19:05:03 -07:00
r82600_edac.c PCI: fix typos pci_device_dis/enable to pci_dis/enable_device in comments 2010-05-18 14:59:08 -07:00
x38_edac.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00