diff --git a/.pick_status.json b/.pick_status.json index 4c259d4d0e0..62cd135a145 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -204,7 +204,7 @@ "description": "panvk: add error checking for dump/trace mmap call", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "c257bf514277ab51d30096cbf3c29c884561ae52", "notes": null diff --git a/src/panfrost/vulkan/panvk_device_memory.c b/src/panfrost/vulkan/panvk_device_memory.c index 76fdf3c0d08..f6244eec40d 100644 --- a/src/panfrost/vulkan/panvk_device_memory.c +++ b/src/panfrost/vulkan/panvk_device_memory.c @@ -147,9 +147,13 @@ panvk_AllocateMemory(VkDevice _device, if (device->debug.decode_ctx) { if (instance->debug_flags & (PANVK_DEBUG_DUMP | PANVK_DEBUG_TRACE)) { - mem->debug.host_mapping = - pan_kmod_bo_mmap(mem->bo, 0, pan_kmod_bo_size(mem->bo), - PROT_READ | PROT_WRITE, MAP_SHARED, NULL); + void *cpu = pan_kmod_bo_mmap(mem->bo, 0, pan_kmod_bo_size(mem->bo), + PROT_READ | PROT_WRITE, MAP_SHARED, NULL); + if (cpu != MAP_FAILED) + mem->debug.host_mapping = cpu; + else + vk_logw(VK_LOG_OBJS(_device), + "failed to map VkMemory for dump or trace.\n"); } pandecode_inject_mmap(device->debug.decode_ctx, mem->addr.dev,