Resume from RAM on HPC nx6325 broken
authorRafael J. Wysocki <rjw@sisk.pl>
Sat, 16 Jun 2007 00:24:43 +0000 (02:24 +0200)
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Sat, 16 Jun 2007 00:24:43 +0000 (02:24 +0200)
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>
drivers/ide/ide.c

index 0af0d16..0cd76bf 100644 (file)
@@ -1010,7 +1010,6 @@ static int generic_ide_resume(struct device *dev)
 {
        ide_drive_t *drive = dev->driver_data;
        ide_hwif_t *hwif = HWIF(drive);
-       ide_driver_t *drv = to_ide_driver(dev->driver);
        struct request rq;
        struct request_pm_state rqpm;
        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);
 
-       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;
 }