Hi Christophe,

kernel test robot noticed the following build errors:

[auto build test ERROR on powerpc/next]
[also build test ERROR on powerpc/fixes linus/master v6.4-rc7 next-20230621]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    
https://github.com/intel-lab-lkp/linux/commits/Christophe-Leroy/powerpc-ptrace-Split-gpr32_set_common/20230621-183932
base:   https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
patch link:    
https://lore.kernel.org/r/3086d189fa629e6c7bf800832921669450cc09bf.1687343697.git.christophe.leroy%40csgroup.eu
patch subject: [PATCH] powerpc/ptrace: Split gpr32_set_common
config: powerpc-allnoconfig 
(https://download.01.org/0day-ci/archive/20230621/202306211940.y4kihsei-...@intel.com/config)
compiler: powerpc-linux-gcc (GCC) 12.3.0
reproduce: 
(https://download.01.org/0day-ci/archive/20230621/202306211940.y4kihsei-...@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <l...@intel.com>
| Closes: 
https://lore.kernel.org/oe-kbuild-all/202306211940.y4kihsei-...@intel.com/

All errors (new ones prefixed by >>):

>> arch/powerpc/kernel/ptrace/ptrace-view.c:719:5: error: no previous prototype 
>> for 'gpr32_set_common_kernel' [-Werror=missing-prototypes]
     719 | int gpr32_set_common_kernel(struct task_struct *target,
         |     ^~~~~~~~~~~~~~~~~~~~~~~
>> arch/powerpc/kernel/ptrace/ptrace-view.c:757:5: error: no previous prototype 
>> for 'gpr32_set_common_user' [-Werror=missing-prototypes]
     757 | int gpr32_set_common_user(struct task_struct *target,
         |     ^~~~~~~~~~~~~~~~~~~~~
   cc1: all warnings being treated as errors


vim +/gpr32_set_common_kernel +719 arch/powerpc/kernel/ptrace/ptrace-view.c

   718  
 > 719  int gpr32_set_common_kernel(struct task_struct *target,
   720                              const struct user_regset *regset,
   721                              unsigned int pos, unsigned int count,
   722                              const void *kbuf, unsigned long *regs)
   723  {
   724          const compat_ulong_t *k = kbuf;
   725  
   726          pos /= sizeof(compat_ulong_t);
   727          count /= sizeof(compat_ulong_t);
   728  
   729          for (; count > 0 && pos < PT_MSR; --count)
   730                  regs[pos++] = *k++;
   731  
   732          if (count > 0 && pos == PT_MSR) {
   733                  set_user_msr(target, *k++);
   734                  ++pos;
   735                  --count;
   736          }
   737  
   738          for (; count > 0 && pos <= PT_MAX_PUT_REG; --count)
   739                  regs[pos++] = *k++;
   740          for (; count > 0 && pos < PT_TRAP; --count, ++pos)
   741                  ++k;
   742  
   743          if (count > 0 && pos == PT_TRAP) {
   744                  set_user_trap(target, *k++);
   745                  ++pos;
   746                  --count;
   747          }
   748  
   749          kbuf = k;
   750          pos *= sizeof(compat_ulong_t);
   751          count *= sizeof(compat_ulong_t);
   752          user_regset_copyin_ignore(&pos, &count, &kbuf, NULL,
   753                                    (PT_TRAP + 1) * 
sizeof(compat_ulong_t), -1);
   754          return 0;
   755  }
   756  
 > 757  int gpr32_set_common_user(struct task_struct *target,
   758                            const struct user_regset *regset,
   759                            unsigned int pos, unsigned int count,
   760                            const void __user *ubuf, unsigned long *regs)
   761  {
   762          const compat_ulong_t __user *u = ubuf;
   763          compat_ulong_t reg;
   764  
   765          if (!user_read_access_begin(u, count))
   766                  return -EFAULT;
   767  
   768          pos /= sizeof(reg);
   769          count /= sizeof(reg);
   770  
   771          for (; count > 0 && pos < PT_MSR; --count) {
   772                  unsafe_get_user(reg, u++, Efault);
   773                  regs[pos++] = reg;
   774          }
   775  
   776          if (count > 0 && pos == PT_MSR) {
   777                  unsafe_get_user(reg, u++, Efault);
   778                  set_user_msr(target, reg);
   779                  ++pos;
   780                  --count;
   781          }
   782  
   783          for (; count > 0 && pos <= PT_MAX_PUT_REG; --count) {
   784                  unsafe_get_user(reg, u++, Efault);
   785                  regs[pos++] = reg;
   786          }
   787          for (; count > 0 && pos < PT_TRAP; --count, ++pos)
   788                  unsafe_get_user(reg, u++, Efault);
   789  
   790          if (count > 0 && pos == PT_TRAP) {
   791                  unsafe_get_user(reg, u++, Efault);
   792                  set_user_trap(target, reg);
   793                  ++pos;
   794                  --count;
   795          }
   796          user_read_access_end();
   797  
   798          ubuf = u;
   799          pos *= sizeof(reg);
   800          count *= sizeof(reg);
   801          user_regset_copyin_ignore(&pos, &count, NULL, &ubuf,
   802                                    (PT_TRAP + 1) * sizeof(reg), -1);
   803          return 0;
   804  
   805  Efault:
   806          user_read_access_end();
   807          return -EFAULT;
   808  }
   809  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Reply via email to