Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

coresight: etb10: adjust read pointer only when needed

The read pointer (read_ptr) needs to be adjusted only if its value
has gone beyond the length of the memory buffer.

Reported-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Mathieu Poirier and committed by
Greg Kroah-Hartman
bedffda8 dc2c4ef1

+2 -1
+2 -1
drivers/hwtracing/coresight/coresight-etb10.c
··· 428 428 read_ptr = (write_ptr + drvdata->buffer_depth) - 429 429 to_read / ETB_FRAME_SIZE_WORDS; 430 430 /* Wrap around if need be*/ 431 - read_ptr &= ~(drvdata->buffer_depth - 1); 431 + if (read_ptr > (drvdata->buffer_depth - 1)) 432 + read_ptr -= drvdata->buffer_depth; 432 433 /* let the decoder know we've skipped ahead */ 433 434 local_inc(&buf->lost); 434 435 }