Subject: Re: [PATCH 03/18] powerpc: bad_page_fault, do_break get registers from regs

From: kernel test robot <[email-masked]>
Date: Fri, 6 Nov 2020 04:43:19 +0800

Hi Nicholas,

I love your patch! Yet something to improve:

[auto build test ERROR on powerpc/next]
[also build test ERROR on v5.10-rc2 next-20201105]
[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/20201105-231909
base:   https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
config: powerpc-allnoconfig (attached as .config)
compiler: powerpc-linux-gcc (GCC) 9.3.0
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
        # https://github.com/0day-ci/linux/commit/4232a616cd2a8f7ef6b3f19cd656690dc5ec4c9e
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Nicholas-Piggin/powerpc-interrupt-wrappers/20201105-231909
        git checkout 4232a616cd2a8f7ef6b3f19cd656690dc5ec4c9e
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=powerpc 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email-masked]>

All errors (new ones prefixed by >>):

   In file included from include/asm-generic/bug.h:5,
                    from arch/powerpc/include/asm/bug.h:109,
                    from include/linux/bug.h:5,
                    from include/linux/signal.h:5,
                    from arch/powerpc/mm/fault.c:14:
   arch/powerpc/mm/fault.c: In function '__do_page_fault':
>> arch/powerpc/mm/fault.c:378:43: error: suggest parentheses around arithmetic in operand of '|' [-Werror=parentheses]
     378 | #define page_fault_is_bad(__err) ((__err) & DSISR_BAD_FAULT_32S | DSISR_DABRMATCH)
   include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
      78 | # define unlikely(x) __builtin_expect(!!(x), 0)
         |                                          ^
   arch/powerpc/mm/fault.c:410:15: note: in expansion of macro 'page_fault_is_bad'
     410 |  if (unlikely(page_fault_is_bad(error_code))) {
         |               ^~~~~~~~~~~~~~~~~
   cc1: all warnings being treated as errors

vim +378 arch/powerpc/mm/fault.c

   361	
   362	/*
   363	 * Define the correct "is_write" bit in error_code based
   364	 * on the processor family
   365	 */
   366	#if (defined(CONFIG_4xx) || defined(CONFIG_BOOKE))
   367	#define page_fault_is_write(__err)	((__err) & ESR_DST)
   368	#define page_fault_is_bad(__err)	(0)
   369	#else
   370	#define page_fault_is_write(__err)	((__err) & DSISR_ISSTORE)
   371	#if defined(CONFIG_PPC_8xx)
   372	#define page_fault_is_bad(__err)	((__err) & DSISR_NOEXEC_OR_G)
   373	#elif defined(CONFIG_PPC_BOOK3S_64)
   374	#define page_fault_is_bad(__err)	((__err) & (DSISR_BAD_FAULT_64S | DSISR_DABRMATCH))
   375	#elif defined(CONFIG_PPC_BOOK3E_64)
   376	#define page_fault_is_bad(__err)	((__err) & DSISR_BAD_FAULT_64S)
   377	#else
 > 378	#define page_fault_is_bad(__err)	((__err) & DSISR_BAD_FAULT_32S | DSISR_DABRMATCH)
   379	#endif
   380	#endif
   381	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email-masked]