]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
serial: sc16is7xx: remove wasteful static buffer in sc16is7xx_regmap_name()
authorHugo Villeneuve <hvilleneuve@dimonoff.com>
Mon, 11 Dec 2023 17:13:48 +0000 (12:13 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 1 Feb 2024 00:21:03 +0000 (16:21 -0800)
commit 6bcab3c8acc88e265c570dea969fd04f137c8a4c upstream.

Using a static buffer inside sc16is7xx_regmap_name() was a convenient and
simple way to set the regmap name without having to allocate and free a
buffer each time it is called. The drawback is that the static buffer
wastes memory for nothing once regmap is fully initialized.

Remove static buffer and use constant strings instead.

This also avoids a truncation warning when using "%d" or "%u" in snprintf
which was flagged by kernel test robot.

Fixes: 3837a0379533 ("serial: sc16is7xx: improve regmap debugfs by using one regmap per port")
Cc: <stable@vger.kernel.org> # 6.1.x: 3837a03 serial: sc16is7xx: improve regmap debugfs by using one regmap per port
Suggested-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Hugo Villeneuve <hvilleneuve@dimonoff.com>
Link: https://lore.kernel.org/r/20231211171353.2901416-2-hugo@hugovil.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/sc16is7xx.c

index d5e88fe52c5040ed069b65ef3078db91246e0508..e956a242ecc5108bdcf47cc8b33b2e8b4467fb22 100644 (file)
@@ -1709,13 +1709,15 @@ static struct regmap_config regcfg = {
        .max_register = SC16IS7XX_EFCR_REG,
 };
 
-static const char *sc16is7xx_regmap_name(unsigned int port_id)
+static const char *sc16is7xx_regmap_name(u8 port_id)
 {
-       static char buf[6];
-
-       snprintf(buf, sizeof(buf), "port%d", port_id);
-
-       return buf;
+       switch (port_id) {
+       case 0: return "port0";
+       case 1: return "port1";
+       default:
+               WARN_ON(true);
+               return NULL;
+       }
 }
 
 static unsigned int sc16is7xx_regmap_port_mask(unsigned int port_id)