[scsi:misc 148/162] drivers/scsi/ibmvscsi/ibmvfc.c:1696:25: warning: incompatible pointer to integer conversion passing 'struct ibmvfc_event to parameter of type '__u64' (aka 'unsigned long long')

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git misc
head:   6998ff4e21619d47ebf4f5eb4cafa65c65856221
commit: 2aa0102c6688306548d81a958a6293936904ca75 [148/162] scsi: ibmvfc: Use correlation token to tag commands
config: powerpc-randconfig-r033-20201125 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 77e98eaee2e8d4b9b297b66fda5b1e51e2a69999)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install powerpc cross compiling tool for clang build
        # apt-get install binutils-powerpc-linux-gnu
        # https://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git/commit/?id=2aa0102c6688306548d81a958a6293936904ca75
        git remote add scsi https://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git
        git fetch --no-tags scsi misc
        git checkout 2aa0102c6688306548d81a958a6293936904ca75
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>):

>> drivers/scsi/ibmvscsi/ibmvfc.c:1696:25: warning: incompatible pointer to integer conversion passing 'struct ibmvfc_event *' to parameter of type '__u64' (aka 'unsigned long long') [-Wint-conversion]
           vfc_cmd->correlation = cpu_to_be64(evt);
                                  ^~~~~~~~~~~~~~~~
   include/linux/byteorder/generic.h:92:21: note: expanded from macro 'cpu_to_be64'
   #define cpu_to_be64 __cpu_to_be64
                       ^
   include/uapi/linux/byteorder/little_endian.h:37:52: note: expanded from macro '__cpu_to_be64'
   #define __cpu_to_be64(x) ((__force __be64)__swab64((x)))
                                             ~~~~~~~~~^~~~
   include/uapi/linux/swab.h:133:12: note: expanded from macro '__swab64'
           __fswab64(x))
                     ^
   include/uapi/linux/swab.h:66:57: note: passing argument to parameter 'val' here
   static inline __attribute_const__ __u64 __fswab64(__u64 val)
                                                           ^
   drivers/scsi/ibmvscsi/ibmvfc.c:2375:22: warning: incompatible pointer to integer conversion passing 'struct ibmvfc_event *' to parameter of type '__u64' (aka 'unsigned long long') [-Wint-conversion]
                   tmf->correlation = cpu_to_be64(evt);
                                      ^~~~~~~~~~~~~~~~
   include/linux/byteorder/generic.h:92:21: note: expanded from macro 'cpu_to_be64'
   #define cpu_to_be64 __cpu_to_be64
                       ^
   include/uapi/linux/byteorder/little_endian.h:37:52: note: expanded from macro '__cpu_to_be64'
   #define __cpu_to_be64(x) ((__force __be64)__swab64((x)))
                                             ~~~~~~~~~^~~~
   include/uapi/linux/swab.h:133:12: note: expanded from macro '__swab64'
           __fswab64(x))
                     ^
   include/uapi/linux/swab.h:66:57: note: passing argument to parameter 'val' here
   static inline __attribute_const__ __u64 __fswab64(__u64 val)
                                                           ^
   2 warnings generated.

vim +1696 drivers/scsi/ibmvscsi/ibmvfc.c

  1648	
  1649	/**
  1650	 * ibmvfc_queuecommand - The queuecommand function of the scsi template
  1651	 * @cmnd:	struct scsi_cmnd to be executed
  1652	 * @done:	Callback function to be called when cmnd is completed
  1653	 *
  1654	 * Returns:
  1655	 *	0 on success / other on failure
  1656	 **/
  1657	static int ibmvfc_queuecommand_lck(struct scsi_cmnd *cmnd,
  1658				       void (*done) (struct scsi_cmnd *))
  1659	{
  1660		struct ibmvfc_host *vhost = shost_priv(cmnd->device->host);
  1661		struct fc_rport *rport = starget_to_rport(scsi_target(cmnd->device));
  1662		struct ibmvfc_cmd *vfc_cmd;
  1663		struct ibmvfc_event *evt;
  1664		int rc;
  1665	
  1666		if (unlikely((rc = fc_remote_port_chkready(rport))) ||
  1667		    unlikely((rc = ibmvfc_host_chkready(vhost)))) {
  1668			cmnd->result = rc;
  1669			done(cmnd);
  1670			return 0;
  1671		}
  1672	
  1673		cmnd->result = (DID_OK << 16);
  1674		evt = ibmvfc_get_event(vhost);
  1675		ibmvfc_init_event(evt, ibmvfc_scsi_done, IBMVFC_CMD_FORMAT);
  1676		evt->cmnd = cmnd;
  1677		cmnd->scsi_done = done;
  1678		vfc_cmd = &evt->iu.cmd;
  1679		memset(vfc_cmd, 0, sizeof(*vfc_cmd));
  1680		vfc_cmd->resp.va = cpu_to_be64(be64_to_cpu(evt->crq.ioba) + offsetof(struct ibmvfc_cmd, rsp));
  1681		vfc_cmd->resp.len = cpu_to_be32(sizeof(vfc_cmd->rsp));
  1682		vfc_cmd->frame_type = cpu_to_be32(IBMVFC_SCSI_FCP_TYPE);
  1683		vfc_cmd->payload_len = cpu_to_be32(sizeof(vfc_cmd->iu));
  1684		vfc_cmd->resp_len = cpu_to_be32(sizeof(vfc_cmd->rsp));
  1685		vfc_cmd->cancel_key = cpu_to_be32((unsigned long)cmnd->device->hostdata);
  1686		vfc_cmd->tgt_scsi_id = cpu_to_be64(rport->port_id);
  1687		vfc_cmd->iu.xfer_len = cpu_to_be32(scsi_bufflen(cmnd));
  1688		int_to_scsilun(cmnd->device->lun, &vfc_cmd->iu.lun);
  1689		memcpy(vfc_cmd->iu.cdb, cmnd->cmnd, cmnd->cmd_len);
  1690	
  1691		if (cmnd->flags & SCMD_TAGGED) {
  1692			vfc_cmd->task_tag = cpu_to_be64(cmnd->tag);
  1693			vfc_cmd->iu.pri_task_attr = IBMVFC_SIMPLE_TASK;
  1694		}
  1695	
> 1696		vfc_cmd->correlation = cpu_to_be64(evt);
  1697	
  1698		if (likely(!(rc = ibmvfc_map_sg_data(cmnd, evt, vfc_cmd, vhost->dev))))
  1699			return ibmvfc_send_event(evt, vhost, 0);
  1700	
  1701		ibmvfc_free_event(evt);
  1702		if (rc == -ENOMEM)
  1703			return SCSI_MLQUEUE_HOST_BUSY;
  1704	
  1705		if (vhost->log_level > IBMVFC_DEFAULT_LOG_LEVEL)
  1706			scmd_printk(KERN_ERR, cmnd,
  1707				    "Failed to map DMA buffer for command. rc=%d\n", rc);
  1708	
  1709		cmnd->result = DID_ERROR << 16;
  1710		done(cmnd);
  1711		return 0;
  1712	}
  1713	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux