[PATCH] netlink: NL_SET_ERR_MSG - remove local static array

From: Joe Perches
Date: Mon Aug 09 2021 - 13:04:08 EST


The want was to have some separate object section for netlink messages
so all netlink messages could be specifically listed by some tool but
the effect is duplicating static const char arrays in the object code.

It seems unused presently so change the macro to avoid the local static
declarations until such time as these actually are wanted and used.

This reduces object size ~8KB in an x86-64 defconfig without modules.

$ size vmlinux.o*
text data bss dec hex filename
20110471 3460344 741760 24312575 172faff vmlinux.o.new
20119444 3460344 741760 24321548 1731e0c vmlinux.o.old

Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
---
include/linux/netlink.h | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/include/linux/netlink.h b/include/linux/netlink.h
index 61b1c7fcc401e..4bb32ae134aa8 100644
--- a/include/linux/netlink.h
+++ b/include/linux/netlink.h
@@ -89,13 +89,12 @@ struct netlink_ext_ack {
* to the lack of an output buffer.)
*/
#define NL_SET_ERR_MSG(extack, msg) do { \
- static const char __msg[] = msg; \
struct netlink_ext_ack *__extack = (extack); \
\
- do_trace_netlink_extack(__msg); \
+ do_trace_netlink_extack(msg); \
\
if (__extack) \
- __extack->_msg = __msg; \
+ __extack->_msg = msg; \
} while (0)

#define NL_SET_ERR_MSG_MOD(extack, msg) \
@@ -111,13 +110,12 @@ struct netlink_ext_ack {
#define NL_SET_BAD_ATTR(extack, attr) NL_SET_BAD_ATTR_POLICY(extack, attr, NULL)

#define NL_SET_ERR_MSG_ATTR_POL(extack, attr, pol, msg) do { \
- static const char __msg[] = msg; \
struct netlink_ext_ack *__extack = (extack); \
\
- do_trace_netlink_extack(__msg); \
+ do_trace_netlink_extack(msg); \
\
if (__extack) { \
- __extack->_msg = __msg; \
+ __extack->_msg = msg; \
__extack->bad_attr = (attr); \
__extack->policy = (pol); \
} \