[PATCH 2/2] powerpc: tm: Always reclaim in start_thread() for exec() class syscalls

kbuild test robot lkp at intel.com
Wed Jun 15 18:16:09 AEST 2016


Hi,

[auto build test ERROR on powerpc/next]
[also build test ERROR on v4.7-rc3 next-20160615]
[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/Cyril-Bur/selftests-powerpc-exec-with-suspended-transaction/20160615-144928
base:   https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
config: powerpc-tqm8560_defconfig (attached as .config)
compiler: powerpc-linux-gnu-gcc (Debian 5.3.1-8) 5.3.1 20160205
reproduce:
        wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=powerpc 

All error/warnings (new ones prefixed by >>):

   In file included from arch/powerpc/include/asm/processor.h:13:0,
                    from arch/powerpc/include/asm/thread_info.h:33,
                    from include/linux/thread_info.h:54,
                    from include/asm-generic/preempt.h:4,
                    from arch/powerpc/include/generated/asm/preempt.h:1,
                    from include/linux/preempt.h:59,
                    from include/linux/spinlock.h:50,
                    from include/linux/seqlock.h:35,
                    from include/linux/time.h:5,
                    from include/uapi/linux/timex.h:56,
                    from include/linux/timex.h:56,
                    from include/linux/sched.h:19,
                    from arch/powerpc/kernel/process.c:18:
   arch/powerpc/kernel/process.c: In function 'start_thread':
>> arch/powerpc/include/asm/reg.h:64:23: error: left shift count >= width of type [-Werror=shift-count-overflow]
    #define __MASK(X) (1UL<<(X))
                          ^
>> arch/powerpc/include/asm/reg.h:116:18: note: in expansion of macro '__MASK'
    #define MSR_TS_T __MASK(MSR_TS_T_LG) /*  Transaction Transactional */
                     ^
>> arch/powerpc/include/asm/reg.h:117:22: note: in expansion of macro 'MSR_TS_T'
    #define MSR_TS_MASK (MSR_TS_T | MSR_TS_S)   /* Transaction State bits */
                         ^
>> arch/powerpc/include/asm/reg.h:121:37: note: in expansion of macro 'MSR_TS_MASK'
    #define MSR_TM_SUSPENDED(x) (((x) & MSR_TS_MASK) == MSR_TS_S)
                                        ^
>> arch/powerpc/kernel/process.c:1517:6: note: in expansion of macro 'MSR_TM_SUSPENDED'
     if (MSR_TM_SUSPENDED(mfmsr()))
         ^
>> arch/powerpc/include/asm/reg.h:64:23: error: left shift count >= width of type [-Werror=shift-count-overflow]
    #define __MASK(X) (1UL<<(X))
                          ^
   arch/powerpc/include/asm/reg.h:115:18: note: in expansion of macro '__MASK'
    #define MSR_TS_S __MASK(MSR_TS_S_LG) /*  Transaction Suspended */
                     ^
>> arch/powerpc/include/asm/reg.h:117:33: note: in expansion of macro 'MSR_TS_S'
    #define MSR_TS_MASK (MSR_TS_T | MSR_TS_S)   /* Transaction State bits */
                                    ^
>> arch/powerpc/include/asm/reg.h:121:37: note: in expansion of macro 'MSR_TS_MASK'
    #define MSR_TM_SUSPENDED(x) (((x) & MSR_TS_MASK) == MSR_TS_S)
                                        ^
>> arch/powerpc/kernel/process.c:1517:6: note: in expansion of macro 'MSR_TM_SUSPENDED'
     if (MSR_TM_SUSPENDED(mfmsr()))
         ^
>> arch/powerpc/include/asm/reg.h:64:23: error: left shift count >= width of type [-Werror=shift-count-overflow]
    #define __MASK(X) (1UL<<(X))
                          ^
   arch/powerpc/include/asm/reg.h:115:18: note: in expansion of macro '__MASK'
    #define MSR_TS_S __MASK(MSR_TS_S_LG) /*  Transaction Suspended */
                     ^
   arch/powerpc/include/asm/reg.h:121:53: note: in expansion of macro 'MSR_TS_S'
    #define MSR_TM_SUSPENDED(x) (((x) & MSR_TS_MASK) == MSR_TS_S)
                                                        ^
>> arch/powerpc/kernel/process.c:1517:6: note: in expansion of macro 'MSR_TM_SUSPENDED'
     if (MSR_TM_SUSPENDED(mfmsr()))
         ^
   cc1: all warnings being treated as errors

vim +/MSR_TM_SUSPENDED +1517 arch/powerpc/kernel/process.c

  1501	#endif
  1502	
  1503		/*
  1504		 * If we exec out of a kernel thread then thread.regs will not be
  1505		 * set.  Do it now.
  1506		 */
  1507		if (!current->thread.regs) {
  1508			struct pt_regs *regs = task_stack_page(current) + THREAD_SIZE;
  1509			current->thread.regs = regs - 1;
  1510		}
  1511	
  1512		/*
  1513		 * Clear any transactional state, we're exec()ing. The cause is
  1514		 * not important as there will never be a recheckpoint so it's not
  1515		 * user visible.
  1516		 */
> 1517		if (MSR_TM_SUSPENDED(mfmsr()))
  1518			tm_reclaim_current(0);
  1519	
  1520		memset(regs->gpr, 0, sizeof(regs->gpr));
  1521		regs->ctr = 0;
  1522		regs->link = 0;
  1523		regs->xer = 0;
  1524		regs->ccr = 0;
  1525		regs->gpr[1] = sp;

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/octet-stream
Size: 7751 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20160615/99eb5830/attachment-0001.obj>


More information about the Linuxppc-dev mailing list