Fix reported task file values in sense data ata_tf_read was setting HOB bit when lba48 command was submitted, but was not clearing it before reading "normal" data. Maybe it would be better to just clear HOB bit immediately after reading upper halves for lba48 command, but I just decided to clear HOB bit in each ata_tf_read... Signed-off-by: Petr Vandrovec --- commit de1eff411670a3e5dfadcc281754cb26035779fa tree 5fbcc8f667a34aa9688ce3aa19b9c92944a12862 parent c2e8a9b937eb84d1b712874f458790d2df25641a author Petr Vandrovec Sat, 14 Jul 2007 05:11:03 -0700 committer root Sat, 14 Jul 2007 05:11:03 -0700 drivers/ata/libata-sff.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c index a74afea..507ab69 100644 --- a/drivers/ata/libata-sff.c +++ b/drivers/ata/libata-sff.c @@ -196,6 +196,7 @@ void ata_tf_read(struct ata_port *ap, struct ata_taskfile *tf) { struct ata_ioports *ioaddr = &ap->ioaddr; + iowrite8(tf->ctl, ioaddr->ctl_addr); tf->command = ata_check_status(ap); tf->feature = ioread8(ioaddr->error_addr); tf->nsect = ioread8(ioaddr->nsect_addr);