aboutsummaryrefslogtreecommitdiffstats
path: root/net/openvswitch/conntrack.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2019-04-27 17:03:44 -0400
committerDavid S. Miller <davem@davemloft.net>2019-04-27 17:03:44 -0400
commitf6ad55a6a184ebdf3d98a90eab0895f73ce9797e (patch)
treeb49e3af8f5cac309bae80ad390ee8fc3b3679065 /net/openvswitch/conntrack.c
parentc7881b4a97e21b617b8243094dfa4b62028b956c (diff)
parentf78c6032c4cb89b408190afd4feb61ff4461a114 (diff)
Merge branch 'nla_nest_start'
Michal Kubecek says: ==================== make nla_nest_start() add NLA_F_NESTED flag One of the comments in recent review of the ethtool netlink series pointed out that proposed ethnl_nest_start() helper which adds NLA_F_NESTED to second argument of nla_nest_start() is not really specific to ethtool netlink code. That is hard to argue with as closer inspection revealed that exactly the same helper already exists in ipset code (except it's a macro rather than an inline function). Another observation was that even if NLA_F_NESTED flag was introduced in 2007, only few netlink based interfaces set it in kernel generated messages and even many recently added APIs omit it. That is unfortunate as without the flag, message parsers not familiar with attribute semantics cannot recognize nested attributes and do not see message structure; this affects e.g. wireshark dissector or mnl_nlmsg_fprintf() from libmnl. This is why I'm suggesting to rename existing nla_nest_start() to different name (nla_nest_start_noflag) and reintroduce nla_nest_start() as a wrapper adding NLA_F_NESTED flag. This is implemented in first patch which is mostly generated by spatch. Second patch drops ipset helper macros which lose their purpose. Third patch cleans up minor coding style issues found by checkpatch.pl in first patch. We could leave nla_nest_start() untouched and simply add a wrapper adding NLA_F_NESTED but that would probably preserve the state when even most new code doesn't set the flag. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/openvswitch/conntrack.c')
-rw-r--r--net/openvswitch/conntrack.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/net/openvswitch/conntrack.c b/net/openvswitch/conntrack.c
index 626629944450..ff8baf810bb3 100644
--- a/net/openvswitch/conntrack.c
+++ b/net/openvswitch/conntrack.c
@@ -1683,7 +1683,7 @@ static bool ovs_ct_nat_to_attr(const struct ovs_conntrack_info *info,
1683{ 1683{
1684 struct nlattr *start; 1684 struct nlattr *start;
1685 1685
1686 start = nla_nest_start(skb, OVS_CT_ATTR_NAT); 1686 start = nla_nest_start_noflag(skb, OVS_CT_ATTR_NAT);
1687 if (!start) 1687 if (!start)
1688 return false; 1688 return false;
1689 1689
@@ -1750,7 +1750,7 @@ int ovs_ct_action_to_attr(const struct ovs_conntrack_info *ct_info,
1750{ 1750{
1751 struct nlattr *start; 1751 struct nlattr *start;
1752 1752
1753 start = nla_nest_start(skb, OVS_ACTION_ATTR_CT); 1753 start = nla_nest_start_noflag(skb, OVS_ACTION_ATTR_CT);
1754 if (!start) 1754 if (!start)
1755 return -EMSGSIZE; 1755 return -EMSGSIZE;
1756 1756
@@ -2160,7 +2160,7 @@ static int ovs_ct_limit_cmd_get(struct sk_buff *skb, struct genl_info *info)
2160 if (IS_ERR(reply)) 2160 if (IS_ERR(reply))
2161 return PTR_ERR(reply); 2161 return PTR_ERR(reply);
2162 2162
2163 nla_reply = nla_nest_start(reply, OVS_CT_LIMIT_ATTR_ZONE_LIMIT); 2163 nla_reply = nla_nest_start_noflag(reply, OVS_CT_LIMIT_ATTR_ZONE_LIMIT);
2164 2164
2165 if (a[OVS_CT_LIMIT_ATTR_ZONE_LIMIT]) { 2165 if (a[OVS_CT_LIMIT_ATTR_ZONE_LIMIT]) {
2166 err = ovs_ct_limit_get_zone_limit( 2166 err = ovs_ct_limit_get_zone_limit(