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 <l...@intel.com>

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-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

Reply via email to