linux/drivers/edac
Borislav Petkov bb31b3122c EDAC: Fix workqueue-related crashes
00740c5854 changed edac_core to
un-/register a workqueue item only if a lowlevel driver supplies a
polling routine. Normally, when we remove a polling low-level driver, we
go and cancel all the queued work. However, the workqueue unreg happens
based on the ->op_state setting, and edac_mc_del_mc() sets this to
OP_OFFLINE _before_ we cancel the work item, leading to NULL ptr oops on
the workqueue list.

Fix it by putting the unreg stuff in proper order.

Cc: <stable@kernel.org> #36.x
Reported-and-tested-by: Tobias Karnat <tobias.karnat@googlemail.com>
LKML-Reference: <1291201307.3029.21.camel@Tobias-Karnat>
Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
2010-12-08 19:52:27 +01:00
..
amd64_edac_dbg.c EDAC, MCE: Rework MCE injection 2010-10-21 14:47:59 +02:00
amd64_edac_inj.c amd64_edac: beef up DRAM error injection 2009-10-07 16:51:28 +02:00
amd64_edac.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp 2010-10-21 14:04:58 -07:00
amd64_edac.h EDAC, MCE: Complete NB MCE decoders 2010-10-21 14:48:02 +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
amd8111_edac.h
amd8131_edac.c
amd8131_edac.h
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 Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-10-24 13:41:39 -07: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 Merge branch 'linux_next' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/i7core 2010-10-26 10:13:48 -07:00
edac_mc.c EDAC: Fix workqueue-related crashes 2010-12-08 19:52:27 +01:00
edac_mce.c i7core_edac: Add edac_mce glue 2010-05-10 11:44:50 -03:00
edac_module.c EDAC: Export edac sysfs class to users. 2010-10-21 14:47:59 +02:00
edac_module.h EDAC: Export edac sysfs class to users. 2010-10-21 14:47:59 +02:00
edac_pci_sysfs.c EDAC: Export edac sysfs class to users. 2010-10-21 14:47:59 +02: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 EDAC: Export edac sysfs class to users. 2010-10-21 14:47:59 +02:00
i7core_edac.c i7core_edac: return -ENODEV when devices were already probed 2010-10-24 11:36:19 -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
i7300_edac.c i7300_edac: Properly initialize per-csrow memory size 2010-09-24 14:16:12 -03:00
i82443bxgx_edac.c Update broken web addresses in the kernel. 2010-10-18 11:03:14 +02: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 Merge branch 'devel' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/edac 2010-10-24 13:06:57 -07:00
Makefile EDAC: Remove deprecated kbuild goal definitions 2010-11-22 15:35:31 +01:00
mce_amd_inj.c EDAC, MCE: Fix edac_init_mce_inject error handling 2010-11-22 15:35:32 +01:00
mce_amd.c EDAC, MCE: Fix shift warning on 32-bit 2010-10-21 14:48:07 +02:00
mce_amd.h EDAC, MCE: Add a BIT_64() macro 2010-10-21 14:48:06 +02: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
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
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