Due to a typo in ide_start_power_step, the result of a function rather than its pointer is assigned to args->handler. The patch applies to 2.6.19-rc6 but the problem exists in the stable branch as well. Signed-off-by: Elias Oltmanns <eo@xxxxxxxxxxxxxx> ---
diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c index 2614f41..48a249d 100644 --- a/drivers/ide/ide-io.c +++ b/drivers/ide/ide-io.c @@ -213,7 +213,7 @@ static ide_startstop_t ide_start_power_s case idedisk_pm_idle: /* Resume step 2 (idle) */ args->tfRegister[IDE_COMMAND_OFFSET] = WIN_IDLEIMMEDIATE; args->command_type = IDE_DRIVE_TASK_NO_DATA; - args->handler = task_no_data_intr; + args->handler = &task_no_data_intr; return do_rw_taskfile(drive, args); case ide_pm_restore_dma: /* Resume step 3 (restore DMA) */