INIT_LIST_HEAD(&device->req_queue);
        INIT_LIST_HEAD(&device->node);
        init_waitqueue_head(&device->state_change_wq);
+       init_waitqueue_head(&device->wait_queue);
        device->tape_state = TS_INIT;
        device->medium_state = MS_UNKNOWN;
        *device->modeset_byte = 0;
 int
 tape_do_io(struct tape_device *device, struct tape_request *request)
 {
-       wait_queue_head_t wq;
        int rc;
 
-       init_waitqueue_head(&wq);
        spin_lock_irq(get_ccwdev_lock(device->cdev));
        /* Setup callback */
        request->callback = __tape_wake_up;
-       request->callback_data = &wq;
+       request->callback_data = &device->wait_queue;
        /* Add request to request queue and try to start it. */
        rc = __tape_start_request(device, request);
        spin_unlock_irq(get_ccwdev_lock(device->cdev));
        if (rc)
                return rc;
        /* Request added to the queue. Wait for its completion. */
-       wait_event(wq, (request->callback == NULL));
+       wait_event(device->wait_queue, (request->callback == NULL));
        /* Get rc from request */
        return request->rc;
 }
 tape_do_io_interruptible(struct tape_device *device,
                         struct tape_request *request)
 {
-       wait_queue_head_t wq;
        int rc;
 
-       init_waitqueue_head(&wq);
        spin_lock_irq(get_ccwdev_lock(device->cdev));
        /* Setup callback */
        request->callback = __tape_wake_up_interruptible;
-       request->callback_data = &wq;
+       request->callback_data = &device->wait_queue;
        rc = __tape_start_request(device, request);
        spin_unlock_irq(get_ccwdev_lock(device->cdev));
        if (rc)
                return rc;
        /* Request added to the queue. Wait for its completion. */
-       rc = wait_event_interruptible(wq, (request->callback == NULL));
+       rc = wait_event_interruptible(device->wait_queue,
+                                     (request->callback == NULL));
        if (rc != -ERESTARTSYS)
                /* Request finished normally. */
                return request->rc;
                /* Wait for the interrupt that acknowledges the halt. */
                do {
                        rc = wait_event_interruptible(
-                               wq,
+                               device->wait_queue,
                                (request->callback == NULL)
                        );
                } while (rc == -ERESTARTSYS);