lkml.org 
[lkml]   [2021]   [Feb]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.4 63/65] net: dsa: mv88e6xxx: override existent unicast portvec in port_fdb_add
    Date
    From: DENG Qingfang <dqfext@gmail.com>

    commit f72f2fb8fb6be095b98af5d740ac50cffd0b0cae upstream.

    Having multiple destination ports for a unicast address does not make
    sense.
    Make port_db_load_purge override existent unicast portvec instead of
    adding a new port bit.

    Fixes: 884729399260 ("net: dsa: mv88e6xxx: handle multiple ports in ATU")
    Signed-off-by: DENG Qingfang <dqfext@gmail.com>
    Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
    Link: https://lore.kernel.org/r/20210130134334.10243-1-dqfext@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/net/dsa/mv88e6xxx/chip.c | 6 +++++-
    1 file changed, 5 insertions(+), 1 deletion(-)

    --- a/drivers/net/dsa/mv88e6xxx/chip.c
    +++ b/drivers/net/dsa/mv88e6xxx/chip.c
    @@ -1517,7 +1517,11 @@ static int mv88e6xxx_port_db_load_purge(
    if (!entry.portvec)
    entry.state = 0;
    } else {
    - entry.portvec |= BIT(port);
    + if (state == MV88E6XXX_G1_ATU_DATA_STATE_UC_STATIC)
    + entry.portvec = BIT(port);
    + else
    + entry.portvec |= BIT(port);
    +
    entry.state = state;
    }


    \
     
     \ /
      Last update: 2021-02-08 17:53    [W:4.276 / U:0.336 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site