From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933123AbbI3ScT (ORCPT ); Wed, 30 Sep 2015 14:32:19 -0400 Received: from mail-la0-f41.google.com ([209.85.215.41]:35879 "EHLO mail-la0-f41.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932495AbbI3ScS (ORCPT ); Wed, 30 Sep 2015 14:32:18 -0400 From: Rasmus Villemoes To: Mark Brown , Greg Kroah-Hartman Cc: Rasmus Villemoes , linux-kernel@vger.kernel.org Subject: [PATCH v2 1/3] regmap: debugfs: use snprintf return value in regmap_reg_ranges_read_file() Date: Wed, 30 Sep 2015 20:30:25 +0200 Message-Id: <1443637827-18875-1-git-send-email-linux@rasmusvillemoes.dk> X-Mailer: git-send-email 2.1.3 In-Reply-To: <1443479342-31621-2-git-send-email-linux@rasmusvillemoes.dk> References: <1443479342-31621-2-git-send-email-linux@rasmusvillemoes.dk> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 --- drivers/base/regmap/regmap-debugfs.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/base/regmap/regmap-debugfs.c b/drivers/base/regmap/regmap-debugfs.c index f42f2bac6466..d26b9c3ab812 100644 --- a/drivers/base/regmap/regmap-debugfs.c +++ b/drivers/base/regmap/regmap-debugfs.c @@ -339,6 +339,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; @@ -366,18 +367,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); -- 2.1.3