diff options
-rw-r--r-- | drivers/scsi/scsi_pm.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/drivers/scsi/scsi_pm.c b/drivers/scsi/scsi_pm.c index 9e43ae1d2163..e4b799837948 100644 --- a/drivers/scsi/scsi_pm.c +++ b/drivers/scsi/scsi_pm.c | |||
@@ -217,15 +217,15 @@ static int sdev_runtime_suspend(struct device *dev) | |||
217 | { | 217 | { |
218 | const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; | 218 | const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; |
219 | struct scsi_device *sdev = to_scsi_device(dev); | 219 | struct scsi_device *sdev = to_scsi_device(dev); |
220 | int err; | 220 | int err = 0; |
221 | 221 | ||
222 | err = blk_pre_runtime_suspend(sdev->request_queue); | 222 | if (pm && pm->runtime_suspend) { |
223 | if (err) | 223 | err = blk_pre_runtime_suspend(sdev->request_queue); |
224 | return err; | 224 | if (err) |
225 | if (pm && pm->runtime_suspend) | 225 | return err; |
226 | err = pm->runtime_suspend(dev); | 226 | err = pm->runtime_suspend(dev); |
227 | blk_post_runtime_suspend(sdev->request_queue, err); | 227 | blk_post_runtime_suspend(sdev->request_queue, err); |
228 | 228 | } | |
229 | return err; | 229 | return err; |
230 | } | 230 | } |
231 | 231 | ||
@@ -248,11 +248,11 @@ static int sdev_runtime_resume(struct device *dev) | |||
248 | const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; | 248 | const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; |
249 | int err = 0; | 249 | int err = 0; |
250 | 250 | ||
251 | blk_pre_runtime_resume(sdev->request_queue); | 251 | if (pm && pm->runtime_resume) { |
252 | if (pm && pm->runtime_resume) | 252 | blk_pre_runtime_resume(sdev->request_queue); |
253 | err = pm->runtime_resume(dev); | 253 | err = pm->runtime_resume(dev); |
254 | blk_post_runtime_resume(sdev->request_queue, err); | 254 | blk_post_runtime_resume(sdev->request_queue, err); |
255 | 255 | } | |
256 | return err; | 256 | return err; |
257 | } | 257 | } |
258 | 258 | ||