Re: [PATCH 1/2] powerpc/32s: Do kuep_lock() and kuep_unlock() in assembly

From: kernel test robot
Date: Fri Jul 09 2021 - 08:56:49 EST


Hi Christophe,

I love your patch! Yet something to improve:

[auto build test ERROR on powerpc/next]
[also build test ERROR on next-20210709]
[cannot apply to v5.13]
[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/Christophe-Leroy/powerpc-32s-Do-kuep_lock-and-kuep_unlock-in-assembly/20210709-155049
base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
config: powerpc-randconfig-r032-20210709 (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/8f55557e42a793db98e4e60b7c65d47a6c5a4b62
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Christophe-Leroy/powerpc-32s-Do-kuep_lock-and-kuep_unlock-in-assembly/20210709-155049
git checkout 8f55557e42a793db98e4e60b7c65d47a6c5a4b62
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross O=build_dir ARCH=powerpc SHELL=/bin/bash arch/powerpc/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

arch/powerpc/kernel/entry_32.S: Assembler messages:
>> arch/powerpc/kernel/entry_32.S:110: Error: unrecognized opcode: `update_user_segments_by_4'
>> arch/powerpc/kernel/entry_32.S:132: Error: unrecognized opcode: `update_user_segments_by_6'
arch/powerpc/kernel/entry_32.S:300: Error: unrecognized opcode: `update_user_segments_by_6'


vim +110 arch/powerpc/kernel/entry_32.S

85
86 .globl transfer_to_syscall
87 transfer_to_syscall:
88 stw r11, GPR1(r1)
89 stw r11, 0(r1)
90 mflr r12
91 stw r12, _LINK(r1)
92 #if defined(CONFIG_BOOKE) || defined(CONFIG_40x)
93 rlwinm r9,r9,0,14,12 /* clear MSR_WE (necessary?) */
94 #endif
95 lis r12,STACK_FRAME_REGS_MARKER@ha /* exception frame marker */
96 SAVE_GPR(2, r1)
97 addi r12,r12,STACK_FRAME_REGS_MARKER@l
98 stw r9,_MSR(r1)
99 li r2, INTERRUPT_SYSCALL
100 stw r12,8(r1)
101 stw r2,_TRAP(r1)
102 SAVE_GPR(0, r1)
103 SAVE_4GPRS(3, r1)
104 SAVE_2GPRS(7, r1)
105 addi r2,r10,-THREAD
106 #ifdef CONFIG_PPC_KUEP
107 mfsr r9,0
108 rlwinm r9,r9,0,8,3
109 oris r9,r9,SR_NX@h
> 110 update_user_segments_by_4 r9, r10, r11, r12
111 #endif
112 SAVE_NVGPRS(r1)
113
114 /* Calling convention has r9 = orig r0, r10 = regs */
115 addi r10,r1,STACK_FRAME_OVERHEAD
116 mr r9,r0
117 bl system_call_exception
118
119 ret_from_syscall:
120 addi r4,r1,STACK_FRAME_OVERHEAD
121 li r5,0
122 bl syscall_exit_prepare
123 #ifdef CONFIG_PPC_47x
124 lis r4,icache_44x_need_flush@ha
125 lwz r5,icache_44x_need_flush@l(r4)
126 cmplwi cr0,r5,0
127 bne- 2f
128 #endif /* CONFIG_PPC_47x */
129 #ifdef CONFIG_PPC_KUEP
130 mfsr r7,0
131 rlwinm r7,r7,0,8,2
> 132 update_user_segments_by_6 r7, r8, r9, r10, r11, r12
133 #endif
134 lwz r4,_LINK(r1)
135 lwz r5,_CCR(r1)
136 mtlr r4
137 lwz r7,_NIP(r1)
138 lwz r8,_MSR(r1)
139 cmpwi r3,0
140 lwz r3,GPR3(r1)
141 syscall_exit_finish:
142 mtspr SPRN_SRR0,r7
143 mtspr SPRN_SRR1,r8
144
145 bne 3f
146 mtcr r5
147

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip