diff --git a/.pick_status.json b/.pick_status.json index 902111dc2e8..86000105bff 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -364,7 +364,7 @@ "description": "panvk/csf: fix uninitialized read in utrace_clone_init_builder", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "3096cf2a5ddd851cf60c835e013377ccbce0e3eb", "notes": null diff --git a/src/panfrost/vulkan/csf/panvk_vX_utrace.c b/src/panfrost/vulkan/csf/panvk_vX_utrace.c index 3e3ccc53fe8..42a331339d1 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 = 96, - .nr_kernel_registers = 4, + .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, };