lkml.org 
[lkml]   [2021]   [Jun]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.12 030/178] rtnetlink: Fix regression in bridge VLAN configuration
    Date
    From: Ido Schimmel <idosch@nvidia.com>

    [ Upstream commit d2e381c4963663bca6f30c3b996fa4dbafe8fcb5 ]

    Cited commit started returning errors when notification info is not
    filled by the bridge driver, resulting in the following regression:

    # ip link add name br1 type bridge vlan_filtering 1
    # bridge vlan add dev br1 vid 555 self pvid untagged
    RTNETLINK answers: Invalid argument

    As long as the bridge driver does not fill notification info for the
    bridge device itself, an empty notification should not be considered as
    an error. This is explained in commit 59ccaaaa49b5 ("bridge: dont send
    notification when skb->len == 0 in rtnl_bridge_notify").

    Fix by removing the error and add a comment to avoid future bugs.

    Fixes: a8db57c1d285 ("rtnetlink: Fix missing error code in rtnl_bridge_notify()")
    Signed-off-by: Ido Schimmel <idosch@nvidia.com>
    Reviewed-by: Nikolay Aleksandrov <nikolay@nvidia.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    net/core/rtnetlink.c | 8 +++++---
    1 file changed, 5 insertions(+), 3 deletions(-)

    diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
    index 9ad046917b34..2123427883ba 100644
    --- a/net/core/rtnetlink.c
    +++ b/net/core/rtnetlink.c
    @@ -4833,10 +4833,12 @@ static int rtnl_bridge_notify(struct net_device *dev)
    if (err < 0)
    goto errout;

    - if (!skb->len) {
    - err = -EINVAL;
    + /* Notification info is only filled for bridge ports, not the bridge
    + * device itself. Therefore, a zero notification length is valid and
    + * should not result in an error.
    + */
    + if (!skb->len)
    goto errout;
    - }

    rtnl_notify(skb, net, 0, RTNLGRP_LINK, NULL, GFP_ATOMIC);
    return 0;
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-06-21 18:39    [W:4.252 / U:0.076 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site