On 06/02/07, Michal Piotrowski <michal.k.k.piotrowski@xxxxxxxxx> wrote:[..]
> I'll revert this patch.
>
> commit 7a0f1c8a4b1052da7efc7715e2e557255b632712
> Author: Lennert Buytenhek <buytenh@xxxxxxxxxxxxxx>
> Date: Mon Jan 29 13:28:47 2007 +0100
>
> ata_if_xfermask() word 51 fix
>
> If word 53 bit 1 isn't set, the maximum PIO mode is indicated by
> the upper 8 bits of word 51, not the lower 8 bits. Fixes PIO mode
> detection on old Compact Flash cards.
>
> Signed-off-by: Lennert Buytenhek <buytenh@xxxxxxxxxxxxxx>
> Signed-off-by: Jeff Garzik <jeff@xxxxxxxxxx>
>
It's not this patch. Maybe this one?
commit 49c8042996c84f0df6c49ea2e28a7ef38cd7d773
Author: Brian King <brking@xxxxxxxxxxxxxxxxxx>
Date: Tue Jan 30 11:32:26 2007 -0600
libata: Initialize nbytes for internal sg commands
Some LLDDs, like ipr, use nbytes and pad_len to determine
the total data transfer length of a command. Make sure
nbytes gets initialized for internally generated commands.
Signed-off-by: Brian King <brking@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Jeff Garzik <jeff@xxxxxxxxxx>
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index cf70702..667acd2 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -1250,6 +1250,7 @@ unsigned ata_exec_internal_sg(struct ata
ata_sg_init(qc, sg, n_elem);
qc->nsect = buflen / ATA_SECT_SIZE;
+ qc->nbytes = buflen;
}
qc->private_data = &wait;
It has something to do with SCSI commands.