diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2014-03-23 11:09:24 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2014-04-01 03:23:36 -0400 |
commit | 02ba8d211d16f3b385147dd50d7198744e9af59c (patch) | |
tree | dcd0bdb4418a7164d2426bae79fdd67f83a817b5 /drivers/s390 | |
parent | bd1cb5de140d844f63389bf21b336c194a8c83a1 (diff) |
s390/tape: Use del_timer_sync()
del_timer() does not wait for a possible running callback to
complete. So the call side might free request and the associated
objects while on another cpu the timer handler runs.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390')
-rw-r--r-- | drivers/s390/char/tape_std.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/s390/char/tape_std.c b/drivers/s390/char/tape_std.c index 981a99fd8d42..cf577a2b13ac 100644 --- a/drivers/s390/char/tape_std.c +++ b/drivers/s390/char/tape_std.c | |||
@@ -78,7 +78,7 @@ tape_std_assign(struct tape_device *device) | |||
78 | 78 | ||
79 | rc = tape_do_io_interruptible(device, request); | 79 | rc = tape_do_io_interruptible(device, request); |
80 | 80 | ||
81 | del_timer(&timeout); | 81 | del_timer_sync(&timeout); |
82 | 82 | ||
83 | if (rc != 0) { | 83 | if (rc != 0) { |
84 | DBF_EVENT(3, "%08x: assign failed - device might be busy\n", | 84 | DBF_EVENT(3, "%08x: assign failed - device might be busy\n", |