From b1fd5f1039ffee9cfb676006c7cdc4fd265636a6 Mon Sep 17 00:00:00 2001 From: Steffen Schulz Date: Wed, 14 Dec 2022 17:23:14 -0800 Subject: [PATCH] check ToPA allocation success Check size returned for ToA allocation instead of blind mmap + assert. Requires KVM-Nyx change to return error on allocation fail. --- nyx/pt.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/nyx/pt.c b/nyx/pt.c index a706f74bb6..b7e9c2abb8 100644 --- a/nyx/pt.c +++ b/nyx/pt.c @@ -322,6 +322,11 @@ void pt_pre_kvm_run(CPUState *cpu) assert(cpu->pt_fd != -1); ret = ioctl(cpu->pt_fd, KVM_VMX_PT_GET_TOPA_SIZE, (unsigned long)0x0); + if (ret == -1) { + nyx_abort("ToPA allocation failure. Check kernel logs.\n"); + } + + assert(ret % PAGE_SIZE == 0); cpu->pt_mmap = mmap((void *)PT_BUFFER_MMAP_ADDR, ret, PROT_READ | PROT_WRITE, MAP_SHARED, cpu->pt_fd, 0); assert(cpu->pt_mmap != (void *)0xFFFFFFFFFFFFFFFF);