linux/drivers/edac
Borislav Petkov 00740c5854 amd64_edac: Fix driver module removal
f4347553b3 removed the edac polling
mechanism in favor of using a notifier chain for conveying MCE
information to edac. However, the module removal path didn't test
whether the driver had setup the polling function workqueue at all and
the rmmod process was hanging in the kernel at try_to_del_timer_sync()
in the cancel_delayed_work() path, trying to cancel an uninitialized
work struct.

Fix that by adding a balancing check to the workqueue removal path.

Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
2010-09-27 12:52:58 +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 edac, mc: Improve scrub rate handling 2010-08-03 16:14:06 +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, mc: Improve scrub rate handling 2010-08-03 16:14:06 +02:00
edac_mc.c amd64_edac: Fix driver module removal 2010-09-27 12:52:58 +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 drivers/edac: code tidying on export-gpl 2007-07-19 10:04:57 -07:00
i7core_edac.c quiesce EDAC initialisation on desktop/mobile i7 2010-07-26 08:17:44 -07: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