Hi Nicholas,

I love your patch! Perhaps something to improve:

[auto build test WARNING on powerpc/next]
[also build test WARNING on v5.6 next-20200404]
[cannot apply to scottwood/next]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    
https://github.com/0day-ci/linux/commits/Nicholas-Piggin/powerpc-64s-implement-probe_kernel_read-write-without-touching-AMR/20200404-192647
base:   https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
config: powerpc-rhel-kconfig (attached as .config)
compiler: powerpc64le-linux-gcc (GCC) 9.3.0
reproduce:
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=9.3.0 make.cross ARCH=powerpc 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <l...@intel.com>

All warnings (new ones prefixed by >>):

   In file included from include/linux/uaccess.h:11,
                    from arch/powerpc/include/asm/sections.h:7,
                    from include/linux/interrupt.h:20,
                    from include/linux/serial_core.h:13,
                    from drivers/of/fdt.c:25:
   include/asm-generic/termios-base.h: In function 
'user_termio_to_kernel_termios':
   arch/powerpc/include/asm/uaccess.h:328:2: warning: statement with no effect 
[-Wunused-value]
     328 |  __gu_err;       \
         |  ^~~~~~~~
>> arch/powerpc/include/asm/uaccess.h:89:2: note: in expansion of macro 
>> '__get_user_check'
      89 |  __get_user_check((x), (ptr), sizeof(*(ptr)))
         |  ^~~~~~~~~~~~~~~~
>> include/asm-generic/termios-base.h:20:6: note: in expansion of macro 
>> 'get_user'
      20 |  if (get_user(tmp, &termio->c_iflag) < 0)
         |      ^~~~~~~~
   arch/powerpc/include/asm/uaccess.h:328:2: warning: statement with no effect 
[-Wunused-value]
     328 |  __gu_err;       \
         |  ^~~~~~~~
>> arch/powerpc/include/asm/uaccess.h:89:2: note: in expansion of macro 
>> '__get_user_check'
      89 |  __get_user_check((x), (ptr), sizeof(*(ptr)))
         |  ^~~~~~~~~~~~~~~~
   include/asm-generic/termios-base.h:24:6: note: in expansion of macro 
'get_user'
      24 |  if (get_user(tmp, &termio->c_oflag) < 0)
         |      ^~~~~~~~
   arch/powerpc/include/asm/uaccess.h:328:2: warning: statement with no effect 
[-Wunused-value]
     328 |  __gu_err;       \
         |  ^~~~~~~~
>> arch/powerpc/include/asm/uaccess.h:89:2: note: in expansion of macro 
>> '__get_user_check'
      89 |  __get_user_check((x), (ptr), sizeof(*(ptr)))
         |  ^~~~~~~~~~~~~~~~
   include/asm-generic/termios-base.h:28:6: note: in expansion of macro 
'get_user'
      28 |  if (get_user(tmp, &termio->c_cflag) < 0)
         |      ^~~~~~~~
   arch/powerpc/include/asm/uaccess.h:328:2: warning: statement with no effect 
[-Wunused-value]
     328 |  __gu_err;       \
         |  ^~~~~~~~
>> arch/powerpc/include/asm/uaccess.h:89:2: note: in expansion of macro 
>> '__get_user_check'
      89 |  __get_user_check((x), (ptr), sizeof(*(ptr)))
         |  ^~~~~~~~~~~~~~~~
   include/asm-generic/termios-base.h:32:6: note: in expansion of macro 
'get_user'
      32 |  if (get_user(tmp, &termio->c_lflag) < 0)
         |      ^~~~~~~~
   arch/powerpc/include/asm/uaccess.h:328:2: warning: statement with no effect 
[-Wunused-value]
     328 |  __gu_err;       \
         |  ^~~~~~~~
>> arch/powerpc/include/asm/uaccess.h:89:2: note: in expansion of macro 
>> '__get_user_check'
      89 |  __get_user_check((x), (ptr), sizeof(*(ptr)))
         |  ^~~~~~~~~~~~~~~~
   include/asm-generic/termios-base.h:36:6: note: in expansion of macro 
'get_user'
      36 |  if (get_user(termios->c_line, &termio->c_line) < 0)
         |      ^~~~~~~~
   include/asm-generic/termios-base.h: In function 
'kernel_termios_to_user_termio':
   arch/powerpc/include/asm/uaccess.h:194:2: warning: statement with no effect 
[-Wunused-value]
     194 |  __pu_err;       \
         |  ^~~~~~~~
