> On 2 Sep 2020, at 14:40, Jason Gunthorpe <jgg@xxxxxxxxxx> wrote: > > On Wed, Sep 02, 2020 at 02:18:27PM +0200, Håkon Bugge wrote: >> >> >>> On 2 Sep 2020, at 13:52, Jason Gunthorpe <jgg@xxxxxxxxxx> wrote: >>> >>> On Wed, Sep 02, 2020 at 02:01:41PM +0800, kernel test robot wrote: >>>> tree: https://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git for-next >>>> head: 524d8ffd07f0ca10b24011487339f836ed859b32 >>>> commit: 227a0e142e375909959a74b7782403e14331f6f3 [16/50] IB/mlx4: Add support for REJ due to timeout >>>> config: i386-randconfig-s001-20200902 (attached as .config) >>>> compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 >>>> reproduce: >>>> # apt-get install sparse >>>> # sparse version: v0.6.2-191-g10164920-dirty >>>> git checkout 227a0e142e375909959a74b7782403e14331f6f3 >>>> # save the attached .config to linux build tree >>>> make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=i386 >>>> >>>> If you fix the issue, kindly add following tag as appropriate >>>> Reported-by: kernel test robot <lkp@xxxxxxxxx> >>> >>> Gah! >>> >>> Håkon, radix trees are not allowed please change this to xarray! >> >> I believe this is lack of __rcu in the variable definition. I started with >> >> void **slot; >> >> but sparse didn't like it, so I changed it to: >> >> __rcu void **slot; >> >> sparse liked that, but then it didn't like: >> >> struct rej_tmout_entry *item = *slot; >> >> Shall I change that to: >> >> struct rej_tmout_entry *item = rcu_dereference_protected(*slot, true); >> >> ? >> >> >> Not sure why I need to meld in this rcu stuff when everything is protected by a mutex anyway. >> >> Please advice, > > Change to xarray. Understood. It has to be converted anyway, now is probably the best time. Thxs, Håkon > > Jason