Message ID | a9f505a6-fd31-4cfa-a193-d21638bb14f1@p183 (mailing list archive) |
---|---|
State | Accepted |
Commit | a00ab292c9aad00bd5165f18f16ec8358497b251 |
Headers | show |
Series | [1/3] xen, pvh: fix unbootable VMs (PVH + KASAN) | expand |
On 01.08.24 21:16, Alexey Dobriyan wrote: > Uninstrument arch/x86/platform/pvh/enlighten.c: KASAN is not setup > _this_ early in the boot process. > > Steps to reproduce: > > make allnoconfig > make sure CONFIG_AMD_MEM_ENCRYPT is disabled > AMD_MEM_ENCRYPT independently uninstruments lib/string.o > so PVH boot code calls into uninstrumented memset() and > memcmp() which can make the bug disappear depending on > the compiler. > enable CONFIG_PVH > enable CONFIG_KASAN > enable serial console > this is fun exercise if you never done it from nothing :^) > > make > > qemu-system-x86_64 \ > -enable-kvm \ > -cpu host \ > -smp cpus=1 \ > -m 4096 \ > -serial stdio \ > -kernel vmlinux \ > -append 'console=ttyS0 ignore_loglevel' > > Messages on serial console will easily tell OK kernel from unbootable > kernel. In bad case qemu hangs in an infinite loop stroboscoping > "SeaBIOS" message. > > Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Acked-by: Juergen Gross <jgross@suse.com> Juergen
diff --git a/arch/x86/platform/pvh/Makefile b/arch/x86/platform/pvh/Makefile index 5dec5067c9fb..c43fb7964dc4 100644 --- a/arch/x86/platform/pvh/Makefile +++ b/arch/x86/platform/pvh/Makefile @@ -1,5 +1,6 @@ # SPDX-License-Identifier: GPL-2.0 OBJECT_FILES_NON_STANDARD_head.o := y +KASAN_SANITIZE := n obj-$(CONFIG_PVH) += enlighten.o obj-$(CONFIG_PVH) += head.o
Uninstrument arch/x86/platform/pvh/enlighten.c: KASAN is not setup _this_ early in the boot process. Steps to reproduce: make allnoconfig make sure CONFIG_AMD_MEM_ENCRYPT is disabled AMD_MEM_ENCRYPT independently uninstruments lib/string.o so PVH boot code calls into uninstrumented memset() and memcmp() which can make the bug disappear depending on the compiler. enable CONFIG_PVH enable CONFIG_KASAN enable serial console this is fun exercise if you never done it from nothing :^) make qemu-system-x86_64 \ -enable-kvm \ -cpu host \ -smp cpus=1 \ -m 4096 \ -serial stdio \ -kernel vmlinux \ -append 'console=ttyS0 ignore_loglevel' Messages on serial console will easily tell OK kernel from unbootable kernel. In bad case qemu hangs in an infinite loop stroboscoping "SeaBIOS" message. Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> --- arch/x86/platform/pvh/Makefile | 1 + 1 file changed, 1 insertion(+)