[RFC PATCH V1 7/8] powerpc/mm: kasan: Add kasan support for ppc64
Aneesh Kumar K.V
aneesh.kumar at linux.vnet.ibm.com
Tue Aug 18 15:34:37 AEST 2015
Andrey Ryabinin <ryabinin.a.a at gmail.com> writes:
> On 08/17/2015 09:36 AM, Aneesh Kumar K.V wrote:
>> We use the region with region ID 0xe as the kasan shadow region. Since
>> we use hash page table, we can't have the early zero page based shadow
>> region support. Hence we disable kasan in the early code and runtime
>> enable this. We could imporve the condition using static keys. (but
>> that is for a later patch). We also can't support inline instrumentation
>> because our kernel mapping doesn't give us a large enough free window
>> to map the entire range. For VMALLOC and VMEMMAP region we just
>> return a zero page instead of having a translation bolted into the
>> htab. This simplifies handling VMALLOC and VMEMAP area. Kasan is not
>> tracking both the region as of now
>>
>> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar at linux.vnet.ibm.com>
>> ---
>> arch/powerpc/include/asm/kasan.h | 74 ++++++++++++++++++++++++++++++++
>> arch/powerpc/include/asm/pgtable-ppc64.h | 1 +
>> arch/powerpc/include/asm/ppc_asm.h | 10 +++++
>> arch/powerpc/include/asm/string.h | 13 ++++++
>> arch/powerpc/kernel/Makefile | 1 +
>> arch/powerpc/kernel/prom_init_check.sh | 2 +-
>> arch/powerpc/kernel/setup_64.c | 3 ++
>> arch/powerpc/lib/mem_64.S | 6 ++-
>> arch/powerpc/lib/memcpy_64.S | 3 +-
>> arch/powerpc/lib/ppc_ksyms.c | 10 +++++
>> arch/powerpc/mm/Makefile | 3 ++
>> arch/powerpc/mm/kasan_init.c | 44 +++++++++++++++++++
>> arch/powerpc/mm/slb_low.S | 4 ++
>> arch/powerpc/platforms/Kconfig.cputype | 1 +
>> 14 files changed, 171 insertions(+), 4 deletions(-)
>> create mode 100644 arch/powerpc/include/asm/kasan.h
>> create mode 100644 arch/powerpc/mm/kasan_init.c
>>
>
> Did you disable stack instrumentation (in scripts/Makefile.kasa),
> or you version of gcc doesn't support it (e.g. like 4.9.x on x86) ?
I guess the later, because i do see this during compile
scripts/Makefile.kasan:23: CONFIG_KASAN: compiler does not support all options. Trying minimal configuration
scripts/kconfig/conf --silentoldconfig Kconfig
> Because this can't work with stack instrumentation as you don't have shadow for stack in early code.
>
> But this should be doable, as I think. All you need is to setup shadow for init task's
> stack before executing any instrumented function.
I still need to look at stack and global support. So that is not yet
there.
-aneesh
More information about the Linuxppc-dev
mailing list