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

From: Leon Romanovsky
Date: Mon Aug 05 2019 - 01:03:45 EST


On Sun, Aug 04, 2019 at 09:50:50PM -0700, Randy Dunlap wrote:
> On 4/2/19 7:38 PM, Randy Dunlap wrote:
> > 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?
>
> [crickets]
>
> > 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.
>
> I currently don't have a cross-build environment set up, so I haven't
> built this yet, but a patch like this might fix this nagging issue.
>
> (It's clearly not high priority since arch/microblaze/ mostly seems to be
> not well-maintained.)

It seems reasonable, drivers/infiniband/* never worked and will work on
that architecture.

Thanks