>> arch/powerpc/include/asm/uaccess.h:91:2: note: in expansion of macro 
>> '__put_user_check'
      91 |  __put_user_check((__typeof__(*(ptr)))(x), (ptr), sizeof(*(ptr)))
         |  ^~~~~~~~~~~~~~~~
>> include/asm-generic/termios-base.h:54:6: note: in expansion of macro 
>> 'put_user'
      54 |  if (put_user(termios->c_iflag, &termio->c_iflag) < 0 ||
         |      ^~~~~~~~
   arch/powerpc/include/asm/uaccess.h:194:2: warning: statement with no effect 
[-Wunused-value]
     194 |  __pu_err;       \
         |  ^~~~~~~~
>> arch/powerpc/include/asm/uaccess.h:91:2: note: in expansion of macro 
>> '__put_user_check'
      91 |  __put_user_check((__typeof__(*(ptr)))(x), (ptr), sizeof(*(ptr)))
         |  ^~~~~~~~~~~~~~~~
   include/asm-generic/termios-base.h:55:6: note: in expansion of macro 
'put_user'
      55 |      put_user(termios->c_oflag, &termio->c_oflag) < 0 ||
         |      ^~~~~~~~
   arch/powerpc/include/asm/uaccess.h:194:2: warning: statement with no effect 
[-Wunused-value]
     194 |  __pu_err;       \
         |  ^~~~~~~~
>> arch/powerpc/include/asm/uaccess.h:91:2: note: in expansion of macro 
>> '__put_user_check'
      91 |  __put_user_check((__typeof__(*(ptr)))(x), (ptr), sizeof(*(ptr)))
         |  ^~~~~~~~~~~~~~~~
   include/asm-generic/termios-base.h:56:6: note: in expansion of macro 
'put_user'
      56 |      put_user(termios->c_cflag, &termio->c_cflag) < 0 ||
         |      ^~~~~~~~
   arch/powerpc/include/asm/uaccess.h:194:2: warning: statement with no effect 
[-Wunused-value]
     194 |  __pu_err;       \
         |  ^~~~~~~~
>> arch/powerpc/include/asm/uaccess.h:91:2: note: in expansion of macro 
>> '__put_user_check'
      91 |  __put_user_check((__typeof__(*(ptr)))(x), (ptr), sizeof(*(ptr)))
         |  ^~~~~~~~~~~~~~~~
   include/asm-generic/termios-base.h:57:6: note: in expansion of macro 
'put_user'
      57 |      put_user(termios->c_lflag, &termio->c_lflag) < 0 ||
         |      ^~~~~~~~
   arch/powerpc/include/asm/uaccess.h:194:2: warning: statement with no effect 
[-Wunused-value]
     194 |  __pu_err;       \
         |  ^~~~~~~~
>> arch/powerpc/include/asm/uaccess.h:91:2: note: in expansion of macro 
>> '__put_user_check'
      91 |  __put_user_check((__typeof__(*(ptr)))(x), (ptr), sizeof(*(ptr)))
         |  ^~~~~~~~~~~~~~~~
   include/asm-generic/termios-base.h:58:6: note: in expansion of macro 
'put_user'
      58 |      put_user(termios->c_line,  &termio->c_line) < 0 ||
         |      ^~~~~~~~
--
   In file included from include/linux/uaccess.h:11,
                    from include/linux/sched/task.h:11,
                    from include/linux/sched/signal.h:9,
                    from include/linux/ptrace.h:7,
                    from arch/powerpc/kernel/signal_32.c:23:
   arch/powerpc/kernel/signal_32.c: In function 'handle_rt_signal32':
   arch/powerpc/include/asm/uaccess.h:194:2: warning: statement with no effect 
[-Wunused-value]
     194 |  __pu_err;       \
         |  ^~~~~~~~
>> arch/powerpc/include/asm/uaccess.h:91:2: note: in expansion of macro 
>> '__put_user_check'
      91 |  __put_user_check((__typeof__(*(ptr)))(x), (ptr), sizeof(*(ptr)))
         |  ^~~~~~~~~~~~~~~~
>> arch/powerpc/kernel/signal_32.c:967:6: note: in expansion of macro 'put_user'
     967 |  if (put_user(regs->gpr[1], (u32 __user *)newsp))
         |      ^~~~~~~~
   arch/powerpc/kernel/signal_32.c: In function 'handle_signal32':
   arch/powerpc/include/asm/uaccess.h:194:2: warning: statement with no effect 
[-Wunused-value]
     194 |  __pu_err;       \
         |  ^~~~~~~~
>> arch/powerpc/include/asm/uaccess.h:91:2: note: in expansion of macro 
>> '__put_user_check'
      91 |  __put_user_check((__typeof__(*(ptr)))(x), (ptr), sizeof(*(ptr)))
         |  ^~~~~~~~~~~~~~~~
   arch/powerpc/kernel/signal_32.c:1423:6: note: in expansion of macro 
'put_user'
    1423 |  if (put_user(regs->gpr[1], (u32 __user *)newsp))
         |      ^~~~~~~~
--
   In file included from include/linux/uaccess.h:11,
                    from include/linux/sched/task.h:11,
                    from arch/powerpc/kernel/process.c:16:
   arch/powerpc/kernel/process.c: In function 'get_fpexc_mode':
   arch/powerpc/include/asm/uaccess.h:194:2: warning: statement with no effect 
[-Wunused-value]
     194 |  __pu_err;       \
         |  ^~~~~~~~
>> arch/powerpc/include/asm/uaccess.h:91:2: note: in expansion of macro 
>> '__put_user_check'
      91 |  __put_user_check((__typeof__(*(ptr)))(x), (ptr), sizeof(*(ptr)))
         |  ^~~~~~~~~~~~~~~~
>> arch/powerpc/kernel/process.c:1909:9: note: in expansion of macro 'put_user'
    1909 |  return put_user(val, (unsigned int __user *) adr);
         |         ^~~~~~~~
   arch/powerpc/kernel/process.c: In function 'get_endian':
   arch/powerpc/include/asm/uaccess.h:194:2: warning: statement with no effect 
[-Wunused-value]
     194 |  __pu_err;       \
         |  ^~~~~~~~
>> arch/powerpc/include/asm/uaccess.h:91:2: note: in expansion of macro 
>> '__put_user_check'
      91 |  __put_user_check((__typeof__(*(ptr)))(x), (ptr), sizeof(*(ptr)))
         |  ^~~~~~~~~~~~~~~~
   arch/powerpc/kernel/process.c:1953:9: note: in expansion of macro 'put_user'
    1953 |  return put_user(val, (unsigned int __user *)adr);
         |         ^~~~~~~~
   arch/powerpc/kernel/process.c: In function 'get_unalign_ctl':
   arch/powerpc/include/asm/uaccess.h:194:2: warning: statement with no effect 
[-Wunused-value]
     194 |  __pu_err;       \
         |  ^~~~~~~~
>> arch/powerpc/include/asm/uaccess.h:91:2: note: in expansion of macro 
>> '__put_user_check'
      91 |  __put_user_check((__typeof__(*(ptr)))(x), (ptr), sizeof(*(ptr)))
         |  ^~~~~~~~~~~~~~~~
   arch/powerpc/kernel/process.c:1964:9: note: in expansion of macro 'put_user'
    1964 |  return put_user(tsk->thread.align_ctl, (unsigned int __user *)adr);
         |         ^~~~~~~~
--
   In file included from include/linux/uaccess.h:11,
                    from include/linux/sched/task.h:11,
                    from include/linux/sched/signal.h:9,
                    from include/linux/ptrace.h:7,
                    from arch/powerpc/kernel/traps.c:22:
   arch/powerpc/kernel/traps.c: In function 'emulate_string_inst':
   arch/powerpc/include/asm/uaccess.h:328:2: warning: statement with no effect 
[-Wunused-value]
     328 |  __gu_err;       \
         |  ^~~~~~~~
>> arch/powerpc/include/asm/uaccess.h:89:2: note: in expansion of macro 
>> '__get_user_check'
      89 |  __get_user_check((x), (ptr), sizeof(*(ptr)))
         |  ^~~~~~~~~~~~~~~~
>> arch/powerpc/kernel/traps.c:1243:9: note: in expansion of macro 'get_user'
    1243 |     if (get_user(val, (u8 __user *)EA))
         |         ^~~~~~~~
   arch/powerpc/include/asm/uaccess.h:194:2: warning: statement with no effect 
[-Wunused-value]
     194 |  __pu_err;       \
         |  ^~~~~~~~
>> arch/powerpc/include/asm/uaccess.h:91:2: note: in expansion of macro 
>> '__put_user_check'
      91 |  __put_user_check((__typeof__(*(ptr)))(x), (ptr), sizeof(*(ptr)))
         |  ^~~~~~~~~~~~~~~~
>> arch/powerpc/kernel/traps.c:1254:9: note: in expansion of macro 'put_user'
    1254 |     if (put_user(val, (u8 __user *)EA))
         |         ^~~~~~~~
   arch/powerpc/kernel/traps.c: In function 'emulate_instruction':
   arch/powerpc/include/asm/uaccess.h:328:2: warning: statement with no effect 
[-Wunused-value]
     328 |  __gu_err;       \
         |  ^~~~~~~~
>> arch/powerpc/include/asm/uaccess.h:89:2: note: in expansion of macro 
>> '__get_user_check'
      89 |  __get_user_check((x), (ptr), sizeof(*(ptr)))
         |  ^~~~~~~~~~~~~~~~
   arch/powerpc/kernel/traps.c:1338:6: note: in expansion of macro 'get_user'
    1338 |  if (get_user(instword, (u32 __user *)(regs->nip)))
         |      ^~~~~~~~
   arch/powerpc/kernel/traps.c: In function 'facility_unavailable_exception':
   arch/powerpc/include/asm/uaccess.h:328:2: warning: statement with no effect 
[-Wunused-value]
     328 |  __gu_err;       \
         |  ^~~~~~~~
>> arch/powerpc/include/asm/uaccess.h:89:2: note: in expansion of macro 
>> '__get_user_check'
      89 |  __get_user_check((x), (ptr), sizeof(*(ptr)))
         |  ^~~~~~~~~~~~~~~~
   arch/powerpc/kernel/traps.c:1770:7: note: in expansion of macro 'get_user'
    1770 |   if (get_user(instword, (u32 __user *)(regs->nip))) {
         |       ^~~~~~~~
--
   In file included from include/linux/uaccess.h:11,
                    from include/linux/sched/task.h:11,
                    from include/linux/sched/signal.h:9,
                    from include/linux/ptrace.h:7,
                    from arch/powerpc/kernel/signal_64.c:21:
   arch/powerpc/kernel/signal_64.c: In function '__do_sys_swapcontext':
   arch/powerpc/include/asm/uaccess.h:328:2: warning: statement with no effect 
[-Wunused-value]
     328 |  __gu_err;       \
         |  ^~~~~~~~
>> arch/powerpc/include/asm/uaccess.h:89:2: note: in expansion of macro 
>> '__get_user_check'
      89 |  __get_user_check((x), (ptr), sizeof(*(ptr)))
         |  ^~~~~~~~~~~~~~~~
>> arch/powerpc/kernel/signal_64.c:644:6: note: in expansion of macro 'get_user'
     644 |      get_user(new_msr, &new_ctx->uc_mcontext.gp_regs[PT_MSR]))
         |      ^~~~~~~~
   arch/powerpc/kernel/signal_64.c: In function 'handle_rt_signal64':
   arch/powerpc/include/asm/uaccess.h:194:2: warning: statement with no effect 
[-Wunused-value]
     194 |  __pu_err;       \
         |  ^~~~~~~~
>> arch/powerpc/include/asm/uaccess.h:91:2: note: in expansion of macro 
>> '__put_user_check'
      91 |  __put_user_check((__typeof__(*(ptr)))(x), (ptr), sizeof(*(ptr)))
         |  ^~~~~~~~~~~~~~~~
>> arch/powerpc/kernel/signal_64.c:880:9: note: in expansion of macro 'put_user'
     880 |  err |= put_user(regs->gpr[1], (unsigned long __user *)newsp);
         |         ^~~~~~~~
   arch/powerpc/include/asm/uaccess.h:328:2: warning: statement with no effect 
[-Wunused-value]
     328 |  __gu_err;       \
         |  ^~~~~~~~
>> arch/powerpc/include/asm/uaccess.h:89:2: note: in expansion of macro 
>> '__get_user_check'
      89 |  __get_user_check((x), (ptr), sizeof(*(ptr)))
         |  ^~~~~~~~~~~~~~~~
   arch/powerpc/kernel/signal_64.c:895:10: note: in expansion of macro 
'get_user'
     895 |   err |= get_user(regs->nip, &funct_desc_ptr->entry);
         |          ^~~~~~~~
   arch/powerpc/include/asm/uaccess.h:328:2: warning: statement with no effect 
[-Wunused-value]
     328 |  __gu_err;       \
         |  ^~~~~~~~
>> arch/powerpc/include/asm/uaccess.h:89:2: note: in expansion of macro 
>> '__get_user_check'
      89 |  __get_user_check((x), (ptr), sizeof(*(ptr)))
         |  ^~~~~~~~~~~~~~~~
   arch/powerpc/kernel/signal_64.c:896:10: note: in expansion of macro 
'get_user'
     896 |   err |= get_user(regs->gpr[2], &funct_desc_ptr->toc);
         |          ^~~~~~~~
   arch/powerpc/include/asm/uaccess.h:328:2: warning: statement with no effect 
[-Wunused-value]
     328 |  __gu_err;       \
         |  ^~~~~~~~
>> arch/powerpc/include/asm/uaccess.h:89:2: note: in expansion of macro 
>> '__get_user_check'
      89 |  __get_user_check((x), (ptr), sizeof(*(ptr)))
         |  ^~~~~~~~~~~~~~~~
   arch/powerpc/kernel/signal_64.c:906:10: note: in expansion of macro 
'get_user'
     906 |   err |= get_user(regs->gpr[4], (unsigned long __user 
*)&frame->pinfo);
         |          ^~~~~~~~
   arch/powerpc/include/asm/uaccess.h:328:2: warning: statement with no effect 
[-Wunused-value]
     328 |  __gu_err;       \
         |  ^~~~~~~~
>> arch/powerpc/include/asm/uaccess.h:89:2: note: in expansion of macro 
>> '__get_user_check'
      89 |  __get_user_check((x), (ptr), sizeof(*(ptr)))
         |  ^~~~~~~~~~~~~~~~
   arch/powerpc/kernel/signal_64.c:907:10: note: in expansion of macro 
'get_user'
     907 |   err |= get_user(regs->gpr[5], (unsigned long __user *)&frame->puc);
         |          ^~~~~~~~
--
   In file included from include/linux/uaccess.h:11,
                    from arch/powerpc/kernel/vecemu.c:12:
   arch/powerpc/kernel/vecemu.c: In function 'emulate_altivec':
   arch/powerpc/include/asm/uaccess.h:328:2: warning: statement with no effect 
[-Wunused-value]
     328 |  __gu_err;       \
         |  ^~~~~~~~
>> arch/powerpc/include/asm/uaccess.h:89:2: note: in expansion of macro 
>> '__get_user_check'
      89 |  __get_user_check((x), (ptr), sizeof(*(ptr)))
         |  ^~~~~~~~~~~~~~~~
>> arch/powerpc/kernel/vecemu.c:267:6: note: in expansion of macro 'get_user'
     267 |  if (get_user(instr, (unsigned int __user *) regs->nip))
         |      ^~~~~~~~
--
   In file included from include/linux/uaccess.h:11,
                    from arch/powerpc/include/asm/sections.h:7,
                    from include/linux/interrupt.h:20,
                    from arch/powerpc/include/asm/kvm_host.h:14,
                    from include/linux/kvm_host.h:36,
                    from arch/powerpc/kvm/../../../virt/kvm/vfio.c:11:
   arch/powerpc/kvm/../../../virt/kvm/vfio.c: In function 'kvm_vfio_set_group':
   arch/powerpc/include/asm/uaccess.h:328:2: warning: statement with no effect 
[-Wunused-value]
     328 |  __gu_err;       \
         |  ^~~~~~~~
>> arch/powerpc/include/asm/uaccess.h:89:2: note: in expansion of macro 
>> '__get_user_check'
      89 |  __get_user_check((x), (ptr), sizeof(*(ptr)))
         |  ^~~~~~~~~~~~~~~~
>> arch/powerpc/kvm/../../../virt/kvm/vfio.c:196:7: note: in expansion of macro 
>> 'get_user'
     196 |   if (get_user(fd, argp))
         |       ^~~~~~~~
   arch/powerpc/include/asm/uaccess.h:328:2: warning: statement with no effect 
[-Wunused-value]
     328 |  __gu_err;       \
         |  ^~~~~~~~
>> arch/powerpc/include/asm/uaccess.h:89:2: note: in expansion of macro 
>> '__get_user_check'
      89 |  __get_user_check((x), (ptr), sizeof(*(ptr)))
         |  ^~~~~~~~~~~~~~~~
   arch/powerpc/kvm/../../../virt/kvm/vfio.c:240:7: note: in expansion of macro 
'get_user'
     240 |   if (get_user(fd, argp))
         |       ^~~~~~~~
..

vim +/__get_user_check +89 arch/powerpc/include/asm/uaccess.h

2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29   64  
96d4f267e40f95 arch/powerpc/include/asm/uaccess.h Linus Torvalds         
2019-01-03   65  #define access_ok(addr, size)         \
4caf4ebfe4cf0e arch/powerpc/include/asm/uaccess.h Linus Torvalds         
2019-01-04   66        (__chk_user_ptr(addr),          \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29   67         __access_ok((__force unsigned long)(addr), (size), 
get_fs()))
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29   68  
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29   69  /*
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29   70   * These are the main single-value transfer routines.  They 
automatically
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29   71   * use the right size if we just have the right pointer type.
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29   72   *
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29   73   * This gets kind of ugly. We want to return _two_ values in 
"get_user()"
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29   74   * and yet we don't want to do any pointers, because that is 
too much
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29   75   * of a performance impact. Thus we have a few rather ugly 
macros here,
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29   76   * and hide all the ugliness from the user.
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29   77   *
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29   78   * The "__xxx" versions of the user access functions are 
versions that
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29   79   * do not verify the address space, that must have been done 
previously
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29   80   * with a separate "access_ok()" call (this is used when we do 
multiple
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29   81   * accesses to the same area of user memory).
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29   82   *
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29   83   * As we use the same address space for kernel and user data 
on the
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29   84   * PowerPC, we can just do these as direct assignments.  (Of 
course, the
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29   85   * exception handling means that it's no longer "just"...)
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29   86   *
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29   87   */
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29   88  #define get_user(x, ptr) \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  @89        __get_user_check((x), (ptr), sizeof(*(ptr)))
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29   90  #define put_user(x, ptr) \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  @91        __put_user_check((__typeof__(*(ptr)))(x), (ptr), 
sizeof(*(ptr)))
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29   92  
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29   93  #define __get_user(x, ptr) \
5cd623333e7cf4 arch/powerpc/include/asm/uaccess.h Christophe Leroy       
2020-01-24   94        __get_user_nocheck((x), (ptr), sizeof(*(ptr)), true)
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29   95  #define __put_user(x, ptr) \
5cd623333e7cf4 arch/powerpc/include/asm/uaccess.h Christophe Leroy       
2020-01-24   96        __put_user_nocheck((__typeof__(*(ptr)))(x), (ptr), 
sizeof(*(ptr)), true)
5cd623333e7cf4 arch/powerpc/include/asm/uaccess.h Christophe Leroy       
2020-01-24   97  
5cd623333e7cf4 arch/powerpc/include/asm/uaccess.h Christophe Leroy       
2020-01-24   98  #define __get_user_allowed(x, ptr) \
5cd623333e7cf4 arch/powerpc/include/asm/uaccess.h Christophe Leroy       
2020-01-24   99        __get_user_nocheck((x), (ptr), sizeof(*(ptr)), false)
5cd623333e7cf4 arch/powerpc/include/asm/uaccess.h Christophe Leroy       
2020-01-24  100  #define __put_user_allowed(x, ptr) \
5cd623333e7cf4 arch/powerpc/include/asm/uaccess.h Christophe Leroy       
2020-01-24  101        __put_user_nocheck((__typeof__(*(ptr)))(x), (ptr), 
sizeof(*(ptr)), false)
e68c825bb01670 include/asm-powerpc/uaccess.h      Benjamin Herrenschmidt 
2007-04-11  102  
e68c825bb01670 include/asm-powerpc/uaccess.h      Benjamin Herrenschmidt 
2007-04-11  103  #define __get_user_inatomic(x, ptr) \
e68c825bb01670 include/asm-powerpc/uaccess.h      Benjamin Herrenschmidt 
2007-04-11  104        __get_user_nosleep((x), (ptr), sizeof(*(ptr)))
e68c825bb01670 include/asm-powerpc/uaccess.h      Benjamin Herrenschmidt 
2007-04-11  105  #define __put_user_inatomic(x, ptr) \
e68c825bb01670 include/asm-powerpc/uaccess.h      Benjamin Herrenschmidt 
2007-04-11  106        __put_user_nosleep((__typeof__(*(ptr)))(x), (ptr), 
sizeof(*(ptr)))
e68c825bb01670 include/asm-powerpc/uaccess.h      Benjamin Herrenschmidt 
2007-04-11  107  
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  108  extern long __put_user_bad(void);
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  109  
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  110  /*
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  111   * We don't tell gcc that we are accessing memory, but this is 
OK
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  112   * because we do not write to any memory gcc knows about, so 
there
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  113   * are no aliasing issues.
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  114   */
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  115  #define __put_user_asm(x, addr, err, op)                      \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  116        __asm__ __volatile__(                                   \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  117                "1:     " op " %1,0(%2) # put_user\n"           \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  118                "2:\n"                                          \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  119                ".section .fixup,\"ax\"\n"                      \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  120                "3:     li %0,%3\n"                             \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  121                "       b 2b\n"                                 \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  122                ".previous\n"                                   \
24bfa6a9e0d4fe arch/powerpc/include/asm/uaccess.h Nicholas Piggin        
2016-10-13  123                EX_TABLE(1b, 3b)                                \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  124                : "=r" (err)                                    \
551c3c04b478b9 include/asm-powerpc/uaccess.h      Michael Ellerman       
2008-07-17  125                : "r" (x), "b" (addr), "i" (-EFAULT), "0" (err))
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  126  
5015b49448cbe5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-31  127  #ifdef __powerpc64__
5015b49448cbe5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-31  128  #define __put_user_asm2(x, ptr, retval)                        
       \
