summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAceLan Kao <acelan.kao@canonical.com>2019-03-27 11:00:43 +0800
committerHauke Mehrtens <hauke@hauke-m.de>2019-03-28 00:08:17 +0100
commitcc3688f574bbcac0f15ab2d2cbdcf5fac7524016 (patch)
tree439bf1fbc1a21ba2708234a84b4d22a533292dba
parent3705a3d4c43716ece89a1e60a06213b568d4e623 (diff)
backports: update backport/backport-include/net/netlink.h
Add new macros introduced from v5.1-rc1 23323289b154 netlink: reduce NLA_POLICY_NESTED{,_ARRAY} arguments v3: Fix v4.20 compilation error Signed-off-by: AceLan Kao <acelan.kao@canonical.com>
-rw-r--r--backport/backport-include/net/netlink.h18
1 files changed, 13 insertions, 5 deletions
diff --git a/backport/backport-include/net/netlink.h b/backport/backport-include/net/netlink.h
index 4af73631..d8237f10 100644
--- a/backport/backport-include/net/netlink.h
+++ b/backport/backport-include/net/netlink.h
@@ -4,6 +4,19 @@
#include <linux/version.h>
#include <linux/in6.h>
+#if LINUX_VERSION_IS_LESS(5,1,0)
+#undef NLA_POLICY_NESTED
+#undef NLA_POLICY_NESTED_ARRAY
+#define _NLA_POLICY_NESTED(maxattr, policy) \
+ { .type = NLA_NESTED, .validation_data = policy, .len = maxattr }
+#define _NLA_POLICY_NESTED_ARRAY(maxattr, policy) \
+ { .type = NLA_NESTED_ARRAY, .validation_data = policy, .len = maxattr }
+#define NLA_POLICY_NESTED(policy) \
+ _NLA_POLICY_NESTED(ARRAY_SIZE(policy) - 1, policy)
+#define NLA_POLICY_NESTED_ARRAY(policy) \
+ _NLA_POLICY_NESTED_ARRAY(ARRAY_SIZE(policy) - 1, policy)
+#endif /* < 5.1 */
+
#if LINUX_VERSION_IS_LESS(4,20,0)
/* can't backport using the enum - need to override */
#define NLA_UNSPEC 0
@@ -59,11 +72,6 @@ struct backport_nla_policy {
#define NLA_POLICY_ETH_ADDR NLA_POLICY_EXACT_LEN(ETH_ALEN)
#define NLA_POLICY_ETH_ADDR_COMPAT NLA_POLICY_EXACT_LEN_WARN(ETH_ALEN)
-#define NLA_POLICY_NESTED(maxattr, policy) \
- { .type = NLA_NESTED, .validation_data = policy, .len = maxattr }
-#define NLA_POLICY_NESTED_ARRAY(maxattr, policy) \
- { .type = NLA_NESTED_ARRAY, .validation_data = policy, .len = maxattr }
-
#define __NLA_ENSURE(condition) (sizeof(char[1 - 2*!(condition)]) - 1)
#define NLA_ENSURE_INT_TYPE(tp) \
(__NLA_ENSURE(tp == NLA_S8 || tp == NLA_U8 || \