summaryrefslogtreecommitdiffstats
path: root/drivers/s390/char/tape_std.c
diff options
context:
space:
mode:
authorIngo Molnar2017-11-14 07:21:44 +0100
committerIngo Molnar2017-11-14 07:21:44 +0100
commit050ab10a645097e47c01cfab3ccf24167e9b266b (patch)
tree686b17c63933f187305a87fba696415dccd032ae /drivers/s390/char/tape_std.c
parentobjtool: Fix cross-build (diff)
parentx86 / CPU: Avoid unnecessary IPIs in arch_freq_get_on_cpu() (diff)
downloadkernel-qcow2-linux-050ab10a645097e47c01cfab3ccf24167e9b266b.tar.gz
kernel-qcow2-linux-050ab10a645097e47c01cfab3ccf24167e9b266b.tar.xz
kernel-qcow2-linux-050ab10a645097e47c01cfab3ccf24167e9b266b.zip
Merge branch 'linus' into core/objtool, to pick up dependent commits
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'drivers/s390/char/tape_std.c')
-rw-r--r--drivers/s390/char/tape_std.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/drivers/s390/char/tape_std.c b/drivers/s390/char/tape_std.c
index 7caba0cc8b2a..1f5fab617b67 100644
--- a/drivers/s390/char/tape_std.c
+++ b/drivers/s390/char/tape_std.c
@@ -33,14 +33,12 @@
* tape_std_assign
*/
static void
-tape_std_assign_timeout(unsigned long data)
+tape_std_assign_timeout(struct timer_list *t)
{
- struct tape_request * request;
- struct tape_device * device;
+ struct tape_request * request = from_timer(request, t, timer);
+ struct tape_device * device = request->device;
int rc;
- request = (struct tape_request *) data;
- device = request->device;
BUG_ON(!device);
DBF_EVENT(3, "%08x: Assignment timeout. Device busy.\n",
@@ -71,16 +69,12 @@ tape_std_assign(struct tape_device *device)
* to another host (actually this shouldn't happen but it does).
* So we set up a timeout for this call.
*/
- init_timer_on_stack(&timeout);
- timeout.function = tape_std_assign_timeout;
- timeout.data = (unsigned long) request;
- timeout.expires = jiffies + 2 * HZ;
- add_timer(&timeout);
+ timer_setup(&request->timer, tape_std_assign_timeout, 0);
+ mod_timer(&timeout, jiffies + 2 * HZ);
rc = tape_do_io_interruptible(device, request);
- del_timer_sync(&timeout);
- destroy_timer_on_stack(&timeout);
+ del_timer_sync(&request->timer);
if (rc != 0) {
DBF_EVENT(3, "%08x: assign failed - device might be busy\n",