[PATCH v7 02/11] powerpc: prepare string/mem functions for KASAN

kbuild test robot lkp at intel.com
Tue Feb 26 09:47:10 AEDT 2019


Hi Christophe,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on powerpc/next]
[also build test ERROR on v5.0-rc8]
[cannot apply to next-20190225]
[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/Christophe-Leroy/KASAN-for-powerpc-32/20190226-052610
base:   https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
config: powerpc-defconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 8.2.0-11) 8.2.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=8.2.0 make.cross ARCH=powerpc 

All errors (new ones prefixed by >>):

   arch/powerpc/lib/mem_64.S: Assembler messages:
>> arch/powerpc/lib/mem_64.S:35: Error: unrecognized opcode: `_global_kasan(memset)'
>> arch/powerpc/lib/mem_64.S:100: Error: unrecognized opcode: `export_symbol_kasan(memset)'
>> arch/powerpc/lib/mem_64.S:102: Error: unrecognized opcode: `_global_toc_kasan(memmove)'
>> arch/powerpc/lib/mem_64.S:143: Error: unrecognized opcode: `export_symbol_kasan(memmove)'
--
   arch/powerpc/lib/memcpy_64.S: Assembler messages:
>> arch/powerpc/lib/memcpy_64.S:21: Error: unrecognized opcode: `_global_toc_kasan(memcpy)'
>> arch/powerpc/lib/memcpy_64.S:232: Error: unrecognized opcode: `export_symbol_kasan(memcpy)'

vim +35 arch/powerpc/lib/mem_64.S

    34	
  > 35	_GLOBAL_KASAN(memset)
    36		neg	r0,r3
    37		rlwimi	r4,r4,8,16,23
    38		andi.	r0,r0,7			/* # bytes to be 8-byte aligned */
    39		rlwimi	r4,r4,16,0,15
    40		cmplw	cr1,r5,r0		/* do we get that far? */
    41		rldimi	r4,r4,32,0
    42	.Lms:	PPC_MTOCRF(1,r0)
    43		mr	r6,r3
    44		blt	cr1,8f
    45		beq	3f			/* if already 8-byte aligned */
    46		subf	r5,r0,r5
    47		bf	31,1f
    48		stb	r4,0(r6)
    49		addi	r6,r6,1
    50	1:	bf	30,2f
    51		sth	r4,0(r6)
    52		addi	r6,r6,2
    53	2:	bf	29,3f
    54		stw	r4,0(r6)
    55		addi	r6,r6,4
    56	3:	srdi.	r0,r5,6
    57		clrldi	r5,r5,58
    58		mtctr	r0
    59		beq	5f
    60		.balign 16
    61	4:	std	r4,0(r6)
    62		std	r4,8(r6)
    63		std	r4,16(r6)
    64		std	r4,24(r6)
    65		std	r4,32(r6)
    66		std	r4,40(r6)
    67		std	r4,48(r6)
    68		std	r4,56(r6)
    69		addi	r6,r6,64
    70		bdnz	4b
    71	5:	srwi.	r0,r5,3
    72		clrlwi	r5,r5,29
    73		PPC_MTOCRF(1,r0)
    74		beq	8f
    75		bf	29,6f
    76		std	r4,0(r6)
    77		std	r4,8(r6)
    78		std	r4,16(r6)
    79		std	r4,24(r6)
    80		addi	r6,r6,32
    81	6:	bf	30,7f
    82		std	r4,0(r6)
    83		std	r4,8(r6)
    84		addi	r6,r6,16
    85	7:	bf	31,8f
    86		std	r4,0(r6)
    87		addi	r6,r6,8
    88	8:	cmpwi	r5,0
    89		PPC_MTOCRF(1,r5)
    90		beqlr
    91		bf	29,9f
    92		stw	r4,0(r6)
    93		addi	r6,r6,4
    94	9:	bf	30,10f
    95		sth	r4,0(r6)
    96		addi	r6,r6,2
    97	10:	bflr	31
    98		stb	r4,0(r6)
    99		blr
 > 100	EXPORT_SYMBOL_KASAN(memset)
   101	
 > 102	_GLOBAL_TOC_KASAN(memmove)
   103		cmplw	0,r3,r4
   104		bgt	backwards_memcpy
   105		b	memcpy
   106	
   107	_GLOBAL(backwards_memcpy)
   108		rlwinm.	r7,r5,32-3,3,31		/* r0 = r5 >> 3 */
   109		add	r6,r3,r5
   110		add	r4,r4,r5
   111		beq	2f
   112		andi.	r0,r6,3
   113		mtctr	r7
   114		bne	5f
   115		.balign 16
   116	1:	lwz	r7,-4(r4)
   117		lwzu	r8,-8(r4)
   118		stw	r7,-4(r6)
   119		stwu	r8,-8(r6)
   120		bdnz	1b
   121		andi.	r5,r5,7
   122	2:	cmplwi	0,r5,4
   123		blt	3f
   124		lwzu	r0,-4(r4)
   125		subi	r5,r5,4
   126		stwu	r0,-4(r6)
   127	3:	cmpwi	0,r5,0
   128		beqlr
   129		mtctr	r5
   130	4:	lbzu	r0,-1(r4)
   131		stbu	r0,-1(r6)
   132		bdnz	4b
   133		blr
   134	5:	mtctr	r0
   135	6:	lbzu	r7,-1(r4)
   136		stbu	r7,-1(r6)
   137		bdnz	6b
   138		subf	r5,r0,r5
   139		rlwinm.	r7,r5,32-3,3,31
   140		beq	2b
   141		mtctr	r7
   142		b	1b
 > 143	EXPORT_SYMBOL_KASAN(memmove)

---
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/gzip
Size: 24068 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20190226/d4849910/attachment-0001.gz>


More information about the Linuxppc-dev mailing list