Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6c7b7d2b authored by Jeff Garzik's avatar Jeff Garzik
Browse files

[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: default avatarJeff Garzik <jeff@garzik.org>
parent ddfc87a0
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -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;