summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2014-03-23 15:09:24 +0000
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2014-04-01 09:23:36 +0200
commit02ba8d211d16f3b385147dd50d7198744e9af59c (patch)
treedcd0bdb4418a7164d2426bae79fdd67f83a817b5
parentbd1cb5de140d844f63389bf21b336c194a8c83a1 (diff)
downloadop-kernel-dev-02ba8d211d16f3b385147dd50d7198744e9af59c.zip
op-kernel-dev-02ba8d211d16f3b385147dd50d7198744e9af59c.tar.gz
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>
-rw-r--r--drivers/s390/char/tape_std.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/s390/char/tape_std.c b/drivers/s390/char/tape_std.c
index 981a99f..cf577a2 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)
rc = tape_do_io_interruptible(device, request);
- del_timer(&timeout);
+ del_timer_sync(&timeout);
if (rc != 0) {
DBF_EVENT(3, "%08x: assign failed - device might be busy\n",
OpenPOWER on IntegriCloud