diff -ruN linux-2.6.0/drivers/ide/ide.c.orig linux-2.6.0/drivers/ide/ide.c --- linux-2.6.0/drivers/ide/ide.c.orig 2003-12-18 10:58:38.000000000 +0800 +++ linux-2.6.0/drivers/ide/ide.c 2003-12-28 10:18:47.000000000 +0800 @@ -2493,6 +2493,11 @@ return 0; } +static void ide_drive_shutdown (struct device * dev) +{ + generic_ide_suspend(dev, 5); +} + int ide_register_driver(ide_driver_t *driver) { struct list_head list; @@ -2519,6 +2524,7 @@ driver->gen_driver.name = (char *) driver->name; driver->gen_driver.bus = &ide_bus_type; driver->gen_driver.remove = ide_drive_remove; + driver->gen_driver.shutdown = ide_drive_shutdown; return driver_register(&driver->gen_driver); }