summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoland Scheidegger <[email protected]>2019-09-06 04:12:06 +0200
committerRoland Scheidegger <[email protected]>2019-09-06 18:31:34 +0200
commitde1c89fd9361b807859e312524dfcec8b71c1656 (patch)
tree3f641af9f5cf01af064c87b19bac700555a310dd
parent0bf51b6941b8ad4e122772525c2caf6896bfc0cb (diff)
llvmpipe: fix CALLOC vs. free mismatches
Should fix some issues we're seeing. And use REALLOC instead of realloc. Reviewed-by: Dave Airlie <[email protected]> Reviewed-by: Jose Fonseca <[email protected]>
-rw-r--r--src/gallium/drivers/llvmpipe/lp_cs_tpool.c6
-rw-r--r--src/gallium/drivers/llvmpipe/lp_state_cs.c3
2 files changed, 5 insertions, 4 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_cs_tpool.c b/src/gallium/drivers/llvmpipe/lp_cs_tpool.c
index 04495727e1c..6f1b4e2ee55 100644
--- a/src/gallium/drivers/llvmpipe/lp_cs_tpool.c
+++ b/src/gallium/drivers/llvmpipe/lp_cs_tpool.c
@@ -65,7 +65,7 @@ lp_cs_tpool_worker(void *data)
cnd_broadcast(&task->finish);
}
mtx_unlock(&pool->m);
- free(lmem.local_mem_ptr);
+ FREE(lmem.local_mem_ptr);
return 0;
}
@@ -105,7 +105,7 @@ lp_cs_tpool_destroy(struct lp_cs_tpool *pool)
cnd_destroy(&pool->new_work);
mtx_destroy(&pool->m);
- free(pool);
+ FREE(pool);
}
struct lp_cs_tpool_task *
@@ -148,6 +148,6 @@ lp_cs_tpool_wait_for_task(struct lp_cs_tpool *pool,
mtx_unlock(&pool->m);
cnd_destroy(&task->finish);
- free(task);
+ FREE(task);
*task_handle = NULL;
}
diff --git a/src/gallium/drivers/llvmpipe/lp_state_cs.c b/src/gallium/drivers/llvmpipe/lp_state_cs.c
index 1645a185cb2..a26cbf4df22 100644
--- a/src/gallium/drivers/llvmpipe/lp_state_cs.c
+++ b/src/gallium/drivers/llvmpipe/lp_state_cs.c
@@ -1123,8 +1123,9 @@ cs_exec_fn(void *init_data, int iter_idx, struct lp_cs_local_mem *lmem)
memset(&thread_data, 0, sizeof(thread_data));
if (lmem->local_size < job_info->req_local_mem) {
+ lmem->local_mem_ptr = REALLOC(lmem->local_mem_ptr, lmem->local_size,
+ job_info->req_local_mem);
lmem->local_size = job_info->req_local_mem;
- lmem->local_mem_ptr = realloc(lmem->local_mem_ptr, lmem->local_size);
}
thread_data.shared = lmem->local_mem_ptr;