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; |
