diff options
author | Dave Airlie <airlied@redhat.com> | 2020-06-19 17:09:01 +1000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2020-07-27 13:48:11 +1000 |
commit | af15fd1c6cc9033ff662cc230ddbe6c5ea6cf18d (patch) | |
tree | 16a3d2a30980e23f0f04c117c97ab1c89f82fb86 | |
parent | aad047d0f9e1a5bd0f2648c1182d5685fa2cc2d5 (diff) |
llvmpipe: fix race in shader deletion
-rw-r--r-- | src/gallium/drivers/llvmpipe/lp_state_cs.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_state_cs.c b/src/gallium/drivers/llvmpipe/lp_state_cs.c index 9759513d8c6..4a396a57f8f 100644 --- a/src/gallium/drivers/llvmpipe/lp_state_cs.c +++ b/src/gallium/drivers/llvmpipe/lp_state_cs.c @@ -500,9 +500,6 @@ llvmpipe_remove_cs_shader_variant(struct llvmpipe_context *lp, variant->shader->variants_cached, lp->nr_cs_variants, variant->nr_instrs, lp->nr_cs_instrs); } - - gallivm_destroy(variant->gallivm); - /* remove from shader's list */ remove_from_list(&variant->list_item_local); variant->shader->variants_cached--; @@ -512,6 +509,8 @@ llvmpipe_remove_cs_shader_variant(struct llvmpipe_context *lp, lp->nr_cs_variants--; lp->nr_cs_instrs -= variant->nr_instrs; + gallivm_destroy(variant->gallivm); + FREE(variant); } |