OSDN Git Service

netlink: add nl_set_extack_cookie_u64()
authorJohannes Berg <johannes.berg@intel.com>
Thu, 23 Aug 2018 08:48:13 +0000 (10:48 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 9 Nov 2018 10:20:07 +0000 (11:20 +0100)
Add a helper function nl_set_extack_cookie_u64() to use a u64 as
the netlink extended ACK cookie, to avoid having to open-code it
in any users of the cookie.

A u64 should be sufficient for most subsystems though we allow
for up to 20 bytes right now. This also matches the cookies in
nl80211 where I intend to use this.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Acked-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
include/linux/netlink.h

index 4da90a6..0b83dba 100644 (file)
@@ -110,6 +110,15 @@ struct netlink_ext_ack {
        }                                               \
 } while (0)
 
+static inline void nl_set_extack_cookie_u64(struct netlink_ext_ack *extack,
+                                           u64 cookie)
+{
+       u64 __cookie = cookie;
+
+       memcpy(extack->cookie, &__cookie, sizeof(__cookie));
+       extack->cookie_len = sizeof(__cookie);
+}
+
 extern void netlink_kernel_release(struct sock *sk);
 extern int __netlink_change_ngroups(struct sock *sk, unsigned int groups);
 extern int netlink_change_ngroups(struct sock *sk, unsigned int groups);