Messages in this thread Patch in this message | | | From | Randy Dunlap <> | Subject | [PATCH RESEND] arch/microblaze: add support for get_user() of size 8 bytes | Date | Sat, 31 Aug 2019 20:40:05 -0700 |
| |
From: Randy Dunlap <rdunlap@infradead.org>
arch/microblaze/ is missing support for get_user() of size 8 bytes, so add it by using __copy_from_user().
Fixes these build errors: 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
'make allmodconfig' now builds successfully for arch/microblaze/.
Fixes: 538722ca3b76 ("microblaze: fix get_user/put_user side-effects") Reported-by: kbuild test robot <lkp@intel.com> Signed-off-by: Randy Dunlap <rdunlap@infradead.org> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Steven J. Magnani <steve@digidescorp.com> Cc: Michal Simek <monstr@monstr.eu> Cc: Jason Gunthorpe <jgg@mellanox.com> Cc: Leon Romanovsky <leonro@mellanox.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Doug Ledford <dledford@redhat.com> Reviewed-by: Leon Romanovsky <leonro@mellanox.com> --- What is a reasonable path for having this patch merged? Leon Romanovsky <leonro@mellanox.com> has tested it. I have sent several emails to Micahl Simek but he seems to have dropped active maintenance of arch/microblaze/.
arch/microblaze/include/asm/uaccess.h | 6 ++++++ 1 file changed, 6 insertions(+)
--- lnx-53-rc3.orig/arch/microblaze/include/asm/uaccess.h +++ lnx-53-rc3/arch/microblaze/include/asm/uaccess.h @@ -186,6 +186,9 @@ extern long __user_bad(void); __get_user_asm("lw", __gu_addr, __gu_val, \ __gu_err); \ break; \ + case 8: \ + __gu_err = __copy_from_user(&__gu_val, __gu_addr, 8);\ + break; \ default: \ __gu_err = __user_bad(); \ break; \ @@ -212,6 +215,9 @@ extern long __user_bad(void); case 4: \ __get_user_asm("lw", (ptr), __gu_val, __gu_err); \ break; \ + case 8: \ + __gu_err = __copy_from_user(&__gu_val, ptr, 8); \ + break; \ default: \ /* __gu_val = 0; __gu_err = -EINVAL;*/ __gu_err = __user_bad();\ } \
| |