diff options
author | Carsten Emde <C.Emde@osadl.org> | 2011-09-21 10:22:11 +0200 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2011-09-21 10:22:11 +0200 |
commit | 6c4867f6469964e34c5f4ee229a2a7f71a34c7ff (patch) | |
tree | 639fb854b56d746aeb324011372b4c0571fd01ef /mm/internal.h | |
parent | d11bb4462c4cc6ddd45c6927c617ad79fa6fb8fc (diff) |
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>
Diffstat (limited to 'mm/internal.h')
0 files changed, 0 insertions, 0 deletions