Re: [PATCH?] powerpc: Hard wire PT_SOFTE value to 1 in gpr_get() too
From: kbuild test robot
Date: Tue Sep 17 2019 - 10:10:28 EST
Hi Oleg,
I love your patch! Yet something to improve:
[auto build test ERROR on linus/master]
[cannot apply to v5.3 next-20190916]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Oleg-Nesterov/powerpc-Hard-wire-PT_SOFTE-value-to-1-in-gpr_get-too/20190917-201613
config: powerpc-allmodconfig (attached as .config)
compiler: powerpc64-linux-gcc (GCC) 7.4.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=7.4.0 make.cross ARCH=powerpc
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@xxxxxxxxx>
All errors (new ones prefixed by >>):
arch/powerpc/kernel/ptrace.c: In function 'gpr_get':
>> arch/powerpc/kernel/ptrace.c:375:58: error: 'msr' undeclared (first use in this function)
ret = user_regset_copyout(&pos, &count, &kbuf, &ubuf, &msr,
^~~
arch/powerpc/kernel/ptrace.c:375:58: note: each undeclared identifier is reported only once for each function it appears in
vim +/msr +375 arch/powerpc/kernel/ptrace.c
336
337 static int gpr_get(struct task_struct *target, const struct user_regset *regset,
338 unsigned int pos, unsigned int count,
339 void *kbuf, void __user *ubuf)
340 {
341 int i, ret;
342
343 if (target->thread.regs == NULL)
344 return -EIO;
345
346 if (!FULL_REGS(target->thread.regs)) {
347 /* We have a partial register set. Fill 14-31 with bogus values */
348 for (i = 14; i < 32; i++)
349 target->thread.regs->gpr[i] = NV_REG_POISON;
350 }
351
352 ret = user_regset_copyout(&pos, &count, &kbuf, &ubuf,
353 target->thread.regs,
354 0, offsetof(struct pt_regs, msr));
355 if (!ret) {
356 unsigned long msr = get_user_msr(target);
357 ret = user_regset_copyout(&pos, &count, &kbuf, &ubuf, &msr,
358 offsetof(struct pt_regs, msr),
359 offsetof(struct pt_regs, msr) +
360 sizeof(msr));
361 }
362
363 BUILD_BUG_ON(offsetof(struct pt_regs, orig_gpr3) !=
364 offsetof(struct pt_regs, msr) + sizeof(long));
365
366 #ifdef CONFIG_PPC64
367 if (!ret)
368 ret = user_regset_copyout(&pos, &count, &kbuf, &ubuf,
369 &target->thread.regs->orig_gpr3,
370 offsetof(struct pt_regs, orig_gpr3),
371 offsetof(struct pt_regs, softe));
372
373 if (!ret) {
374 unsigned long softe = 0x1;
> 375 ret = user_regset_copyout(&pos, &count, &kbuf, &ubuf, &msr,
376 offsetof(struct pt_regs, softe),
377 offsetof(struct pt_regs, softe) +
378 sizeof(softe));
379 }
380
381 BUILD_BUG_ON(offsetof(struct pt_regs, trap) !=
382 offsetof(struct pt_regs, softe) + sizeof(long));
383
384 if (!ret)
385 ret = user_regset_copyout(&pos, &count, &kbuf, &ubuf,
386 &target->thread.regs->trap,
387 offsetof(struct pt_regs, trap),
388 sizeof(struct user_pt_regs));
389 #else
390 if (!ret)
391 ret = user_regset_copyout(&pos, &count, &kbuf, &ubuf,
392 &target->thread.regs->orig_gpr3,
393 offsetof(struct pt_regs, orig_gpr3),
394 sizeof(struct user_pt_regs));
395 #endif
396 if (!ret)
397 ret = user_regset_copyout_zero(&pos, &count, &kbuf, &ubuf,
398 sizeof(struct user_pt_regs), -1);
399
400 return ret;
401 }
402
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip