Subject: [PATCH net-next 2/6] netlink: add helper for extack attr presence checking

From: Jakub Kicinski <[email-masked]>
Date: Tue, 23 Aug 2022 21:50:20 -0700

Being able to check attribute presence and set extack
if not on one line is handy, add a helper.

Signed-off-by: Jakub Kicinski <[email-masked]>
---
 include/linux/netlink.h | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/include/linux/netlink.h b/include/linux/netlink.h
index 24f9fece7599..d20007ad7e26 100644
--- a/include/linux/netlink.h
+++ b/include/linux/netlink.h
@@ -139,6 +139,17 @@ struct netlink_ext_ack {
 	}						\
 } while (0)
 
+#define NL_REQ_ATTR_CHECK(extack, nest, tb, type) ({		\
+	struct nlattr **__tb = (tb);				\
+	u32 __attr = (type);					\
+	int __retval;						\
+								\
+	__retval = !__tb[__attr];				\
+	if (__retval)						\
+		NL_SET_ERR_ATTR_MISS((extack), (nest), __attr);	\
+	__retval;						\
+})
+
 static inline void nl_set_extack_cookie_u64(struct netlink_ext_ack *extack,
 					    u64 cookie)
 {
-- 
2.37.2