diff options
author | Rasmus Villemoes <linux@rasmusvillemoes.dk> | 2015-09-30 14:30:25 -0400 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2015-09-30 15:31:15 -0400 |
commit | e34dc490713f8d9dfbbb5bb56d966d90a9344131 (patch) | |
tree | 48a68316a43804e68f07f45eed043199e01e961f /drivers/base | |
parent | 9ae3109d1d9ff367e0d0efa7073cc078edb9a372 (diff) |
regmap: debugfs: use snprintf return value in regmap_reg_ranges_read_file()
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>
Diffstat (limited to 'drivers/base')
-rw-r--r-- | drivers/base/regmap/regmap-debugfs.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/base/regmap/regmap-debugfs.c b/drivers/base/regmap/regmap-debugfs.c index 4a4737887cce..1ffc101ca011 100644 --- a/drivers/base/regmap/regmap-debugfs.c +++ b/drivers/base/regmap/regmap-debugfs.c | |||
@@ -337,6 +337,7 @@ static ssize_t regmap_reg_ranges_read_file(struct file *file, | |||
337 | char *buf; | 337 | char *buf; |
338 | char *entry; | 338 | char *entry; |
339 | int ret; | 339 | int ret; |
340 | unsigned entry_len; | ||
340 | 341 | ||
341 | if (*ppos < 0 || !count) | 342 | if (*ppos < 0 || !count) |
342 | return -EINVAL; | 343 | return -EINVAL; |
@@ -364,18 +365,18 @@ static ssize_t regmap_reg_ranges_read_file(struct file *file, | |||
364 | p = 0; | 365 | p = 0; |
365 | mutex_lock(&map->cache_lock); | 366 | mutex_lock(&map->cache_lock); |
366 | list_for_each_entry(c, &map->debugfs_off_cache, list) { | 367 | list_for_each_entry(c, &map->debugfs_off_cache, list) { |
367 | snprintf(entry, PAGE_SIZE, "%x-%x", | 368 | entry_len = snprintf(entry, PAGE_SIZE, "%x-%x", |
368 | c->base_reg, c->max_reg); | 369 | c->base_reg, c->max_reg); |
369 | if (p >= *ppos) { | 370 | if (p >= *ppos) { |
370 | if (buf_pos + 1 + strlen(entry) > count) | 371 | if (buf_pos + 1 + entry_len > count) |
371 | break; | 372 | break; |
372 | snprintf(buf + buf_pos, count - buf_pos, | 373 | snprintf(buf + buf_pos, count - buf_pos, |
373 | "%s", entry); | 374 | "%s", entry); |
374 | buf_pos += strlen(entry); | 375 | buf_pos += entry_len; |
375 | buf[buf_pos] = '\n'; | 376 | buf[buf_pos] = '\n'; |
376 | buf_pos++; | 377 | buf_pos++; |
377 | } | 378 | } |
378 | p += strlen(entry) + 1; | 379 | p += entry_len + 1; |
379 | } | 380 | } |
380 | mutex_unlock(&map->cache_lock); | 381 | mutex_unlock(&map->cache_lock); |
381 | 382 | ||