From dae21c947023466b65b1b127ecc21e97f7afec02 Mon Sep 17 00:00:00 2001 From: Bartlomiej Zolnierkiewicz Date: Fri, 25 Jan 2008 22:17:10 +0100 Subject: [PATCH] --- yaml --- r: 76229 b: refs/heads/master c: 868e672ac8db650dde695a5707a6caf5a757e7d9 h: refs/heads/master i: 76227: faf52e46b1ddcdeaea88de5d1a58d5015d66f9c9 v: v3 --- [refs] | 2 +- trunk/drivers/ide/ide-io.c | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index b4c9df7a0123..a89ff58ef97d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 807e35d695690011faa1ce3ad67dfc23c1e39bdc +refs/heads/master: 868e672ac8db650dde695a5707a6caf5a757e7d9 diff --git a/trunk/drivers/ide/ide-io.c b/trunk/drivers/ide/ide-io.c index 9ffab8c71e75..859cf7f4133f 100644 --- a/trunk/drivers/ide/ide-io.c +++ b/trunk/drivers/ide/ide-io.c @@ -374,7 +374,7 @@ void ide_end_drive_cmd (ide_drive_t *drive, u8 stat, u8 err) tf->device = hwif->INB(IDE_SELECT_REG); tf->status = stat; - if (drive->addressing == 1) { + if (args->tf_flags & IDE_TFLAG_LBA48) { hwif->OUTB(drive->ctl|0x80, IDE_CONTROL_REG); tf->hob_feature = hwif->INB(IDE_FEATURE_REG); tf->hob_nsect = hwif->INB(IDE_NSECTOR_REG); @@ -872,13 +872,15 @@ static ide_startstop_t execute_drive_cmd (ide_drive_t *drive, } task->tf_flags |= IDE_TFLAG_OUT_DEVICE; + if (drive->addressing == 1) + task->tf_flags |= IDE_TFLAG_LBA48; if (task->tf_flags & IDE_TFLAG_FLAGGED) return flagged_taskfile(drive, task); task->tf_flags |= IDE_TFLAG_OUT_TF; - if (drive->addressing == 1) - task->tf_flags |= (IDE_TFLAG_LBA48 | IDE_TFLAG_OUT_HOB); + if (task->tf_flags & IDE_TFLAG_LBA48) + task->tf_flags |= IDE_TFLAG_OUT_HOB; return do_rw_taskfile(drive, task); }