lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202301141315.WI7Csb8w-lkp@intel.com>
Date:   Sat, 14 Jan 2023 13:30:41 +0800
From:   kernel test robot <lkp@...el.com>
To:     Jia-Ju Bai <baijiaju1990@...il.com>, zyjzyj2000@...il.com,
        jgg@...pe.ca, leon@...nel.org
Cc:     llvm@...ts.linux.dev, oe-kbuild-all@...ts.linux.dev,
        linux-rdma@...r.kernel.org, linux-kernel@...r.kernel.org,
        Jia-Ju Bai <baijiaju1990@...il.com>,
        TOTE Robot <oslab@...nghua.edu.cn>
Subject: Re: [PATCH] infiniband: sw: rxe: Add NULL checks for qp->resp.mr

Hi Jia-Ju,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v6.2-rc3 next-20230113]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Jia-Ju-Bai/infiniband-sw-rxe-Add-NULL-checks-for-qp-resp-mr/20230113-103654
patch link:    https://lore.kernel.org/r/20230113023527.728725-1-baijiaju1990%40gmail.com
patch subject: [PATCH] infiniband: sw: rxe: Add NULL checks for qp->resp.mr
config: arm64-randconfig-r001-20230112
compiler: clang version 16.0.0 (https://github.com/llvm/llvm-project 8d9828ef5aa9688500657d36cd2aefbe12bbd162)
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 arm64 cross compiling tool for clang build
        # apt-get install binutils-aarch64-linux-gnu
        # https://github.com/intel-lab-lkp/linux/commit/6182051db57e8c84d8d55bef726c9f028b3af9b0
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Jia-Ju-Bai/infiniband-sw-rxe-Add-NULL-checks-for-qp-resp-mr/20230113-103654
        git checkout 6182051db57e8c84d8d55bef726c9f028b3af9b0
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm64 olddefconfig
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm64 SHELL=/bin/bash drivers/infiniband/sw/rxe/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@...el.com>

All warnings (new ones prefixed by >>):

>> drivers/infiniband/sw/rxe/rxe_resp.c:805:6: warning: variable 'dst' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
           if (mr) {
               ^~
   drivers/infiniband/sw/rxe/rxe_resp.c:813:20: note: uninitialized use occurs here
           smp_store_release(dst, src);
                             ^~~
   include/asm-generic/barrier.h:172:75: note: expanded from macro 'smp_store_release'
   #define smp_store_release(p, v) do { kcsan_release(); __smp_store_release(p, v); } while (0)
                                                                             ^
   arch/arm64/include/asm/barrier.h:122:19: note: expanded from macro '__smp_store_release'
           typeof(p) __p = (p);                                            \
                            ^
   drivers/infiniband/sw/rxe/rxe_resp.c:805:2: note: remove the 'if' if its condition is always true
           if (mr) {
           ^~~~~~~~
   drivers/infiniband/sw/rxe/rxe_resp.c:798:15: note: initialize the variable 'dst' to silence this warning
           u64 src, *dst;
                        ^
                         = NULL
   1 warning generated.


vim +805 drivers/infiniband/sw/rxe/rxe_resp.c

   791	
   792	#ifdef CONFIG_64BIT
   793	static enum resp_states do_atomic_write(struct rxe_qp *qp,
   794						struct rxe_pkt_info *pkt)
   795	{
   796		struct rxe_mr *mr = qp->resp.mr;
   797		int payload = payload_size(pkt);
   798		u64 src, *dst;
   799	
   800		if (mr && mr->state != RXE_MR_STATE_VALID)
   801			return RESPST_ERR_RKEY_VIOLATION;
   802	
   803		memcpy(&src, payload_addr(pkt), payload);
   804	
 > 805		if (mr) {
   806			dst = iova_to_vaddr(mr, qp->resp.va + qp->resp.offset, payload);
   807			/* check vaddr is 8 bytes aligned. */
   808			if (!dst || (uintptr_t)dst & 7)
   809				return RESPST_ERR_MISALIGNED_ATOMIC;
   810		}
   811	
   812		/* Do atomic write after all prior operations have completed */
   813		smp_store_release(dst, src);
   814	
   815		/* decrease resp.resid to zero */
   816		qp->resp.resid -= sizeof(payload);
   817	
   818		qp->resp.msn++;
   819	
   820		/* next expected psn, read handles this separately */
   821		qp->resp.psn = (pkt->psn + 1) & BTH_PSN_MASK;
   822		qp->resp.ack_psn = qp->resp.psn;
   823	
   824		qp->resp.opcode = pkt->opcode;
   825		qp->resp.status = IB_WC_SUCCESS;
   826		return RESPST_ACKNOWLEDGE;
   827	}
   828	#else
   829	static enum resp_states do_atomic_write(struct rxe_qp *qp,
   830						struct rxe_pkt_info *pkt)
   831	{
   832		return RESPST_ERR_UNSUPPORTED_OPCODE;
   833	}
   834	#endif /* CONFIG_64BIT */
   835	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests

View attachment "config" of type "text/plain" (165722 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