static int sdev_blk_runtime_suspend(struct scsi_device *sdev, int (*cb)(struct device *)) { int err; err = blk_pre_runtime_suspend(sdev->request_queue); if (err) return err; if (cb) err = cb(&sdev->sdev_gendev); blk_post_runtime_suspend(sdev->request_queue, err); return err; }
static int sdev_runtime_suspend(struct device *dev) { const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; struct scsi_device *sdev = to_scsi_device(dev); int err = 0; err = blk_pre_runtime_suspend(sdev->request_queue); if (err) return err; if (pm && pm->runtime_suspend) err = pm->runtime_suspend(dev); blk_post_runtime_suspend(sdev->request_queue, err); return err; }