lkml.org 
[lkml]   [2018]   [Mar]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.15 068/122] bridge: Fix VLAN reference count problem
    Date
    4.15-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Ido Schimmel <idosch@mellanox.com>


    [ Upstream commit 0e5a82efda872c2469c210957d7d4161ef8f4391 ]

    When a VLAN is added on a port, a reference is taken on the
    corresponding master VLAN entry. If it does not already exist, then it
    is created and a reference taken.

    However, in the second case a reference is not really taken when
    CONFIG_REFCOUNT_FULL is enabled as refcount_inc() is replaced by
    refcount_inc_not_zero().

    Fix this by using refcount_set() on a newly created master VLAN entry.

    Fixes: 251277598596 ("net, bridge: convert net_bridge_vlan.refcnt from atomic_t to refcount_t")
    Signed-off-by: Ido Schimmel <idosch@mellanox.com>
    Acked-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    net/bridge/br_vlan.c | 2 ++
    1 file changed, 2 insertions(+)

    --- a/net/bridge/br_vlan.c
    +++ b/net/bridge/br_vlan.c
    @@ -168,6 +168,8 @@ static struct net_bridge_vlan *br_vlan_g
    masterv = br_vlan_find(vg, vid);
    if (WARN_ON(!masterv))
    return NULL;
    + refcount_set(&masterv->refcnt, 1);
    + return masterv;
    }
    refcount_inc(&masterv->refcnt);


    \
     
     \ /
      Last update: 2018-03-07 21:38    [W:4.404 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site