From: Alyssa Rosenzweig Date: Tue, 23 Jul 2019 17:14:46 +0000 (-0700) Subject: panfrost: Reserve, but do not upload, shader padding X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a9c73e825a98d280c9af218cd6cedb4ab877f562;p=mesa.git panfrost: Reserve, but do not upload, shader padding Fixes invalid read errors reported by valgrind. Signed-off-by: Alyssa Rosenzweig --- diff --git a/src/gallium/drivers/panfrost/pan_allocate.c b/src/gallium/drivers/panfrost/pan_allocate.c index 9e9565d6006..f549c864c70 100644 --- a/src/gallium/drivers/panfrost/pan_allocate.c +++ b/src/gallium/drivers/panfrost/pan_allocate.c @@ -151,10 +151,10 @@ panfrost_upload_transient(struct panfrost_context *ctx, const void *data, size_t mali_ptr panfrost_upload(struct panfrost_memory *mem, const void *data, size_t sz) { - sz = ALIGN_POT(sz, ALIGNMENT); + size_t aligned_sz = ALIGN_POT(sz, ALIGNMENT); /* Bounds check */ - if ((mem->stack_bottom + sz) >= mem->bo->size) { + if ((mem->stack_bottom + aligned_sz) >= mem->bo->size) { printf("Out of memory, tried to upload %zd but only %zd available\n", sz, mem->bo->size - mem->stack_bottom); assert(0); @@ -163,6 +163,6 @@ panfrost_upload(struct panfrost_memory *mem, const void *data, size_t sz) memcpy((uint8_t *) mem->bo->cpu + mem->stack_bottom, data, sz); mali_ptr gpu = mem->bo->gpu + mem->stack_bottom; - mem->stack_bottom += sz; + mem->stack_bottom += aligned_sz; return gpu; }