From: Icecream95 Date: Sun, 10 Jul 2022 08:57:24 +0000 (+1200) Subject: panfrost: Correctly calculate prefetch suppresion varying index X-Git-Tag: upstream/22.3.5~5718 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=537f67f05362d3bb942aec9eb52a7862a0fab56b;p=platform%2Fupstream%2Fmesa.git panfrost: Correctly calculate prefetch suppresion varying index The xfb_base is a base index, it makes no sense to multiply that with the number of streamout targets. Use addition instead to fix a buffer overflow. Fixes: 557633b142e ("panfrost: Suppress Bifrost prefetching") Reported-by: Luc Ma Part-of: --- diff --git a/src/gallium/drivers/panfrost/pan_cmdstream.c b/src/gallium/drivers/panfrost/pan_cmdstream.c index 0aa7a1b..17f4fb1 100644 --- a/src/gallium/drivers/panfrost/pan_cmdstream.c +++ b/src/gallium/drivers/panfrost/pan_cmdstream.c @@ -2667,7 +2667,7 @@ panfrost_emit_varying_descriptor(struct panfrost_batch *batch, #if PAN_ARCH >= 6 /* Suppress prefetch on Bifrost */ - memset(varyings + (xfb_base * ctx->streamout.num_targets), 0, sizeof(*varyings)); + memset(varyings + xfb_base + ctx->streamout.num_targets, 0, sizeof(*varyings)); #else /* Emit the stream out buffers. We need enough room for all the * vertices we emit across all instances */