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