From 5f48aba9fa9b70712ede49568be0bd8281629af4 Mon Sep 17 00:00:00 2001 From: Danylo Piliaiev Date: Fri, 8 May 2026 12:22:22 +0200 Subject: [PATCH] tu: Fix double free of timestamp_copy_data->trace Instead of leaving timestamp_copy_data half-initialized in copy_timestamp_cs_pool - always have it fully initialized and valid state there. Signed-off-by: Danylo Piliaiev Part-of: --- src/freedreno/vulkan/tu_device.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/freedreno/vulkan/tu_device.cc b/src/freedreno/vulkan/tu_device.cc index 2e755551dca..0e2d32c2723 100644 --- a/src/freedreno/vulkan/tu_device.cc +++ b/src/freedreno/vulkan/tu_device.cc @@ -2375,11 +2375,10 @@ tu_create_copy_timestamp_cs(struct tu_u_trace_submission_data *submission_data, tu_cs_init(&submission_data->timestamp_copy_data->cs, device, TU_CS_MODE_GROW, cs_size, "trace copy timestamp cs"); + u_trace_init(&submission_data->timestamp_copy_data->trace, + &device->trace_context); } - u_trace_init(&submission_data->timestamp_copy_data->trace, - &device->trace_context); - tu_cs *cs = &submission_data->timestamp_copy_data->cs; tu_cs_begin(cs); @@ -2492,6 +2491,8 @@ tu_u_trace_submission_data_finish( if (u_trace_enabled(&device->trace_context)) { tu_cs_reset(&submission_data->timestamp_copy_data->cs); u_trace_fini(&submission_data->timestamp_copy_data->trace); + u_trace_init(&submission_data->timestamp_copy_data->trace, + &device->trace_context); mtx_lock(&device->copy_timestamp_cs_pool_mutex); list_addtail(&submission_data->timestamp_copy_data->node,