scsi: ufs: core: Warn if the request tag is truncated
authorBart Van Assche <bvanassche@acm.org>
Wed, 15 Nov 2023 19:33:47 +0000 (11:33 -0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Sat, 25 Nov 2023 00:23:48 +0000 (19:23 -0500)
ufshcd_prepare_utp_scsi_cmd_upiu() only uses the lowest eight bits of
lrbp->task_tag. Issue a runtime warning if this results in truncation.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Link: https://lore.kernel.org/r/20231115193359.2262044-1-bvanassche@acm.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/ufs/core/ufshcd.c

index 63f0ee117399127b5bae95243bf94f60bf5ee1f5..f0b837cb0c2b9ed1f058c72386801cb7fbb163f9 100644 (file)
@@ -2720,6 +2720,8 @@ void ufshcd_prepare_utp_scsi_cmd_upiu(struct ufshcd_lrb *lrbp, u8 upiu_flags)
                .command_set_type = UPIU_COMMAND_SET_TYPE_SCSI,
        };
 
+       WARN_ON_ONCE(ucd_req_ptr->header.task_tag != lrbp->task_tag);
+
        ucd_req_ptr->sc.exp_data_transfer_len = cpu_to_be32(cmd->sdb.length);
 
        cdb_len = min_t(unsigned short, cmd->cmd_len, UFS_CDB_SIZE);