Hi Nicholas, I love your patch! Perhaps something to improve: [auto build test WARNING on powerpc/next] [also build test WARNING on v5.11-rc4 next-20210120] [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] url: https://github.com/0day-ci/linux/commits/Nicholas-Piggin/powerpc-interrupt-wrappers/20210116-023244 base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next config: powerpc-randconfig-r035-20210120 (attached as .config) compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 22b68440e1647e16b5ee24b924986207173c02d1) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install powerpc cross compiling tool for clang build # apt-get install binutils-powerpc-linux-gnu # https://github.com/0day-ci/linux/commit/04d5131f1545e1e992962a5339135b605eb421a5 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Nicholas-Piggin/powerpc-interrupt-wrappers/20210116-023244 git checkout 04d5131f1545e1e992962a5339135b605eb421a5 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): >> arch/powerpc/mm/book3s64/hash_utils.c:1516:30: warning: no previous prototype for function '__do_hash_fault' [-Wmissing-prototypes] DEFINE_INTERRUPT_HANDLER_RET(__do_hash_fault) ^ arch/powerpc/mm/book3s64/hash_utils.c:1516:1: note: declare 'static' if the function is not intended to be used outside of this translation unit DEFINE_INTERRUPT_HANDLER_RET(__do_hash_fault) ^ arch/powerpc/include/asm/interrupt.h:150:19: note: expanded from macro 'DEFINE_INTERRUPT_HANDLER_RET' __visible noinstr long func(struct pt_regs *regs) \ ^ arch/powerpc/mm/book3s64/hash_utils.c:1905:6: warning: no previous prototype for function 'hpte_insert_repeating' [-Wmissing-prototypes] long hpte_insert_repeating(unsigned long hash, unsigned long vpn, ^ arch/powerpc/mm/book3s64/hash_utils.c:1905:1: note: declare 'static' if the function is not intended to be used outside of this translation unit long hpte_insert_repeating(unsigned long hash, unsigned long vpn, ^ static 2 warnings generated. vim +/__do_hash_fault +1516 arch/powerpc/mm/book3s64/hash_utils.c 1515 > 1516 DEFINE_INTERRUPT_HANDLER_RET(__do_hash_fault) 1517 { 1518 unsigned long ea = regs->dar; 1519 unsigned long dsisr = regs->dsisr; 1520 unsigned long access = _PAGE_PRESENT | _PAGE_READ; 1521 unsigned long flags = 0; 1522 struct mm_struct *mm; 1523 unsigned int region_id; 1524 long err; 1525 1526 region_id = get_region_id(ea); 1527 if ((region_id == VMALLOC_REGION_ID) || (region_id == IO_REGION_ID)) 1528 mm = &init_mm; 1529 else 1530 mm = current->mm; 1531 1532 if (dsisr & DSISR_NOHPTE) 1533 flags |= HPTE_NOHPTE_UPDATE; 1534 1535 if (dsisr & DSISR_ISSTORE) 1536 access |= _PAGE_WRITE; 1537 /* 1538 * We set _PAGE_PRIVILEGED only when 1539 * kernel mode access kernel space. 1540 * 1541 * _PAGE_PRIVILEGED is NOT set 1542 * 1) when kernel mode access user space 1543 * 2) user space access kernel space. 1544 */ 1545 access |= _PAGE_PRIVILEGED; 1546 if (user_mode(regs) || (region_id == USER_REGION_ID)) 1547 access &= ~_PAGE_PRIVILEGED; 1548 1549 if (regs->trap == 0x400) 1550 access |= _PAGE_EXEC; 1551 1552 err = hash_page_mm(mm, ea, access, regs->trap, flags); 1553 if (unlikely(err < 0)) { 1554 // failed to instert a hash PTE due to an hypervisor error 1555 if (user_mode(regs)) { 1556 if (IS_ENABLED(CONFIG_PPC_SUBPAGE_PROT) && err == -2) 1557 _exception(SIGSEGV, regs, SEGV_ACCERR, ea); 1558 else 1559 _exception(SIGBUS, regs, BUS_ADRERR, ea); 1560 } else { 1561 bad_page_fault(regs, SIGBUS); 1562 } 1563 err = 0; 1564 } 1565 1566 return err; 1567 } 1568 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org