Hi Nicholas,

I love your patch! Yet something to improve:

[auto build test ERROR on powerpc/next]
[also build test ERROR on v5.6-rc3 next-20200228]
[cannot apply to kvm-ppc/kvm-ppc-next scottwood/next]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    
https://github.com/0day-ci/linux/commits/Nicholas-Piggin/powerpc-64-interrupts-and-syscalls-series/20200226-043224
base:   https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
config: powerpc-ppc64e_defconfig (attached as .config)
compiler: powerpc64-linux-gcc (GCC) 7.5.0
reproduce:
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.5.0 make.cross ARCH=powerpc 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <l...@intel.com>

All errors (new ones prefixed by >>):

   arch/powerpc/kernel/entry_64.S: Assembler messages:
>> arch/powerpc/kernel/entry_64.S:67: Error: unrecognized opcode: 
>> `interrupt_to_kernel'
>> arch/powerpc/kernel/entry_64.S:164: Error: unrecognized opcode: 
>> `rfscv_to_user'

vim +67 arch/powerpc/kernel/entry_64.S

    47  
    48  /*
    49   * System calls.
    50   */
    51          .section        ".toc","aw"
    52  SYS_CALL_TABLE:
    53          .tc sys_call_table[TC],sys_call_table
    54  
    55  COMPAT_SYS_CALL_TABLE:
    56          .tc compat_sys_call_table[TC],compat_sys_call_table
    57  
    58  /* This value is used to mark exception frames on the stack. */
    59  exception_marker:
    60          .tc     ID_EXC_MARKER[TC],STACK_FRAME_REGS_MARKER
    61  
    62          .section        ".text"
    63          .align 7
    64  
    65          .globl system_call_vectored_common
    66  system_call_vectored_common:
  > 67          INTERRUPT_TO_KERNEL
    68          mr      r10,r1
    69          ld      r1,PACAKSAVE(r13)
    70          std     r10,0(r1)
    71          std     r11,_NIP(r1)
    72          std     r12,_MSR(r1)
    73          std     r0,GPR0(r1)
    74          std     r10,GPR1(r1)
    75          std     r2,GPR2(r1)
    76          ld      r2,PACATOC(r13)
    77          mfcr    r12
    78          li      r11,0
    79          /* Can we avoid saving r3-r8 in common case? */
    80          std     r3,GPR3(r1)
    81          std     r4,GPR4(r1)
    82          std     r5,GPR5(r1)
    83          std     r6,GPR6(r1)
    84          std     r7,GPR7(r1)
    85          std     r8,GPR8(r1)
    86          /* Zero r9-r12, this should only be required when restoring all 
GPRs */
    87          std     r11,GPR9(r1)
    88          std     r11,GPR10(r1)
    89          std     r11,GPR11(r1)
    90          std     r11,GPR12(r1)
    91          std     r9,GPR13(r1)
    92          SAVE_NVGPRS(r1)
    93          std     r11,_XER(r1)
    94          std     r11,_LINK(r1)
    95          std     r11,_CTR(r1)
    96  
    97          li      r11,0xc00
    98          std     r11,_TRAP(r1)
    99          std     r12,_CCR(r1)
   100          std     r3,ORIG_GPR3(r1)
   101          addi    r10,r1,STACK_FRAME_OVERHEAD
   102          ld      r11,exception_marker@toc(r2)
   103          std     r11,-16(r10)            /* "regshere" marker */
   104  
   105          /*
   106           * RECONCILE_IRQ_STATE without calling trace_hardirqs_off(), 
which
   107           * would clobber syscall parameters. Also we always enter with 
IRQs
   108           * enabled and nothing pending. system_call_exception() will 
call
   109           * trace_hardirqs_off().
   110           *
   111           * scv enters with MSR[EE]=1, so don't set PACA_IRQ_HARD_DIS.
   112           */
   113          li      r9,IRQS_ALL_DISABLED
   114          stb     r9,PACAIRQSOFTMASK(r13)
   115  
   116          /* Calling convention has r9 = orig r0, r10 = regs */
   117          mr      r9,r0
   118          bl      system_call_exception
   119  
   120  .Lsyscall_vectored_exit:
   121          addi    r4,r1,STACK_FRAME_OVERHEAD
   122          li      r5,1 /* scv */
   123          bl      syscall_exit_prepare
   124  
   125          ld      r2,_CCR(r1)
   126          ld      r4,_NIP(r1)
   127          ld      r5,_MSR(r1)
   128  
   129  BEGIN_FTR_SECTION
   130          stdcx.  r0,0,r1                 /* to clear the reservation */
   131  END_FTR_SECTION_IFCLR(CPU_FTR_STCX_CHECKS_ADDRESS)
   132  
   133          mtlr    r4
   134          mtctr   r5
   135  
   136          cmpdi   r3,0
   137          bne     syscall_vectored_restore_regs
   138          li      r0,0
   139          li      r4,0
   140          li      r5,0
   141          li      r6,0
   142          li      r7,0
   143          li      r8,0
   144          li      r9,0
   145          li      r10,0
   146          li      r11,0
   147          li      r12,0
   148          mtspr   SPRN_XER,r0
   149  .Lsyscall_vectored_restore_regs_cont:
   150  
   151  BEGIN_FTR_SECTION
   152          HMT_MEDIUM_LOW
   153  END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
   154  
   155          /*
   156           * We don't need to restore AMR on the way back to userspace 
for KUAP.
   157           * The value of AMR only matters while we're in the kernel.
   158           */
   159          mtcr    r2
   160          ld      r2,GPR2(r1)
   161          ld      r3,GPR3(r1)
   162          ld      r13,GPR13(r1)
   163          ld      r1,GPR1(r1)
 > 164          RFSCV_TO_USER
   165          b       .       /* prevent speculative execution */
   166  _ASM_NOKPROBE_SYMBOL(system_call_vectored_common);
   167  
   168  syscall_vectored_restore_regs:
   169          ld      r4,_XER(r1)
   170          REST_NVGPRS(r1)
   171          mtspr   SPRN_XER,r4
   172          ld      r0,GPR0(r1)
   173          REST_8GPRS(4, r1)
   174          ld      r12,GPR12(r1)
   175          b       .Lsyscall_vectored_restore_regs_cont
   176  
   177          .balign IFETCH_ALIGN_BYTES
   178          .globl system_call_common
   179  system_call_common:
   180  _ASM_NOKPROBE_SYMBOL(system_call_common)
   181          mr      r10,r1
   182          ld      r1,PACAKSAVE(r13)
   183          std     r10,0(r1)
   184          std     r11,_NIP(r1)
   185          std     r12,_MSR(r1)
   186          std     r0,GPR0(r1)
   187          std     r10,GPR1(r1)
   188          std     r2,GPR2(r1)
   189  #ifdef CONFIG_PPC_FSL_BOOK3E
   190  START_BTB_FLUSH_SECTION
   191          BTB_FLUSH(r10)
   192  END_BTB_FLUSH_SECTION
   193  #endif
   194          ld      r2,PACATOC(r13)
   195          mfcr    r12
   196          li      r11,0
   197          /* Can we avoid saving r3-r8 in common case? */
   198          std     r3,GPR3(r1)
   199          std     r4,GPR4(r1)
   200          std     r5,GPR5(r1)
   201          std     r6,GPR6(r1)
   202          std     r7,GPR7(r1)
   203          std     r8,GPR8(r1)
   204          /* Zero r9-r12, this should only be required when restoring all 
GPRs */
   205          std     r11,GPR9(r1)
   206          std     r11,GPR10(r1)
   207          std     r11,GPR11(r1)
   208          std     r11,GPR12(r1)
   209          std     r9,GPR13(r1)
   210          SAVE_NVGPRS(r1)
   211          std     r11,_XER(r1)
   212          std     r11,_CTR(r1)
   213          mflr    r10
   214  
   215          /*
   216           * This clears CR0.SO (bit 28), which is the error indication on
   217           * return from this system call.
   218           */
   219          rldimi  r12,r11,28,(63-28)
   220          li      r11,0xc00
   221          std     r10,_LINK(r1)
   222          std     r11,_TRAP(r1)
   223          std     r12,_CCR(r1)
   224          std     r3,ORIG_GPR3(r1)
   225          addi    r10,r1,STACK_FRAME_OVERHEAD
   226          ld      r11,exception_marker@toc(r2)
   227          std     r11,-16(r10)            /* "regshere" marker */
   228  
   229          /*
   230           * RECONCILE_IRQ_STATE without calling trace_hardirqs_off(), 
which
   231           * would clobber syscall parameters. Also we always enter with 
IRQs
   232           * enabled and nothing pending. system_call_exception() will 
call
   233           * trace_hardirqs_off().
   234           */
   235          li      r11,IRQS_ALL_DISABLED
   236          li      r12,PACA_IRQ_HARD_DIS
   237          stb     r11,PACAIRQSOFTMASK(r13)
   238          stb     r12,PACAIRQHAPPENED(r13)
   239  
   240          /* Calling convention has r9 = orig r0, r10 = regs */
   241          mr      r9,r0
   242          bl      system_call_exception
   243  

---
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