Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

scsi: scsi_trace: Use get_unaligned_be24()

This makes the SCSI tracing code slightly easier to read.

Link: https://lore.kernel.org/r/20200313203102.16613-6-bvanassche@acm.org
Fixes: bf8162354233 ("[SCSI] add scsi trace core functions and put trace points")
Cc: Christoph Hellwig <hch@lst.de>
Cc: James E.J. Bottomley <jejb@linux.ibm.com>
Cc: Martin K. Petersen <martin.petersen@oracle.com>
Reported-by: Colin Ian King <colin.king@canonical.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

authored by

Bart Van Assche and committed by
Martin K. Petersen
3cef5948 35b703db

+2 -4
+2 -4
drivers/scsi/scsi_trace.c
··· 18 18 scsi_trace_rw6(struct trace_seq *p, unsigned char *cdb, int len) 19 19 { 20 20 const char *ret = trace_seq_buffer_ptr(p); 21 - u32 lba = 0, txlen; 21 + u32 lba, txlen; 22 22 23 - lba |= ((cdb[1] & 0x1F) << 16); 24 - lba |= (cdb[2] << 8); 25 - lba |= cdb[3]; 23 + lba = get_unaligned_be24(&cdb[1]) & 0x1fffff; 26 24 /* 27 25 * From SBC-2: a TRANSFER LENGTH field set to zero specifies that 256 28 26 * logical blocks shall be read (READ(6)) or written (WRITE(6)).