Commit 3e4d5ba9 authored by Shay Agroskin's avatar Shay Agroskin Committed by Jakub Kicinski
Browse files

netlink: Add a macro to set policy message with format string



Similar to NL_SET_ERR_MSG_FMT, add a macro which sets netlink policy
error message with a format string.

Signed-off-by: default avatarShay Agroskin <shayagr@amazon.com>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 2bcc74ff
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -161,9 +161,31 @@ struct netlink_ext_ack {
	}							\
} while (0)

#define NL_SET_ERR_MSG_ATTR_POL_FMT(extack, attr, pol, fmt, args...) do {	\
	struct netlink_ext_ack *__extack = (extack);				\
										\
	if (!__extack)								\
		break;								\
										\
	if (snprintf(__extack->_msg_buf, NETLINK_MAX_FMTMSG_LEN,		\
		     "%s" fmt "%s", "", ##args, "") >=				\
	    NETLINK_MAX_FMTMSG_LEN)						\
		net_warn_ratelimited("%s" fmt "%s", "truncated extack: ",       \
				     ##args, "\n");				\
										\
	do_trace_netlink_extack(__extack->_msg_buf);				\
										\
	__extack->_msg = __extack->_msg_buf;					\
	__extack->bad_attr = (attr);						\
	__extack->policy = (pol);						\
} while (0)

#define NL_SET_ERR_MSG_ATTR(extack, attr, msg)		\
	NL_SET_ERR_MSG_ATTR_POL(extack, attr, NULL, msg)

#define NL_SET_ERR_MSG_ATTR_FMT(extack, attr, msg, args...) \
	NL_SET_ERR_MSG_ATTR_POL_FMT(extack, attr, NULL, msg, ##args)

#define NL_SET_ERR_ATTR_MISS(extack, nest, type)  do {	\
	struct netlink_ext_ack *__extack = (extack);	\
							\