forked from Minki/linux
netlink: add helpers for extack attr presence checking
Being able to check attribute presence and set extack if not on one line is handy, add helpers. Reviewed-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
parent
690252f19f
commit
45dca15759
@ -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)
|
||||
{
|
||||
|
@ -110,6 +110,13 @@ static inline void genl_info_net_set(struct genl_info *info, struct net *net)
|
||||
|
||||
#define GENL_SET_ERR_MSG(info, msg) NL_SET_ERR_MSG((info)->extack, msg)
|
||||
|
||||
/* Report that a root attribute is missing */
|
||||
#define GENL_REQ_ATTR_CHECK(info, attr) ({ \
|
||||
struct genl_info *__info = (info); \
|
||||
\
|
||||
NL_REQ_ATTR_CHECK(__info->extack, NULL, __info->attrs, (attr)); \
|
||||
})
|
||||
|
||||
enum genl_validate_flags {
|
||||
GENL_DONT_VALIDATE_STRICT = BIT(0),
|
||||
GENL_DONT_VALIDATE_DUMP = BIT(1),
|
||||
|
Loading…
Reference in New Issue
Block a user