regmap: debugfs: use snprintf return value in regmap_reg_ranges_read_file()
authorRasmus Villemoes <linux@rasmusvillemoes.dk>
Wed, 30 Sep 2015 18:30:25 +0000 (20:30 +0200)
committerMark Brown <broonie@kernel.org>
Wed, 30 Sep 2015 19:31:15 +0000 (20:31 +0100)
Calling strlen() no less than three times on entry is silly. Since
we're formatting into a buffer with plenty of room, there's no chance
of truncation, so snprintf() has actually returned the value we want,
meaning we don't even have to call strlen once.

Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/base/regmap/regmap-debugfs.c

index 4a4737887ccec28ca2ee562ba73469a0e6e828df..1ffc101ca0117349ad10bc8526a258b820e8cf06 100644 (file)
@@ -337,6 +337,7 @@ static ssize_t regmap_reg_ranges_read_file(struct file *file,
        char *buf;
        char *entry;
        int ret;
+       unsigned entry_len;
 
        if (*ppos < 0 || !count)
                return -EINVAL;
@@ -364,18 +365,18 @@ static ssize_t regmap_reg_ranges_read_file(struct file *file,
        p = 0;
        mutex_lock(&map->cache_lock);
        list_for_each_entry(c, &map->debugfs_off_cache, list) {
-               snprintf(entry, PAGE_SIZE, "%x-%x",
-                        c->base_reg, c->max_reg);
+               entry_len = snprintf(entry, PAGE_SIZE, "%x-%x",
+                                    c->base_reg, c->max_reg);
                if (p >= *ppos) {
-                       if (buf_pos + 1 + strlen(entry) > count)
+                       if (buf_pos + 1 + entry_len > count)
                                break;
                        snprintf(buf + buf_pos, count - buf_pos,
                                 "%s", entry);
-                       buf_pos += strlen(entry);
+                       buf_pos += entry_len;
                        buf[buf_pos] = '\n';
                        buf_pos++;
                }
-               p += strlen(entry) + 1;
+               p += entry_len + 1;
        }
        mutex_unlock(&map->cache_lock);