Skip to content

Commit c14318f

Browse files
cs-etm: avoid casting variable
Because of two's complement reprensentation, casting an int to and unsigned value doesn't simply get rid of the negative sign. As such a value of -1 becomes 0xFFFFFFFF, which is clearly not the desired effect. This patch deals with cases when @cpu has the value of -1. In those cases queue '0' is initially selected. Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
1 parent 0951a97 commit c14318f

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

tools/perf/util/cs-etm.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -938,10 +938,12 @@ static struct cs_etm_queue *cs_etm__cpu_to_etmq(struct cs_etm_auxtrace *etm,
938938
{
939939
unsigned q,j;
940940

941-
if (/*(cpu < 0) ||*/ (0 == etm->queues.nr_queues))
941+
if (etm->queues.nr_queues == 0)
942942
return NULL;
943943

944-
if ((unsigned) cpu >= etm->queues.nr_queues)
944+
if (cpu < 0)
945+
q = 0;
946+
else if ((unsigned) cpu >= etm->queues.nr_queues)
945947
q = etm->queues.nr_queues - 1;
946948
else
947949
q = cpu;

0 commit comments

Comments
 (0)