[PATCH v6 0/6] KASAN for arm64
ryabinin.a.a at gmail.com
Thu Oct 8 03:36:09 PDT 2015
2015-10-07 13:04 GMT+03:00 Catalin Marinas <catalin.marinas at arm.com>:
> On Thu, Sep 17, 2015 at 12:38:06PM +0300, Andrey Ryabinin wrote:
>> As usual patches available in git
>> git://github.com/aryabinin/linux.git kasan/arm64v6
>> Changes since v5:
>> - Rebase on top of 4.3-rc1
>> - Fixed EFI boot.
>> - Updated Doc/features/KASAN.
> I tried to merge these patches (apart from the x86 one which is already
> merged) but it still doesn't boot on Juno as an EFI application.
4.3-rc1 was ok and 4.3-rc4 is not. Break caused by 0ce3cc008ec04
("arm64/efi: Fix boot crash by not padding between EFI_MEMORY_RUNTIME
It introduced sort() call in efi_get_virtmap().
sort() is generic kernel function and it's instrumented, so we crash
when KASAN tries to access shadow in sort().
[+CC efi some guys]
Comment in drivers/firmware/efi/libstub/Makefile says that EFI stub
executes with MMU disabled:
# The stub may be linked into the kernel proper or into a separate
# but in either case, it executes before the kernel does (with MMU
# things like ftrace and stack-protector are likely to cause trouble if left
# enabled, even if doing so doesn't break the build.
But in arch/arm64/kernel/efi-entry.S:
* We arrive here from the EFI boot manager with:
* * CPU in little-endian mode
* * MMU on with identity-mapped RAM
So is MMU enabled in ARM64 efi-stub?
If yes, we could solve this issue by mapping KASAN early shadow in efi stub.
More information about the linux-arm-kernel