Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6c7b7d2b7615110edbc4ea7816831c13b0250ebb Commit: 6c7b7d2b7615110edbc4ea7816831c13b0250ebb Parent: ddfc87a098a0172ad13ce50edf55d5fe266f1352 Author: Jeff Garzik <[EMAIL PROTECTED]> AuthorDate: Fri May 25 04:39:39 2007 -0400 Committer: Jeff Garzik <[EMAIL PROTECTED]> CommitDate: Fri May 25 04:39:39 2007 -0400
[libata] Fix decoding of 6-byte commands The code for parsing 6-byte SCSI command LBAs missed the top 5 bits (the MSB). Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]> --- drivers/ata/libata-scsi.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c index 242c43e..b3900cf 100644 --- a/drivers/ata/libata-scsi.c +++ b/drivers/ata/libata-scsi.c @@ -1050,14 +1050,15 @@ static unsigned int ata_scsi_flush_xlat(struct ata_queued_cmd *qc) static void scsi_6_lba_len(const u8 *cdb, u64 *plba, u32 *plen) { u64 lba = 0; - u32 len = 0; + u32 len; VPRINTK("six-byte command\n"); + lba |= ((u64)(cdb[1] & 0x1f)) << 16; lba |= ((u64)cdb[2]) << 8; lba |= ((u64)cdb[3]); - len |= ((u32)cdb[4]); + len = cdb[4]; *plba = lba; *plen = len; - To unsubscribe from this list: send the line "unsubscribe git-commits-head" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html