linux/drivers/block
Carsten Emde 6c4867f646 floppy: use del_timer_sync() in init cleanup
When no floppy is found the module code can be released while a timer
function is pending or about to be executed.

CPU0                                  CPU1
				      floppy_init()
timer_softirq()
   spin_lock_irq(&base->lock);
   detach_timer();
   spin_unlock_irq(&base->lock);
   -> Interrupt
					del_timer();
				        return -ENODEV;
                                      module_cleanup();
   <- EOI
   call_timer_fn();
   OOPS

Use del_timer_sync() to prevent this.

Signed-off-by: Carsten Emde <C.Emde@osadl.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2011-09-21 10:22:11 +02:00
..
aoe
drbd drivers/block/drbd/drbd_nl.c: use bitmap_parse instead of __bitmap_parse 2011-08-02 12:43:49 +02:00
paride
xen-blkback Merge branch 'stable/for-jens' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen into for-linus 2011-08-23 15:09:13 +02:00
amiflop.c
ataflop.c
brd.c
cciss.c
cciss.h
cciss_cmd.h
cciss_scsi.c atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
cciss_scsi.h
cpqarray.c
cpqarray.h
cryptoloop.c
DAC960.c
DAC960.h
floppy.c floppy: use del_timer_sync() in init cleanup 2011-09-21 10:22:11 +02:00
hd.c
ida_cmd.h
ida_ioctl.h
Kconfig Merge branch 'stable/for-jens' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen into for-linus 2011-08-09 20:43:26 +02:00
loop.c loop: fix deadlock when sysfs and LOOP_CLR_FD race against each other 2011-07-31 22:21:35 +02:00
Makefile
mg_disk.c
nbd.c
osdblk.c
pktcdvd.c
ps3disk.c
ps3vram.c
rbd.c rbd: set blk_queue request sizes to object size 2011-07-26 11:29:35 -07:00
rbd_types.h
smart1,2.h
sunvdc.c
swim.c
swim3.c block: swim3: fix unterminated of_device_id table 2011-08-03 15:02:55 +02:00
swim_asm.S
sx8.c
ub.c
umem.c
umem.h
viodasd.c
virtio_blk.c
xd.c
xd.h
xen-blkfront.c
xsysace.c
z2ram.c