diff --git a/.pick_status.json b/.pick_status.json index 315b31f7095..ebaf6b0214a 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -3334,7 +3334,7 @@ "description": "etnaviv: Fix memory leak on error path.", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": "eed5a009897a859ec118ef84c0437be174a49da3" }, diff --git a/src/gallium/drivers/etnaviv/etnaviv_query_acc_perfmon.c b/src/gallium/drivers/etnaviv/etnaviv_query_acc_perfmon.c index 5a5ffdb5d61..7c49fc88fad 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_query_acc_perfmon.c +++ b/src/gallium/drivers/etnaviv/etnaviv_query_acc_perfmon.c @@ -101,12 +101,9 @@ perfmon_supports(unsigned query_type) static struct etna_acc_query * perfmon_allocate(struct etna_context *ctx, unsigned query_type) { - struct etna_pm_query *pq = CALLOC_STRUCT(etna_pm_query); + struct etna_pm_query *pq; const struct etna_perfmon_config *cfg; - if (!pq) - return NULL; - cfg = etna_pm_query_config(query_type); if (!cfg) return false; @@ -114,6 +111,10 @@ perfmon_allocate(struct etna_context *ctx, unsigned query_type) if (!etna_pm_cfg_supported(ctx->screen->perfmon, cfg)) return false; + pq = CALLOC_STRUCT(etna_pm_query); + if (!pq) + return NULL; + pm_add_signal(pq, ctx->screen->perfmon, cfg); return &pq->base;