OSDN Git Service

powerpc: prepare string/mem functions for KASAN
authorChristophe Leroy <christophe.leroy@c-s.fr>
Fri, 26 Apr 2019 16:23:26 +0000 (16:23 +0000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 2 May 2019 15:20:25 +0000 (01:20 +1000)
commit26deb04342e343ac58ab05bc7d2345ff0be9b667
tree39040b7c409757661ecd6c7d82dce9e919072625
parentd69ca6bab39e84a84781535b977c7e62c8f84d37
powerpc: prepare string/mem functions for KASAN

CONFIG_KASAN implements wrappers for memcpy() memmove() and memset()
Those wrappers are doing the verification then call respectively
__memcpy() __memmove() and __memset(). The arches are therefore
expected to rename their optimised functions that way.

For files on which KASAN is inhibited, #defines are used to allow
them to directly call optimised versions of the functions without
going through the KASAN wrappers.

See commit 393f203f5fd5 ("x86_64: kasan: add interceptors for
memset/memmove/memcpy functions") for details.

Other string / mem functions do not (yet) have kasan wrappers,
we therefore have to fallback to the generic versions when
KASAN is active, otherwise KASAN checks will be skipped.

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
[mpe: Fixups to keep selftests working]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/include/asm/kasan.h [new file with mode: 0644]
arch/powerpc/include/asm/string.h
arch/powerpc/kernel/prom_init_check.sh
arch/powerpc/lib/Makefile
arch/powerpc/lib/copy_32.S
arch/powerpc/lib/mem_64.S
arch/powerpc/lib/memcpy_64.S
tools/testing/selftests/powerpc/copyloops/asm/export.h
tools/testing/selftests/powerpc/copyloops/asm/kasan.h [new file with mode: 0644]
tools/testing/selftests/powerpc/copyloops/asm/ppc_asm.h