From e183650aa41bd3d8f7ae23d65e0d49449a39f8c3 Mon Sep 17 00:00:00 2001 From: Benjamin Lee Date: Fri, 28 Mar 2025 22:04:32 -0700 Subject: [PATCH] panvk/csf: fix uninitialized read in utrace_clone_init_builder Previous code assumed that the caller of utrace_clone_init_builder would fill some parameters of the builder config, but we were not. Instead, initialize these from the csif props the same as all the other builder instances. Signed-off-by: Benjamin Lee Fixes: 3096cf2a5dd ("panvk/csf: flush and process trace events for all cmdbufs") Reviewed-by: Eric R. Smith Reviewed-by: Boris Brezillon Part-of: --- src/panfrost/vulkan/csf/panvk_vX_utrace.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/panfrost/vulkan/csf/panvk_vX_utrace.c b/src/panfrost/vulkan/csf/panvk_vX_utrace.c index f63de48381f..412588f3894 100644 --- a/src/panfrost/vulkan/csf/panvk_vX_utrace.c +++ b/src/panfrost/vulkan/csf/panvk_vX_utrace.c @@ -5,6 +5,8 @@ #include "panvk_utrace.h" +#include "drm-uapi/panthor_drm.h" + #include "genxml/cs_builder.h" #include "panvk_cmd_buffer.h" #include "panvk_device.h" @@ -148,9 +150,11 @@ void panvk_per_arch(utrace_clone_init_builder)(struct cs_builder *b, struct panvk_pool *pool) { + const struct drm_panthor_csif_info *csif_info = + panthor_kmod_get_csif_props(pool->dev->kmod.dev); const struct cs_builder_conf builder_conf = { - .nr_registers = b->conf.nr_registers, - .nr_kernel_registers = b->conf.nr_kernel_registers, + .nr_registers = csif_info->cs_reg_count, + .nr_kernel_registers = MAX2(csif_info->unpreserved_cs_reg_count, 4), .alloc_buffer = alloc_clone_buffer, .cookie = pool, };