diff --git a/drivers/s390/char/tape_std.c b/drivers/s390/char/tape_std.c
index cf577a2b13ace9a62231d1720286ec0cdad02d13..3478e19ae194567520c93838b8a1ed2316c8d061 100644
--- a/drivers/s390/char/tape_std.c
+++ b/drivers/s390/char/tape_std.c
@@ -79,6 +79,7 @@ tape_std_assign(struct tape_device *device)
 	rc = tape_do_io_interruptible(device, request);
 
 	del_timer_sync(&timeout);
+	destroy_timer_on_stack(&timeout);
 
 	if (rc != 0) {
 		DBF_EVENT(3, "%08x: assign failed - device might be busy\n",