From: Randy Dunlap <rdun...@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 <l...@intel.com> Signed-off-by: Randy Dunlap <rdun...@infradead.org> Cc: Al Viro <v...@zeniv.linux.org.uk> Cc: Steven J. Magnani <st...@digidescorp.com> Cc: Michal Simek <mon...@monstr.eu> Cc: Jason Gunthorpe <j...@mellanox.com> Cc: Leon Romanovsky <leo...@mellanox.com> Cc: Andrew Morton <a...@linux-foundation.org> --- 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();\ } \