浏览代码

Resume from RAM on HPC nx6325 broken

generic_ide_resume() should check if dev->driver is not NULL before applying
to_ide_driver() to it.  Fix that.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Rafael J. Wysocki 18 年之前
父节点
当前提交
ce9b2b0abb
共有 1 个文件被更改,包括 6 次插入3 次删除
  1. 6 3
      drivers/ide/ide.c

+ 6 - 3
drivers/ide/ide.c

@@ -1010,7 +1010,6 @@ static int generic_ide_resume(struct device *dev)
 {
 {
 	ide_drive_t *drive = dev->driver_data;
 	ide_drive_t *drive = dev->driver_data;
 	ide_hwif_t *hwif = HWIF(drive);
 	ide_hwif_t *hwif = HWIF(drive);
-	ide_driver_t *drv = to_ide_driver(dev->driver);
 	struct request rq;
 	struct request rq;
 	struct request_pm_state rqpm;
 	struct request_pm_state rqpm;
 	ide_task_t args;
 	ide_task_t args;
@@ -1033,8 +1032,12 @@ static int generic_ide_resume(struct device *dev)
 
 
 	err = ide_do_drive_cmd(drive, &rq, ide_head_wait);
 	err = ide_do_drive_cmd(drive, &rq, ide_head_wait);
 
 
-	if (err == 0 && drv && drv->resume)
-		drv->resume(drive);
+	if (err == 0 && dev->driver) {
+		ide_driver_t *drv = to_ide_driver(dev->driver);
+
+		if (drv->resume)
+			drv->resume(drive);
+	}
 
 
 	return err;
 	return err;
 }
 }