Re: drivers/infiniband/core/.tmp_gl_uverbs_main.o:undefined reference to `__user_bad'

From: Randy Dunlap
Date: Tue Apr 02 2019 - 22:38:56 EST


On 2/28/19 1:03 AM, kbuild test robot wrote:
> Hi Jason,
>
> FYI, the error/warning still remains.
>
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: 7d762d69145a54d169f58e56d6dac57a5508debc
> commit: 3a6532c9af1a7836da2d597f1aaca73cb16c3b97 RDMA/uverbs: Use uverbs_attr_bundle to pass udata for write
> date: 3 months ago
> config: microblaze-allyesconfig (attached as .config)
> compiler: microblaze-linux-gcc (GCC) 8.2.0
> reproduce:
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> git checkout 3a6532c9af1a7836da2d597f1aaca73cb16c3b97
> # save the attached .config to linux build tree
> GCC_VERSION=8.2.0 make.cross ARCH=microblaze
>
> All errors (new ones prefixed by >>):
>
> `.exit.data' referenced in section `.exit.text' of drivers/tty/n_hdlc.o: defined in discarded section `.exit.data' of drivers/tty/n_hdlc.o
> `.exit.data' referenced in section `.exit.text' of drivers/tty/n_hdlc.o: defined in discarded section `.exit.data' of drivers/tty/n_hdlc.o
> drivers/infiniband/core/uverbs_main.o: In function `ib_uverbs_write':
>>> drivers/infiniband/core/.tmp_gl_uverbs_main.o:(.text+0x13a4): undefined reference to `__user_bad'
> drivers/android/binder.o: In function `binder_thread_write':
> drivers/android/.tmp_gl_binder.o:(.text+0xda6c): undefined reference to `__user_bad'
> drivers/android/.tmp_gl_binder.o:(.text+0xda98): undefined reference to `__user_bad'
> drivers/android/.tmp_gl_binder.o:(.text+0xdf10): undefined reference to `__user_bad'
> drivers/android/.tmp_gl_binder.o:(.text+0xe498): undefined reference to `__user_bad'
> drivers/android/binder.o:drivers/android/.tmp_gl_binder.o:(.text+0xea78): more undefined references to `__user_bad' follow
>
> ---
> 0-DAY kernel test infrastructure Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all Intel Corporation

Hi Michal,

Would you comment on this, please?

Jason has said more than once that these build errors are because
arch/microblaze does not support get_user() of size 8 (bytes),
although it does support a put_user() of size 8.


See a previous report & comment at
https://lore.kernel.org/lkml/20190101200742.GA5757@xxxxxxxxxxxx/


thanks.
--
~Randy