From dac18f66fb18ebadf6f050d9c5c055a82855e8f6 Mon Sep 17 00:00:00 2001
From: =?utf8?q?Thibaut=20VAR=C3=88NE?= <hacks@slashdirt.org>
Date: Wed, 13 May 2020 18:43:30 +0200
Subject: [PATCH] generic: routerboot sysfs: move tag_show_string()
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit

This routine will be shared between hard and soft config drivers.
Also use scnprintf() instead of snprintf().

Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
Tested-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
---
 .../drivers/platform/mikrotik/rb_hardconfig.c   | 17 ++++++-----------
 .../drivers/platform/mikrotik/routerboot.c      |  7 +++++++
 .../drivers/platform/mikrotik/routerboot.h      |  2 ++
 3 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/target/linux/generic/files/drivers/platform/mikrotik/rb_hardconfig.c b/target/linux/generic/files/drivers/platform/mikrotik/rb_hardconfig.c
index 4bcbb75e6f..bef71a0b5f 100644
--- a/target/linux/generic/files/drivers/platform/mikrotik/rb_hardconfig.c
+++ b/target/linux/generic/files/drivers/platform/mikrotik/rb_hardconfig.c
@@ -310,11 +310,6 @@ static struct hc_hwopt {
 	},
 };
 
-static ssize_t hc_tag_show_string(const u8 *pld, u16 pld_len, char *buf)
-{
-	return snprintf(buf, pld_len+1, "%s\n", pld);
-}
-
 static ssize_t hc_tag_show_u32(const u8 *pld, u16 pld_len, char *buf)
 {
 	char *out = buf;
@@ -402,15 +397,15 @@ static struct hc_attr {
 		.kattr = __ATTR(mac_base, S_IRUSR, hc_attr_show, NULL),
 	}, {
 		.tag_id = RB_ID_BOARD_PRODUCT_CODE,
-		.tshow = hc_tag_show_string,
+		.tshow = routerboot_tag_show_string,
 		.kattr = __ATTR(board_product_code, S_IRUSR, hc_attr_show, NULL),
 	}, {
 		.tag_id = RB_ID_BIOS_VERSION,
-		.tshow = hc_tag_show_string,
+		.tshow = routerboot_tag_show_string,
 		.kattr = __ATTR(booter_version, S_IRUSR, hc_attr_show, NULL),
 	}, {
 		.tag_id = RB_ID_SERIAL_NUMBER,
-		.tshow = hc_tag_show_string,
+		.tshow = routerboot_tag_show_string,
 		.kattr = __ATTR(board_serial, S_IRUSR, hc_attr_show, NULL),
 	}, {
 		.tag_id = RB_ID_MEMORY_SIZE,
@@ -429,15 +424,15 @@ static struct hc_attr {
 		.tshow = NULL,
 	}, {
 		.tag_id = RB_ID_BOARD_IDENTIFIER,
-		.tshow = hc_tag_show_string,
+		.tshow = routerboot_tag_show_string,
 		.kattr = __ATTR(board_identifier, S_IRUSR, hc_attr_show, NULL),
 	}, {
 		.tag_id = RB_ID_PRODUCT_NAME,
-		.tshow = hc_tag_show_string,
+		.tshow = routerboot_tag_show_string,
 		.kattr = __ATTR(product_name, S_IRUSR, hc_attr_show, NULL),
 	}, {
 		.tag_id = RB_ID_DEFCONF,
-		.tshow = hc_tag_show_string,
+		.tshow = routerboot_tag_show_string,
 		.kattr = __ATTR(defconf, S_IRUSR, hc_attr_show, NULL),
 	}
 };
diff --git a/target/linux/generic/files/drivers/platform/mikrotik/routerboot.c b/target/linux/generic/files/drivers/platform/mikrotik/routerboot.c
index 36ca90c1ad..96a100a933 100644
--- a/target/linux/generic/files/drivers/platform/mikrotik/routerboot.c
+++ b/target/linux/generic/files/drivers/platform/mikrotik/routerboot.c
@@ -175,6 +175,13 @@ static void __exit routerboot_exit(void)
 	kobject_put(rb_kobj);	// recursive afaict
 }
 
+/* Common routines */
+
+ssize_t routerboot_tag_show_string(const u8 *pld, u16 pld_len, char *buf)
+{
+	return scnprintf(buf, pld_len+1, "%s\n", pld);
+}
+
 module_init(routerboot_init);
 module_exit(routerboot_exit);
 
diff --git a/target/linux/generic/files/drivers/platform/mikrotik/routerboot.h b/target/linux/generic/files/drivers/platform/mikrotik/routerboot.h
index c75f61ebbf..e1ae972183 100644
--- a/target/linux/generic/files/drivers/platform/mikrotik/routerboot.h
+++ b/target/linux/generic/files/drivers/platform/mikrotik/routerboot.h
@@ -28,4 +28,6 @@ int routerboot_rle_decode(const u8 *in, size_t inlen, u8 *out, size_t *outlen);
 int __init rb_hardconfig_init(struct kobject *rb_kobj);
 void __exit rb_hardconfig_exit(void);
 
+ssize_t routerboot_tag_show_string(const u8 *pld, u16 pld_len, char *buf);
+
 #endif /* _ROUTERBOOT_H_ */
-- 
2.30.2