Henrik Bjoernlund
2020-Oct-07 12:07 UTC
[Bridge] [PATCH net] bridge: Netlink interface fix.
This commit is correcting NETLINK br_fill_ifinfo() to be able to handle 'filter_mask' with multiple flags asserted. Fixes: 36a8e8e265420 ("bridge: Extend br_fill_ifinfo to return MPR status") Signed-off-by: Henrik Bjoernlund <henrik.bjoernlund at microchip.com> Reviewed-by: Horatiu Vultur <horatiu.vultur at microchip.com> Suggested-by: Nikolay Aleksandrov <nikolay at nvidia.com> Tested-by: Horatiu Vultur <horatiu.vultur at microchip.com> --- net/bridge/br_netlink.c | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/net/bridge/br_netlink.c b/net/bridge/br_netlink.c index 8a71c60fa357..92d64abffa87 100644 --- a/net/bridge/br_netlink.c +++ b/net/bridge/br_netlink.c @@ -380,6 +380,7 @@ static int br_fill_ifinfo(struct sk_buff *skb, u32 filter_mask, const struct net_device *dev) { u8 operstate = netif_running(dev) ? dev->operstate : IF_OPER_DOWN; + struct nlattr *af = NULL; struct net_bridge *br; struct ifinfomsg *hdr; struct nlmsghdr *nlh; @@ -423,11 +424,18 @@ static int br_fill_ifinfo(struct sk_buff *skb, nla_nest_end(skb, nest); } + if (filter_mask & (RTEXT_FILTER_BRVLAN | + RTEXT_FILTER_BRVLAN_COMPRESSED | + RTEXT_FILTER_MRP)) { + af = nla_nest_start_noflag(skb, IFLA_AF_SPEC); + if (!af) + goto nla_put_failure; + } + /* Check if the VID information is requested */ if ((filter_mask & RTEXT_FILTER_BRVLAN) || (filter_mask & RTEXT_FILTER_BRVLAN_COMPRESSED)) { struct net_bridge_vlan_group *vg; - struct nlattr *af; int err; /* RCU needed because of the VLAN locking rules (rcu || rtnl) */ @@ -441,11 +449,6 @@ static int br_fill_ifinfo(struct sk_buff *skb, rcu_read_unlock(); goto done; } - af = nla_nest_start_noflag(skb, IFLA_AF_SPEC); - if (!af) { - rcu_read_unlock(); - goto nla_put_failure; - } if (filter_mask & RTEXT_FILTER_BRVLAN_COMPRESSED) err = br_fill_ifvlaninfo_compressed(skb, vg); else @@ -456,32 +459,25 @@ static int br_fill_ifinfo(struct sk_buff *skb, rcu_read_unlock(); if (err) goto nla_put_failure; - - nla_nest_end(skb, af); } if (filter_mask & RTEXT_FILTER_MRP) { - struct nlattr *af; int err; if (!br_mrp_enabled(br) || port) goto done; - af = nla_nest_start_noflag(skb, IFLA_AF_SPEC); - if (!af) - goto nla_put_failure; - rcu_read_lock(); err = br_mrp_fill_info(skb, br); rcu_read_unlock(); if (err) goto nla_put_failure; - - nla_nest_end(skb, af); } done: + if (af) + nla_nest_end(skb, af); nlmsg_end(skb, nlh); return 0; -- 2.28.0
Nikolay Aleksandrov
2020-Oct-07 14:49 UTC
[Bridge] [PATCH net] bridge: Netlink interface fix.
On Wed, 2020-10-07 at 12:07 +0000, Henrik Bjoernlund wrote:> This commit is correcting NETLINK br_fill_ifinfo() to be able to > handle 'filter_mask' with multiple flags asserted. > > Fixes: 36a8e8e265420 ("bridge: Extend br_fill_ifinfo to return MPR status") > > Signed-off-by: Henrik Bjoernlund <henrik.bjoernlund at microchip.com> > Reviewed-by: Horatiu Vultur <horatiu.vultur at microchip.com> > Suggested-by: Nikolay Aleksandrov <nikolay at nvidia.com> > Tested-by: Horatiu Vultur <horatiu.vultur at microchip.com> > --- > net/bridge/br_netlink.c | 26 +++++++++++--------------- > 1 file changed, 11 insertions(+), 15 deletions(-) >The patch looks good, please don't separate the Fixes tag from the others. Acked-by: Nikolay Aleksandrov <nikolay at nvidia.com>
patchwork-bot+netdevbpf at kernel.org
2020-Oct-08 20:00 UTC
[Bridge] [PATCH net] bridge: Netlink interface fix.
Hello: This patch was applied to netdev/net.git (refs/heads/master): On Wed, 7 Oct 2020 12:07:00 +0000 you wrote:> This commit is correcting NETLINK br_fill_ifinfo() to be able to > handle 'filter_mask' with multiple flags asserted. > > Fixes: 36a8e8e265420 ("bridge: Extend br_fill_ifinfo to return MPR status") > > Signed-off-by: Henrik Bjoernlund <henrik.bjoernlund at microchip.com> > Reviewed-by: Horatiu Vultur <horatiu.vultur at microchip.com> > Suggested-by: Nikolay Aleksandrov <nikolay at nvidia.com> > Tested-by: Horatiu Vultur <horatiu.vultur at microchip.com> > > [...]Here is the summary with links: - [net] bridge: Netlink interface fix. https://git.kernel.org/netdev/net/c/b6c02ef54913 You are awesome, thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html