Hi Michael, Thank you for the patch! Yet something to improve: [auto build test ERROR on v4.16-rc4] [also build test ERROR on next-20180319] [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/Tautschnig-Michael/x86-sigreturn-use-SYSCALL_DEFINE0/20180316-110516 config: i386-allyesconfig (attached as .config) compiler: gcc-7 (Debian 7.3.0-1) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=i386 All errors (new ones prefixed by >>): >> arch/x86//kernel/signal.c:605:1691: error: conflicting types for 'sys_sigreturn' SYSCALL_DEFINE0(sigreturn) ^ In file included from arch/x86//kernel/signal.c:45:0: arch/x86/include/asm/syscalls.h:37:44: note: previous declaration of 'sys_sigreturn' was here asmlinkage unsigned long sys_sigreturn(void); ^~ vim +/sys_sigreturn +605 arch/x86//kernel/signal.c 600 601 /* 602 * Do a signal return; undo the signal stack. 603 */ 604 #ifdef CONFIG_X86_32 > 605 SYSCALL_DEFINE0(sigreturn) 606 { 607 struct pt_regs *regs = current_pt_regs(); 608 struct sigframe __user *frame; 609 sigset_t set; 610 611 frame = (struct sigframe __user *)(regs->sp - 8); 612 613 if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) 614 goto badframe; 615 if (__get_user(set.sig[0], &frame->sc.oldmask) || (_NSIG_WORDS > 1 616 && __copy_from_user(&set.sig[1], &frame->extramask, 617 sizeof(frame->extramask)))) 618 goto badframe; 619 620 set_current_blocked(&set); 621 622 /* 623 * x86_32 has no uc_flags bits relevant to restore_sigcontext. 624 * Save a few cycles by skipping the __get_user. 625 */ 626 if (restore_sigcontext(regs, &frame->sc, 0)) 627 goto badframe; 628 return regs->ax; 629 630 badframe: 631 signal_fault(regs, frame, "sigreturn"); 632 633 return 0; 634 } 635 #endif /* CONFIG_X86_32 */ 636 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip