diff options
Diffstat (limited to 'drivers/ide/ide-taskfile.c')
-rw-r--r-- | drivers/ide/ide-taskfile.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/ide/ide-taskfile.c b/drivers/ide/ide-taskfile.c index a4c2d91179b3..bf4fb9d8d176 100644 --- a/drivers/ide/ide-taskfile.c +++ b/drivers/ide/ide-taskfile.c | |||
@@ -152,7 +152,16 @@ static ide_startstop_t task_no_data_intr(ide_drive_t *drive) | |||
152 | 152 | ||
153 | if (!custom) | 153 | if (!custom) |
154 | ide_end_drive_cmd(drive, stat, ide_read_error(drive)); | 154 | ide_end_drive_cmd(drive, stat, ide_read_error(drive)); |
155 | else if (tf->command == ATA_CMD_SET_MULTI) | 155 | else if (tf->command == ATA_CMD_IDLEIMMEDIATE) { |
156 | hwif->tp_ops->tf_read(drive, task); | ||
157 | if (tf->lbal != 0xc4) { | ||
158 | printk(KERN_ERR "%s: head unload failed!\n", | ||
159 | drive->name); | ||
160 | ide_tf_dump(drive->name, tf); | ||
161 | } else | ||
162 | drive->dev_flags |= IDE_DFLAG_PARKED; | ||
163 | ide_end_drive_cmd(drive, stat, ide_read_error(drive)); | ||
164 | } else if (tf->command == ATA_CMD_SET_MULTI) | ||
156 | drive->mult_count = drive->mult_req; | 165 | drive->mult_count = drive->mult_req; |
157 | 166 | ||
158 | return ide_stopped; | 167 | return ide_stopped; |