Message ID | 20210106203721.1054693-1-tyreld@linux.ibm.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | ibmvfc: fix missing cast of ibmvfc_event pointer to u64 handle | expand |
On Wed, 6 Jan 2021 14:37:21 -0600, Tyrel Datwyler wrote: > Commit 2aa0102c6688 ("scsi: ibmvfc: Use correlation token to tag > commands") sets the vfcFrame correlation token to the pointer handle of > the associated ibmvfc_event. However, that commit failed to cast the > pointer to an appropriate type which in this case is a u64. As such > sparse warnings are generated for both correlation token assignments. > > ibmvfc.c:2375:36: sparse: incorrect type in argument 1 (different base types) > ibmvfc.c:2375:36: sparse: expected unsigned long long [usertype] val > ibmvfc.c:2375:36: sparse: got struct ibmvfc_event *[assigned] evt > > [...] Applied to 5.11/scsi-fixes, thanks! [1/1] ibmvfc: fix missing cast of ibmvfc_event pointer to u64 handle https://git.kernel.org/mkp/scsi/c/901d01c8e50c
diff --git a/drivers/scsi/ibmvscsi/ibmvfc.c b/drivers/scsi/ibmvscsi/ibmvfc.c index 42e4d35e0d35..7312f31df878 100644 --- a/drivers/scsi/ibmvscsi/ibmvfc.c +++ b/drivers/scsi/ibmvscsi/ibmvfc.c @@ -1744,7 +1744,7 @@ static int ibmvfc_queuecommand_lck(struct scsi_cmnd *cmnd, iu->pri_task_attr = IBMVFC_SIMPLE_TASK; } - vfc_cmd->correlation = cpu_to_be64(evt); + vfc_cmd->correlation = cpu_to_be64((u64)evt); if (likely(!(rc = ibmvfc_map_sg_data(cmnd, evt, vfc_cmd, vhost->dev)))) return ibmvfc_send_event(evt, vhost, 0); @@ -2418,7 +2418,7 @@ static int ibmvfc_abort_task_set(struct scsi_device *sdev) tmf->flags = cpu_to_be16((IBMVFC_NO_MEM_DESC | IBMVFC_TMF)); evt->sync_iu = &rsp_iu; - tmf->correlation = cpu_to_be64(evt); + tmf->correlation = cpu_to_be64((u64)evt); init_completion(&evt->comp); rsp_rc = ibmvfc_send_event(evt, vhost, default_timeout);
Commit 2aa0102c6688 ("scsi: ibmvfc: Use correlation token to tag commands") sets the vfcFrame correlation token to the pointer handle of the associated ibmvfc_event. However, that commit failed to cast the pointer to an appropriate type which in this case is a u64. As such sparse warnings are generated for both correlation token assignments. ibmvfc.c:2375:36: sparse: incorrect type in argument 1 (different base types) ibmvfc.c:2375:36: sparse: expected unsigned long long [usertype] val ibmvfc.c:2375:36: sparse: got struct ibmvfc_event *[assigned] evt Add the apporpriate u64 casts when assigning an ibmvfc_event as a correlation token. Fixes: Commit 2aa0102c6688 ("scsi: ibmvfc: Use correlation token to tag commands") Reported-by: kernel test robot <lkp@intel.com> Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com> --- drivers/scsi/ibmvscsi/ibmvfc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)