coresight: tmc: Refactor loops in etb dump
authorLeo Yan <leo.yan@linaro.org>
Thu, 20 Sep 2018 19:18:01 +0000 (13:18 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 25 Sep 2018 18:09:18 +0000 (20:09 +0200)
In ETB dump function tmc_etb_dump_hw() it has nested loops.  The second
level loop is to iterate index in the range [0 .. drvdata->memwidth);
but the index isn't really used in the code, thus the second level
loop is useless.

This patch is to remove the second level loop; the refactor also reduces
indentation and we can use 'break' to replace 'goto' tag.

Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
Signed-off-by: Leo Yan <leo.yan@linaro.org>
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/hwtracing/coresight/coresight-tmc-etf.c

index 4156c95..4bf3bfd 100644 (file)
@@ -38,23 +38,20 @@ static void tmc_etb_dump_hw(struct tmc_drvdata *drvdata)
 {
        char *bufp;
        u32 read_data, lost;
-       int i;
 
        /* Check if the buffer wrapped around. */
        lost = readl_relaxed(drvdata->base + TMC_STS) & TMC_STS_FULL;
        bufp = drvdata->buf;
        drvdata->len = 0;
        while (1) {
-               for (i = 0; i < drvdata->memwidth; i++) {
-                       read_data = readl_relaxed(drvdata->base + TMC_RRD);
-                       if (read_data == 0xFFFFFFFF)
-                               goto done;
-                       memcpy(bufp, &read_data, 4);
-                       bufp += 4;
-                       drvdata->len += 4;
-               }
+               read_data = readl_relaxed(drvdata->base + TMC_RRD);
+               if (read_data == 0xFFFFFFFF)
+                       break;
+               memcpy(bufp, &read_data, 4);
+               bufp += 4;
+               drvdata->len += 4;
        }
-done:
+
        if (lost)
                coresight_insert_barrier_packet(drvdata->buf);
        return;