tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 5c7ecada25d2086aee607ff7deb69e77faa4aa92 commit: d30dfd490f7dc4cb6a7c11a647bd1ff7a22139e7 include/uapi/linux/swab.h: move explicit cast outside ternary date: 10 months ago config: sparc-randconfig-s052-20230426 (https://download.01.org/0day-ci/archive/20230427/202304270530.KnZhrFXD-lkp@xxxxxxxxx/config) compiler: sparc64-linux-gcc (GCC) 12.1.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # apt-get install sparse # sparse version: v0.6.4-39-gce1a6720-dirty # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d30dfd490f7dc4cb6a7c11a647bd1ff7a22139e7 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout d30dfd490f7dc4cb6a7c11a647bd1ff7a22139e7 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=sparc olddefconfig COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=sparc SHELL=/bin/bash drivers/infiniband/hw/qedr/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Link: https://lore.kernel.org/oe-kbuild-all/202304270530.KnZhrFXD-lkp@xxxxxxxxx/ sparse warnings: (new ones prefixed by >>) drivers/infiniband/hw/qedr/verbs.c:127:30: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be64 [usertype] sys_image_guid @@ got unsigned long long [usertype] sys_image_guid @@ drivers/infiniband/hw/qedr/verbs.c:127:30: sparse: expected restricted __be64 [usertype] sys_image_guid drivers/infiniband/hw/qedr/verbs.c:127:30: sparse: got unsigned long long [usertype] sys_image_guid drivers/infiniband/hw/qedr/verbs.c:1015:34: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le16 [usertype] icid @@ got unsigned short [usertype] icid @@ drivers/infiniband/hw/qedr/verbs.c:1015:34: sparse: expected restricted __le16 [usertype] icid drivers/infiniband/hw/qedr/verbs.c:1015:34: sparse: got unsigned short [usertype] icid drivers/infiniband/hw/qedr/verbs.c:1400:42: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le16 [usertype] icid @@ got int @@ drivers/infiniband/hw/qedr/verbs.c:1400:42: sparse: expected restricted __le16 [usertype] icid drivers/infiniband/hw/qedr/verbs.c:1400:42: sparse: got int drivers/infiniband/hw/qedr/verbs.c:1410:42: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le16 [usertype] icid @@ got unsigned short [usertype] icid @@ drivers/infiniband/hw/qedr/verbs.c:1410:42: sparse: expected restricted __le16 [usertype] icid drivers/infiniband/hw/qedr/verbs.c:1410:42: sparse: got unsigned short [usertype] icid drivers/infiniband/hw/qedr/verbs.c:1990:34: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le16 [usertype] icid @@ got unsigned short [usertype] icid @@ drivers/infiniband/hw/qedr/verbs.c:1990:34: sparse: expected restricted __le16 [usertype] icid drivers/infiniband/hw/qedr/verbs.c:1990:34: sparse: got unsigned short [usertype] icid drivers/infiniband/hw/qedr/verbs.c:2001:34: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le16 [usertype] icid @@ got unsigned short [usertype] icid @@ drivers/infiniband/hw/qedr/verbs.c:2001:34: sparse: expected restricted __le16 [usertype] icid drivers/infiniband/hw/qedr/verbs.c:2001:34: sparse: got unsigned short [usertype] icid drivers/infiniband/hw/qedr/verbs.c:2004:41: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le16 [usertype] icid @@ got unsigned short [usertype] icid @@ drivers/infiniband/hw/qedr/verbs.c:2004:41: sparse: expected restricted __le16 [usertype] icid drivers/infiniband/hw/qedr/verbs.c:2004:41: sparse: got unsigned short [usertype] icid drivers/infiniband/hw/qedr/verbs.c:2005:42: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le16 [usertype] value @@ got unsigned long @@ drivers/infiniband/hw/qedr/verbs.c:2005:42: sparse: expected restricted __le16 [usertype] value drivers/infiniband/hw/qedr/verbs.c:2005:42: sparse: got unsigned long drivers/infiniband/hw/qedr/verbs.c:3273:22: sparse: sparse: cast from restricted __le64 drivers/infiniband/hw/qedr/verbs.c:3273:20: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long [usertype] @@ got restricted __be64 [usertype] @@ drivers/infiniband/hw/qedr/verbs.c:3273:20: sparse: expected unsigned long long [usertype] drivers/infiniband/hw/qedr/verbs.c:3273:20: sparse: got restricted __be64 [usertype] drivers/infiniband/hw/qedr/verbs.c:3433:24: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] hi @@ got unsigned int [usertype] @@ drivers/infiniband/hw/qedr/verbs.c:3433:24: sparse: expected restricted __le32 [usertype] hi drivers/infiniband/hw/qedr/verbs.c:3433:24: sparse: got unsigned int [usertype] drivers/infiniband/hw/qedr/verbs.c:3434:24: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] lo @@ got unsigned int [usertype] @@ drivers/infiniband/hw/qedr/verbs.c:3434:24: sparse: expected restricted __le32 [usertype] lo drivers/infiniband/hw/qedr/verbs.c:3434:24: sparse: got unsigned int [usertype] drivers/infiniband/hw/qedr/verbs.c:3435:22: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] l_key @@ got unsigned int const [usertype] key @@ drivers/infiniband/hw/qedr/verbs.c:3435:22: sparse: expected restricted __le32 [usertype] l_key drivers/infiniband/hw/qedr/verbs.c:3435:22: sparse: got unsigned int const [usertype] key drivers/infiniband/hw/qedr/verbs.c:3454:26: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] length_lo @@ got unsigned long long [usertype] length @@ drivers/infiniband/hw/qedr/verbs.c:3454:26: sparse: expected restricted __le32 [usertype] length_lo drivers/infiniband/hw/qedr/verbs.c:3454:26: sparse: got unsigned long long [usertype] length drivers/infiniband/hw/qedr/verbs.c:3455:28: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] hi @@ got unsigned int [usertype] @@ drivers/infiniband/hw/qedr/verbs.c:3455:28: sparse: expected restricted __le32 [usertype] hi drivers/infiniband/hw/qedr/verbs.c:3455:28: sparse: got unsigned int [usertype] drivers/infiniband/hw/qedr/verbs.c:3456:28: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] lo @@ got unsigned int [usertype] @@ drivers/infiniband/hw/qedr/verbs.c:3456:28: sparse: expected restricted __le32 [usertype] lo drivers/infiniband/hw/qedr/verbs.c:3456:28: sparse: got unsigned int [usertype] drivers/infiniband/hw/qedr/verbs.c:3584:54: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] bytes_len @@ got restricted __le32 [usertype] length @@ drivers/infiniband/hw/qedr/verbs.c:3584:54: sparse: expected unsigned int [usertype] bytes_len drivers/infiniband/hw/qedr/verbs.c:3584:54: sparse: got restricted __le32 [usertype] length drivers/infiniband/hw/qedr/verbs.c:3597:54: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] bytes_len @@ got restricted __le32 [usertype] length @@ drivers/infiniband/hw/qedr/verbs.c:3597:54: sparse: expected unsigned int [usertype] bytes_len drivers/infiniband/hw/qedr/verbs.c:3597:54: sparse: got restricted __le32 [usertype] length drivers/infiniband/hw/qedr/verbs.c:3610:54: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] bytes_len @@ got restricted __le32 [usertype] length @@ drivers/infiniband/hw/qedr/verbs.c:3610:54: sparse: expected unsigned int [usertype] bytes_len drivers/infiniband/hw/qedr/verbs.c:3610:54: sparse: got restricted __le32 [usertype] length drivers/infiniband/hw/qedr/verbs.c:3623:34: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] val @@ got restricted __be32 const [usertype] imm_data @@ drivers/infiniband/hw/qedr/verbs.c:3623:34: sparse: expected unsigned int [usertype] val drivers/infiniband/hw/qedr/verbs.c:3623:34: sparse: got restricted __be32 const [usertype] imm_data drivers/infiniband/hw/qedr/verbs.c:3623:34: sparse: sparse: cast from restricted __be32 drivers/infiniband/hw/qedr/verbs.c:3623:34: sparse: sparse: cast from restricted __be32 drivers/infiniband/hw/qedr/verbs.c:3623:34: sparse: sparse: cast from restricted __be32 drivers/infiniband/hw/qedr/verbs.c:3623:34: sparse: sparse: cast from restricted __be32 drivers/infiniband/hw/qedr/verbs.c:3623:34: sparse: sparse: cast from restricted __le32 drivers/infiniband/hw/qedr/verbs.c:3623:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] imm_data @@ got restricted __be32 [usertype] @@ drivers/infiniband/hw/qedr/verbs.c:3623:32: sparse: expected restricted __le32 [usertype] imm_data drivers/infiniband/hw/qedr/verbs.c:3623:32: sparse: got restricted __be32 [usertype] drivers/infiniband/hw/qedr/verbs.c:3630:54: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] bytes_len @@ got restricted __le32 [usertype] length @@ drivers/infiniband/hw/qedr/verbs.c:3630:54: sparse: expected unsigned int [usertype] bytes_len drivers/infiniband/hw/qedr/verbs.c:3630:54: sparse: got restricted __le32 [usertype] length drivers/infiniband/hw/qedr/verbs.c:3643:54: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] bytes_len @@ got restricted __le32 [usertype] length @@ drivers/infiniband/hw/qedr/verbs.c:3643:54: sparse: expected unsigned int [usertype] bytes_len drivers/infiniband/hw/qedr/verbs.c:3643:54: sparse: got restricted __le32 [usertype] length drivers/infiniband/hw/qedr/verbs.c:3660:54: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] bytes_len @@ got restricted __le32 [usertype] length @@ drivers/infiniband/hw/qedr/verbs.c:3660:54: sparse: expected unsigned int [usertype] bytes_len drivers/infiniband/hw/qedr/verbs.c:3660:54: sparse: got restricted __le32 [usertype] length drivers/infiniband/hw/qedr/verbs.c:3697:33: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] inv_l_key @@ got unsigned int const [usertype] invalidate_rkey @@ drivers/infiniband/hw/qedr/verbs.c:3697:33: sparse: expected restricted __le32 [usertype] inv_l_key drivers/infiniband/hw/qedr/verbs.c:3697:33: sparse: got unsigned int const [usertype] invalidate_rkey drivers/infiniband/hw/qedr/verbs.c:3779:42: sparse: sparse: restricted __le16 degrades to integer drivers/infiniband/hw/qedr/verbs.c:3978:42: sparse: sparse: restricted __le16 degrades to integer drivers/infiniband/hw/qedr/verbs.c:4007:43: sparse: sparse: cast from restricted __le32 drivers/infiniband/hw/qedr/verbs.c:4007:43: sparse: sparse: restricted __le32 degrades to integer drivers/infiniband/hw/qedr/verbs.c:4103:68: sparse: sparse: incorrect type in argument 6 (different base types) @@ expected unsigned short [usertype] hw_cons @@ got restricted __le16 [usertype] sq_cons @@ drivers/infiniband/hw/qedr/verbs.c:4103:68: sparse: expected unsigned short [usertype] hw_cons drivers/infiniband/hw/qedr/verbs.c:4103:68: sparse: got restricted __le16 [usertype] sq_cons drivers/infiniband/hw/qedr/verbs.c:4111:68: sparse: sparse: incorrect type in argument 6 (different base types) @@ expected unsigned short [usertype] hw_cons @@ got restricted __le16 [usertype] sq_cons @@ drivers/infiniband/hw/qedr/verbs.c:4111:68: sparse: expected unsigned short [usertype] hw_cons drivers/infiniband/hw/qedr/verbs.c:4111:68: sparse: got restricted __le16 [usertype] sq_cons drivers/infiniband/hw/qedr/verbs.c:4118:38: sparse: sparse: restricted __le16 degrades to integer drivers/infiniband/hw/qedr/verbs.c:4191:67: sparse: sparse: incorrect type in argument 6 (different base types) @@ expected unsigned short [usertype] hw_cons @@ got restricted __le16 [usertype] sq_cons @@ drivers/infiniband/hw/qedr/verbs.c:4191:67: sparse: expected unsigned short [usertype] hw_cons drivers/infiniband/hw/qedr/verbs.c:4191:67: sparse: got restricted __le16 [usertype] sq_cons drivers/infiniband/hw/qedr/verbs.c:4376:46: sparse: sparse: incorrect type in argument 5 (different base types) @@ expected unsigned short [usertype] hw_cons @@ got restricted __le16 [usertype] rq_cons_or_srq_id @@ drivers/infiniband/hw/qedr/verbs.c:4376:46: sparse: expected unsigned short [usertype] hw_cons drivers/infiniband/hw/qedr/verbs.c:4376:46: sparse: got restricted __le16 [usertype] rq_cons_or_srq_id drivers/infiniband/hw/qedr/verbs.c:1180:45: sparse: sparse: cast to restricted __be32 drivers/infiniband/hw/qedr/verbs.c:1181:45: sparse: sparse: cast to restricted __be32 >> drivers/infiniband/hw/qedr/verbs.c:4238:33: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 [usertype] imm_data @@ got unsigned int [usertype] @@ drivers/infiniband/hw/qedr/verbs.c:4238:33: sparse: expected restricted __be32 [usertype] imm_data drivers/infiniband/hw/qedr/verbs.c:4238:33: sparse: got unsigned int [usertype] vim +4238 drivers/infiniband/hw/qedr/verbs.c b6acd71fefc92d Amrani, Ram 2017-04-27 4220 b6acd71fefc92d Amrani, Ram 2017-04-27 4221 static inline int qedr_set_ok_cqe_resp_wc(struct rdma_cqe_responder *resp, b6acd71fefc92d Amrani, Ram 2017-04-27 4222 struct ib_wc *wc) b6acd71fefc92d Amrani, Ram 2017-04-27 4223 { b6acd71fefc92d Amrani, Ram 2017-04-27 4224 wc->status = IB_WC_SUCCESS; afa0e13be75430 Ram Amrani 2016-10-10 4225 wc->byte_len = le32_to_cpu(resp->length); afa0e13be75430 Ram Amrani 2016-10-10 4226 b6acd71fefc92d Amrani, Ram 2017-04-27 4227 if (resp->flags & QEDR_RESP_IMM) { 7bed7ebcb7c33e Jason Gunthorpe 2018-01-11 4228 wc->ex.imm_data = cpu_to_be32(le32_to_cpu(resp->imm_data_or_inv_r_Key)); b6acd71fefc92d Amrani, Ram 2017-04-27 4229 wc->wc_flags |= IB_WC_WITH_IMM; afa0e13be75430 Ram Amrani 2016-10-10 4230 b6acd71fefc92d Amrani, Ram 2017-04-27 4231 if (resp->flags & QEDR_RESP_RDMA) afa0e13be75430 Ram Amrani 2016-10-10 4232 wc->opcode = IB_WC_RECV_RDMA_WITH_IMM; afa0e13be75430 Ram Amrani 2016-10-10 4233 b6acd71fefc92d Amrani, Ram 2017-04-27 4234 if (resp->flags & QEDR_RESP_INV) b6acd71fefc92d Amrani, Ram 2017-04-27 4235 return -EINVAL; b6acd71fefc92d Amrani, Ram 2017-04-27 4236 b6acd71fefc92d Amrani, Ram 2017-04-27 4237 } else if (resp->flags & QEDR_RESP_INV) { b6acd71fefc92d Amrani, Ram 2017-04-27 @4238 wc->ex.imm_data = le32_to_cpu(resp->imm_data_or_inv_r_Key); b6acd71fefc92d Amrani, Ram 2017-04-27 4239 wc->wc_flags |= IB_WC_WITH_INVALIDATE; b6acd71fefc92d Amrani, Ram 2017-04-27 4240 b6acd71fefc92d Amrani, Ram 2017-04-27 4241 if (resp->flags & QEDR_RESP_RDMA) b6acd71fefc92d Amrani, Ram 2017-04-27 4242 return -EINVAL; b6acd71fefc92d Amrani, Ram 2017-04-27 4243 b6acd71fefc92d Amrani, Ram 2017-04-27 4244 } else if (resp->flags & QEDR_RESP_RDMA) { b6acd71fefc92d Amrani, Ram 2017-04-27 4245 return -EINVAL; afa0e13be75430 Ram Amrani 2016-10-10 4246 } b6acd71fefc92d Amrani, Ram 2017-04-27 4247 b6acd71fefc92d Amrani, Ram 2017-04-27 4248 return 0; afa0e13be75430 Ram Amrani 2016-10-10 4249 } afa0e13be75430 Ram Amrani 2016-10-10 4250 :::::: The code at line 4238 was first introduced by commit :::::: b6acd71fefc92d13ac9a0f117101d1aab1102d18 RDMA/qedr: add support for send+invalidate in poll CQ :::::: TO: Amrani, Ram <Ram.Amrani@xxxxxxxxxx> :::::: CC: Doug Ledford <dledford@xxxxxxxxxx> -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests