aboutsummaryrefslogtreecommitdiffstats
path: root/net/tipc/link.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/tipc/link.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/tipc/link.c')
-rw-r--r--net/tipc/link.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/net/tipc/link.c b/net/tipc/link.c
index 6053489c8063..0327c8ff8d48 100644
--- a/net/tipc/link.c
+++ b/net/tipc/link.c
@@ -2228,7 +2228,7 @@ static int __tipc_nl_add_stats(struct sk_buff *skb, struct tipc_stats *s)
2228 (s->accu_queue_sz / s->queue_sz_counts) : 0} 2228 (s->accu_queue_sz / s->queue_sz_counts) : 0}
2229 }; 2229 };
2230 2230
2231 stats = nla_nest_start(skb, TIPC_NLA_LINK_STATS); 2231 stats = nla_nest_start_noflag(skb, TIPC_NLA_LINK_STATS);
2232 if (!stats) 2232 if (!stats)
2233 return -EMSGSIZE; 2233 return -EMSGSIZE;
2234 2234
@@ -2260,7 +2260,7 @@ int __tipc_nl_add_link(struct net *net, struct tipc_nl_msg *msg,
2260 if (!hdr) 2260 if (!hdr)
2261 return -EMSGSIZE; 2261 return -EMSGSIZE;
2262 2262
2263 attrs = nla_nest_start(msg->skb, TIPC_NLA_LINK); 2263 attrs = nla_nest_start_noflag(msg->skb, TIPC_NLA_LINK);
2264 if (!attrs) 2264 if (!attrs)
2265 goto msg_full; 2265 goto msg_full;
2266 2266
@@ -2282,7 +2282,7 @@ int __tipc_nl_add_link(struct net *net, struct tipc_nl_msg *msg,
2282 if (nla_put_flag(msg->skb, TIPC_NLA_LINK_ACTIVE)) 2282 if (nla_put_flag(msg->skb, TIPC_NLA_LINK_ACTIVE))
2283 goto attr_msg_full; 2283 goto attr_msg_full;
2284 2284
2285 prop = nla_nest_start(msg->skb, TIPC_NLA_LINK_PROP); 2285 prop = nla_nest_start_noflag(msg->skb, TIPC_NLA_LINK_PROP);
2286 if (!prop) 2286 if (!prop)
2287 goto attr_msg_full; 2287 goto attr_msg_full;
2288 if (nla_put_u32(msg->skb, TIPC_NLA_PROP_PRIO, link->priority)) 2288 if (nla_put_u32(msg->skb, TIPC_NLA_PROP_PRIO, link->priority))
@@ -2349,7 +2349,7 @@ static int __tipc_nl_add_bc_link_stat(struct sk_buff *skb,
2349 (stats->accu_queue_sz / stats->queue_sz_counts) : 0} 2349 (stats->accu_queue_sz / stats->queue_sz_counts) : 0}
2350 }; 2350 };
2351 2351
2352 nest = nla_nest_start(skb, TIPC_NLA_LINK_STATS); 2352 nest = nla_nest_start_noflag(skb, TIPC_NLA_LINK_STATS);
2353 if (!nest) 2353 if (!nest)
2354 return -EMSGSIZE; 2354 return -EMSGSIZE;
2355 2355
@@ -2389,7 +2389,7 @@ int tipc_nl_add_bc_link(struct net *net, struct tipc_nl_msg *msg)
2389 return -EMSGSIZE; 2389 return -EMSGSIZE;
2390 } 2390 }
2391 2391
2392 attrs = nla_nest_start(msg->skb, TIPC_NLA_LINK); 2392 attrs = nla_nest_start_noflag(msg->skb, TIPC_NLA_LINK);
2393 if (!attrs) 2393 if (!attrs)
2394 goto msg_full; 2394 goto msg_full;
2395 2395
@@ -2406,7 +2406,7 @@ int tipc_nl_add_bc_link(struct net *net, struct tipc_nl_msg *msg)
2406 if (nla_put_u32(msg->skb, TIPC_NLA_LINK_TX, 0)) 2406 if (nla_put_u32(msg->skb, TIPC_NLA_LINK_TX, 0))
2407 goto attr_msg_full; 2407 goto attr_msg_full;
2408 2408
2409 prop = nla_nest_start(msg->skb, TIPC_NLA_LINK_PROP); 2409 prop = nla_nest_start_noflag(msg->skb, TIPC_NLA_LINK_PROP);
2410 if (!prop) 2410 if (!prop)
2411 goto attr_msg_full; 2411 goto attr_msg_full;
2412 if (nla_put_u32(msg->skb, TIPC_NLA_PROP_WIN, bcl->window)) 2412 if (nla_put_u32(msg->skb, TIPC_NLA_PROP_WIN, bcl->window))