From 605f8b70d4e6042da5de3fd44eb1fdcaf0cccbda Mon Sep 17 00:00:00 2001 From: Boris Brezillon Date: Thu, 30 Nov 2023 11:15:10 +0100 Subject: [PATCH] panfrost: Don't leak NIR compute shaders We never steal the NIR program or free it explicitly, and the state tracker expects drivers to take ownership of the program object. Since panfrost doesn't need to keep the original NIR shader around for compute, let's just free it before returning. Fixes: 40372bd720fe ("panfrost: Implement a disk cache") Cc: stable Signed-off-by: Boris Brezillon Part-of: (cherry picked from commit 692a4b18047a9549ec993c6bded598c5f0c06de0) --- .pick_status.json | 2 +- src/gallium/drivers/panfrost/pan_shader.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.pick_status.json b/.pick_status.json index 6de64019f98..bd033e943ac 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -3394,7 +3394,7 @@ "description": "panfrost: Don't leak NIR compute shaders", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "40372bd720fe16186e9abc832bb452a3143d0e00", "notes": null diff --git a/src/gallium/drivers/panfrost/pan_shader.c b/src/gallium/drivers/panfrost/pan_shader.c index 42bb2f72768..546910f8e66 100644 --- a/src/gallium/drivers/panfrost/pan_shader.c +++ b/src/gallium/drivers/panfrost/pan_shader.c @@ -470,6 +470,7 @@ panfrost_create_compute_state(struct pipe_context *pctx, /* The NIR becomes invalid after this. For compute kernels, we never * need to access it again. Don't keep a dangling pointer around. */ + ralloc_free((void *)so->nir); so->nir = NULL; return so;