5015b49448cbe5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-31  129          __put_user_asm(x, ptr, retval, "std")
5015b49448cbe5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-31  130  #else /* __powerpc64__ */
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  131  #define __put_user_asm2(x, addr, err)                         \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  132        __asm__ __volatile__(                                   \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  133                "1:     stw %1,0(%2)\n"                         \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  134                "2:     stw %1+1,4(%2)\n"                       \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  135                "3:\n"                                          \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  136                ".section .fixup,\"ax\"\n"                      \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  137                "4:     li %0,%3\n"                             \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  138                "       b 3b\n"                                 \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  139                ".previous\n"                                   \
24bfa6a9e0d4fe arch/powerpc/include/asm/uaccess.h Nicholas Piggin        
2016-10-13  140                EX_TABLE(1b, 4b)                                \
24bfa6a9e0d4fe arch/powerpc/include/asm/uaccess.h Nicholas Piggin        
2016-10-13  141                EX_TABLE(2b, 4b)                                \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  142                : "=r" (err)                                    \
551c3c04b478b9 include/asm-powerpc/uaccess.h      Michael Ellerman       
2008-07-17  143                : "r" (x), "b" (addr), "i" (-EFAULT), "0" (err))
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  144  #endif /* __powerpc64__ */
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  145  
5cd623333e7cf4 arch/powerpc/include/asm/uaccess.h Christophe Leroy       
2020-01-24  146  #define __put_user_size_allowed(x, ptr, size, retval)         \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  147  do {                                                          \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  148        retval = 0;                                             \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  149        switch (size) {                                         \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  150          case 1: __put_user_asm(x, ptr, retval, "stb"); break; \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  151          case 2: __put_user_asm(x, ptr, retval, "sth"); break; \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  152          case 4: __put_user_asm(x, ptr, retval, "stw"); break; \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  153          case 8: __put_user_asm2(x, ptr, retval); break;       \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  154          default: __put_user_bad();                            \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  155        }                                                       \
5cd623333e7cf4 arch/powerpc/include/asm/uaccess.h Christophe Leroy       
2020-01-24  156  } while (0)
5cd623333e7cf4 arch/powerpc/include/asm/uaccess.h Christophe Leroy       
2020-01-24  157  
5cd623333e7cf4 arch/powerpc/include/asm/uaccess.h Christophe Leroy       
2020-01-24  158  #define __put_user_size(x, ptr, size, retval)                 \
5cd623333e7cf4 arch/powerpc/include/asm/uaccess.h Christophe Leroy       
2020-01-24  159  do {                                                          \
5cd623333e7cf4 arch/powerpc/include/asm/uaccess.h Christophe Leroy       
2020-01-24  160        allow_write_to_user(ptr, size);                         \
5cd623333e7cf4 arch/powerpc/include/asm/uaccess.h Christophe Leroy       
2020-01-24  161        __put_user_size_allowed(x, ptr, size, retval);          \
de78a9c42a7900 arch/powerpc/include/asm/uaccess.h Christophe Leroy       
2019-04-18  162        prevent_write_to_user(ptr, size);                       \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  163  } while (0)
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  164  
5cd623333e7cf4 arch/powerpc/include/asm/uaccess.h Christophe Leroy       
2020-01-24  165  #define __put_user_nocheck(x, ptr, size, do_allow)             
       \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  166  ({                                                            \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  167        long __pu_err;                                          \
6bfd93c32a5065 include/asm-powerpc/uaccess.h      Paul Mackerras         
2006-05-03  168        __typeof__(*(ptr)) __user *__pu_addr = (ptr);           \
fea87fb7a00046 arch/powerpc/include/asm/uaccess.h Nicholas Piggin        
2020-04-03  169        __typeof__(*(ptr)) __pu_val = (x);                      \
fea87fb7a00046 arch/powerpc/include/asm/uaccess.h Nicholas Piggin        
2020-04-03  170        __typeof__(size) __pu_size = (size);                    \
fea87fb7a00046 arch/powerpc/include/asm/uaccess.h Nicholas Piggin        
2020-04-03  171                                                                \
6bfd93c32a5065 include/asm-powerpc/uaccess.h      Paul Mackerras         
2006-05-03  172        if (!is_kernel_addr((unsigned long)__pu_addr))          \
1af1717dbf96eb arch/powerpc/include/asm/uaccess.h Michael S. Tsirkin     
2013-05-26  173                might_fault();                                  \
fea87fb7a00046 arch/powerpc/include/asm/uaccess.h Nicholas Piggin        
2020-04-03  174        __chk_user_ptr(__pu_addr);                              \
5cd623333e7cf4 arch/powerpc/include/asm/uaccess.h Christophe Leroy       
2020-01-24  175        if (do_allow)                                            
               \
fea87fb7a00046 arch/powerpc/include/asm/uaccess.h Nicholas Piggin        
2020-04-03  176                __put_user_size(__pu_val, __pu_addr, __pu_size, 
__pu_err);      \
5cd623333e7cf4 arch/powerpc/include/asm/uaccess.h Christophe Leroy       
2020-01-24  177        else                                                     
               \
fea87fb7a00046 arch/powerpc/include/asm/uaccess.h Nicholas Piggin        
2020-04-03  178                __put_user_size_allowed(__pu_val, __pu_addr, 
__pu_size, __pu_err); \
fea87fb7a00046 arch/powerpc/include/asm/uaccess.h Nicholas Piggin        
2020-04-03  179                                                                \
958106a072021d arch/powerpc/include/asm/uaccess.h Nicholas Piggin        
2020-04-03  180        __builtin_expect(__pu_err, 0);                          \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  181  })
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  182  
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  183  #define __put_user_check(x, ptr, size)                         
               \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  184  ({                                                             
       \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  185        long __pu_err = -EFAULT;                                 
       \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  186        __typeof__(*(ptr)) __user *__pu_addr = (ptr);            
       \
fea87fb7a00046 arch/powerpc/include/asm/uaccess.h Nicholas Piggin        
2020-04-03  187        __typeof__(*(ptr)) __pu_val = (x);                       
       \
fea87fb7a00046 arch/powerpc/include/asm/uaccess.h Nicholas Piggin        
2020-04-03  188        __typeof__(size) __pu_size = (size);                     
       \
fea87fb7a00046 arch/powerpc/include/asm/uaccess.h Nicholas Piggin        
2020-04-03  189                                                                 
       \
1af1717dbf96eb arch/powerpc/include/asm/uaccess.h Michael S. Tsirkin     
2013-05-26  190        might_fault();                                           
       \
fea87fb7a00046 arch/powerpc/include/asm/uaccess.h Nicholas Piggin        
2020-04-03  191        if (access_ok(__pu_addr, __pu_size))                     
       \
fea87fb7a00046 arch/powerpc/include/asm/uaccess.h Nicholas Piggin        
2020-04-03  192                __put_user_size(__pu_val, __pu_addr, __pu_size, 
__pu_err); \
fea87fb7a00046 arch/powerpc/include/asm/uaccess.h Nicholas Piggin        
2020-04-03  193                                                                 
       \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29 @194        __pu_err;                                                
       \
958106a072021d arch/powerpc/include/asm/uaccess.h Nicholas Piggin        
2020-04-03  195        __builtin_expect(__pu_err, 0);                           
       \
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  196  })
2df5e8bcca53e5 include/asm-powerpc/uaccess.h      Stephen Rothwell       
2005-10-29  197  

:::::: The code at line 89 was first introduced by commit
:::::: 2df5e8bcca53e528a78ee0e3b114d0d21dd6d043 powerpc: merge uaccess.h

:::::: TO: Stephen Rothwell <s...@canb.auug.org.au>
:::::: CC: Stephen Rothwell <s...@canb.auug.org.au>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

Reply via email to