From: Thomas Gleixner Date: Sun, 23 Mar 2014 15:09:24 +0000 (+0000) Subject: s390/tape: Use del_timer_sync() X-Git-Tag: firefly_0821_release~176^2~4104^2~9 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=02ba8d211d16f3b385147dd50d7198744e9af59c;p=firefly-linux-kernel-4.4.55.git 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 Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky --- 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) 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",