diff options
Diffstat (limited to 'drivers/ide/ide-io.c')
-rw-r--r-- | drivers/ide/ide-io.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c index 11b602bb5741..623f6c246cf5 100644 --- a/drivers/ide/ide-io.c +++ b/drivers/ide/ide-io.c | |||
@@ -383,7 +383,7 @@ static ide_startstop_t ide_ata_error(ide_drive_t *drive, struct request *rq, u8 | |||
383 | } else if (stat & ATA_ERR) { | 383 | } else if (stat & ATA_ERR) { |
384 | /* err has different meaning on cdrom and tape */ | 384 | /* err has different meaning on cdrom and tape */ |
385 | if (err == ATA_ABORTED) { | 385 | if (err == ATA_ABORTED) { |
386 | if (drive->select.b.lba && | 386 | if ((drive->dev_flags & IDE_DFLAG_LBA) && |
387 | /* some newer drives don't support ATA_CMD_INIT_DEV_PARAMS */ | 387 | /* some newer drives don't support ATA_CMD_INIT_DEV_PARAMS */ |
388 | hwif->tp_ops->read_status(hwif) == ATA_CMD_INIT_DEV_PARAMS) | 388 | hwif->tp_ops->read_status(hwif) == ATA_CMD_INIT_DEV_PARAMS) |
389 | return ide_stopped; | 389 | return ide_stopped; |
@@ -513,7 +513,7 @@ static void ide_tf_set_specify_cmd(ide_drive_t *drive, struct ide_taskfile *tf) | |||
513 | tf->lbal = drive->sect; | 513 | tf->lbal = drive->sect; |
514 | tf->lbam = drive->cyl; | 514 | tf->lbam = drive->cyl; |
515 | tf->lbah = drive->cyl >> 8; | 515 | tf->lbah = drive->cyl >> 8; |
516 | tf->device = ((drive->head - 1) | drive->select.all) & ~ATA_LBA; | 516 | tf->device = (drive->head - 1) | drive->select.all; |
517 | tf->command = ATA_CMD_INIT_DEV_PARAMS; | 517 | tf->command = ATA_CMD_INIT_DEV_PARAMS; |
518 | } | 518 | } |
519 | 519 | ||