scsi: mpt3sas: Fix _ctl_set_task_mid() TaskMID check
The TaskMID field of struct Mpi2SCSITaskManagementRequest_t is a 16-bit little endian value. Fix the search loop in _ctl_set_task_mid() to add a cpu_to_le16() conversion before checking the value of TaskMID to avoid sparse warnings. While at it, simplify the search loop code to remove an unnecessarily complicated if condition. Link: https://lore.kernel.org/r/20220307234854.148145-2-damien.lemoal@opensource.wdc.com Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
ad14649fc5
commit
dceaef94a4
@ -578,7 +578,7 @@ static int
|
||||
_ctl_set_task_mid(struct MPT3SAS_ADAPTER *ioc, struct mpt3_ioctl_command *karg,
|
||||
Mpi2SCSITaskManagementRequest_t *tm_request)
|
||||
{
|
||||
u8 found = 0;
|
||||
bool found = false;
|
||||
u16 smid;
|
||||
u16 handle;
|
||||
struct scsi_cmnd *scmd;
|
||||
@ -600,6 +600,7 @@ _ctl_set_task_mid(struct MPT3SAS_ADAPTER *ioc, struct mpt3_ioctl_command *karg,
|
||||
handle = le16_to_cpu(tm_request->DevHandle);
|
||||
for (smid = ioc->scsiio_depth; smid && !found; smid--) {
|
||||
struct scsiio_tracker *st;
|
||||
__le16 task_mid;
|
||||
|
||||
scmd = mpt3sas_scsih_scsi_lookup_get(ioc, smid);
|
||||
if (!scmd)
|
||||
@ -618,10 +619,10 @@ _ctl_set_task_mid(struct MPT3SAS_ADAPTER *ioc, struct mpt3_ioctl_command *karg,
|
||||
* first outstanding smid will be picked up. Otherwise,
|
||||
* targeted smid will be the one.
|
||||
*/
|
||||
if (!tm_request->TaskMID || tm_request->TaskMID == st->smid) {
|
||||
tm_request->TaskMID = cpu_to_le16(st->smid);
|
||||
found = 1;
|
||||
}
|
||||
task_mid = cpu_to_le16(st->smid);
|
||||
if (!tm_request->TaskMID)
|
||||
tm_request->TaskMID = task_mid;
|
||||
found = tm_request->TaskMID == task_mid;
|
||||
}
|
||||
|
||||
if (!found) {
|
||||
|
Loading…
Reference in New Issue
Block a user