Merge tag 's390-5.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
[linux-2.6-microblaze.git] / drivers / s390 / block / dasd.c
index 217a7b8..fd56824 100644 (file)
@@ -75,7 +75,6 @@ static int dasd_flush_block_queue(struct dasd_block *);
 static void dasd_device_tasklet(unsigned long);
 static void dasd_block_tasklet(unsigned long);
 static void do_kick_device(struct work_struct *);
-static void do_restore_device(struct work_struct *);
 static void do_reload_device(struct work_struct *);
 static void do_requeue_requests(struct work_struct *);
 static void dasd_return_cqr_cb(struct dasd_ccw_req *, void *);
@@ -138,7 +137,6 @@ struct dasd_device *dasd_alloc_device(void)
        INIT_LIST_HEAD(&device->ccw_queue);
        timer_setup(&device->timer, dasd_device_timeout, 0);
        INIT_WORK(&device->kick_work, do_kick_device);
-       INIT_WORK(&device->restore_device, do_restore_device);
        INIT_WORK(&device->reload_device, do_reload_device);
        INIT_WORK(&device->requeue_requests, do_requeue_requests);
        device->state = DASD_STATE_NEW;
@@ -620,26 +618,6 @@ void dasd_reload_device(struct dasd_device *device)
 }
 EXPORT_SYMBOL(dasd_reload_device);
 
-/*
- * dasd_restore_device will schedule a call do do_restore_device to the kernel
- * event daemon.
- */
-static void do_restore_device(struct work_struct *work)
-{
-       struct dasd_device *device = container_of(work, struct dasd_device,
-                                                 restore_device);
-       device->cdev->drv->restore(device->cdev);
-       dasd_put_device(device);
-}
-
-void dasd_restore_device(struct dasd_device *device)
-{
-       dasd_get_device(device);
-       /* queue call to dasd_restore_device to the kernel event daemon. */
-       if (!schedule_work(&device->restore_device))
-               dasd_put_device(device);
-}
-
 /*
  * Set the target state for a device and starts the state change.
  */
@@ -1514,7 +1492,6 @@ int dasd_start_IO(struct dasd_ccw_req *cqr)
                              "start_IO: -EIO device gone, retry");
                break;
        case -EINVAL:
-               /* most likely caused in power management context */
                DBF_DEV_EVENT(DBF_WARNING, device, "%s",
                              "start_IO: -EINVAL device currently "
                              "not accessible");
@@ -2048,7 +2025,7 @@ static void __dasd_device_check_expire(struct dasd_device *device)
 static int __dasd_device_is_unusable(struct dasd_device *device,
                                     struct dasd_ccw_req *cqr)
 {
-       int mask = ~(DASD_STOPPED_DC_WAIT | DASD_UNRESUMED_PM | DASD_STOPPED_NOSPC);
+       int mask = ~(DASD_STOPPED_DC_WAIT | DASD_STOPPED_NOSPC);
 
        if (test_bit(DASD_FLAG_OFFLINE, &device->flags) &&
            !test_bit(DASD_FLAG_SAFE_OFFLINE_RUNNING, &device->flags)) {
@@ -2112,8 +2089,7 @@ static void __dasd_device_check_path_events(struct dasd_device *device)
        if (!dasd_path_get_tbvpm(device))
                return;
 
-       if (device->stopped &
-           ~(DASD_STOPPED_DC_WAIT | DASD_UNRESUMED_PM))
+       if (device->stopped & ~(DASD_STOPPED_DC_WAIT))
                return;
        rc = device->discipline->verify_path(device,
                                             dasd_path_get_tbvpm(device));
@@ -3794,11 +3770,6 @@ int dasd_generic_path_operational(struct dasd_device *device)
                 "operational\n");
        DBF_DEV_EVENT(DBF_WARNING, device, "%s", "path operational");
        dasd_device_remove_stop_bits(device, DASD_STOPPED_DC_WAIT);
-       if (device->stopped & DASD_UNRESUMED_PM) {
-               dasd_device_remove_stop_bits(device, DASD_UNRESUMED_PM);
-               dasd_restore_device(device);
-               return 1;
-       }
        dasd_schedule_device_bh(device);
        if (device->block) {
                dasd_schedule_block_bh(device->block);
@@ -4058,66 +4029,6 @@ void dasd_schedule_requeue(struct dasd_device *device)
 }
 EXPORT_SYMBOL(dasd_schedule_requeue);
 
-int dasd_generic_pm_freeze(struct ccw_device *cdev)
-{
-       struct dasd_device *device = dasd_device_from_cdev(cdev);
-
-       if (IS_ERR(device))
-               return PTR_ERR(device);
-
-       /* mark device as suspended */
-       set_bit(DASD_FLAG_SUSPENDED, &device->flags);
-
-       if (device->discipline->freeze)
-               device->discipline->freeze(device);
-
-       /* disallow new I/O  */
-       dasd_device_set_stop_bits(device, DASD_STOPPED_PM);
-
-       return dasd_generic_requeue_all_requests(device);
-}
-EXPORT_SYMBOL_GPL(dasd_generic_pm_freeze);
-
-int dasd_generic_restore_device(struct ccw_device *cdev)
-{
-       struct dasd_device *device = dasd_device_from_cdev(cdev);
-       int rc = 0;
-
-       if (IS_ERR(device))
-               return PTR_ERR(device);
-
-       /* allow new IO again */
-       dasd_device_remove_stop_bits(device,
-                                    (DASD_STOPPED_PM | DASD_UNRESUMED_PM));
-
-       dasd_schedule_device_bh(device);
-
-       /*
-        * call discipline restore function
-        * if device is stopped do nothing e.g. for disconnected devices
-        */
-       if (device->discipline->restore && !(device->stopped))
-               rc = device->discipline->restore(device);
-       if (rc || device->stopped)
-               /*
-                * if the resume failed for the DASD we put it in
-                * an UNRESUMED stop state
-                */
-               device->stopped |= DASD_UNRESUMED_PM;
-
-       if (device->block) {
-               dasd_schedule_block_bh(device->block);
-               if (device->block->request_queue)
-                       blk_mq_run_hw_queues(device->block->request_queue,
-                                            true);
-       }
-
-       clear_bit(DASD_FLAG_SUSPENDED, &device->flags);
-       dasd_put_device(device);
-       return 0;
-}
-EXPORT_SYMBOL_GPL(dasd_generic_restore_device);
-
 static struct dasd_ccw_req *dasd_generic_build_rdc(struct dasd_device *device,
                                                   int rdc_buffer_size,
                                                   int magic)