lkml.org 
[lkml]   [2022]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 247/846] net: dsa: hellcreek: Fix insertion of static FDB entries
    Date
    From: Kurt Kanzenbach <kurt@linutronix.de>

    [ Upstream commit 4db4c3ea56978086ca367a355e440de17d534827 ]

    The insertion of static FDB entries ignores the pass_blocked bit. That bit is
    evaluated with regards to STP. Add the missing functionality.

    Fixes: e4b27ebc780f ("net: dsa: Add DSA driver for Hirschmann Hellcreek switches")
    Signed-off-by: Kurt Kanzenbach <kurt@linutronix.de>
    Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
    Acked-by: Richard Cochran <richardcochran@gmail.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/dsa/hirschmann/hellcreek.c | 7 +++++--
    1 file changed, 5 insertions(+), 2 deletions(-)

    diff --git a/drivers/net/dsa/hirschmann/hellcreek.c b/drivers/net/dsa/hirschmann/hellcreek.c
    index 354655f9ed003..2afd6a4f02b88 100644
    --- a/drivers/net/dsa/hirschmann/hellcreek.c
    +++ b/drivers/net/dsa/hirschmann/hellcreek.c
    @@ -710,8 +710,9 @@ static int __hellcreek_fdb_add(struct hellcreek *hellcreek,
    u16 meta = 0;

    dev_dbg(hellcreek->dev, "Add static FDB entry: MAC=%pM, MASK=0x%02x, "
    - "OBT=%d, REPRIO_EN=%d, PRIO=%d\n", entry->mac, entry->portmask,
    - entry->is_obt, entry->reprio_en, entry->reprio_tc);
    + "OBT=%d, PASS_BLOCKED=%d, REPRIO_EN=%d, PRIO=%d\n", entry->mac,
    + entry->portmask, entry->is_obt, entry->pass_blocked,
    + entry->reprio_en, entry->reprio_tc);

    /* Add mac address */
    hellcreek_write(hellcreek, entry->mac[1] | (entry->mac[0] << 8), HR_FDBWDH);
    @@ -722,6 +723,8 @@ static int __hellcreek_fdb_add(struct hellcreek *hellcreek,
    meta |= entry->portmask << HR_FDBWRM0_PORTMASK_SHIFT;
    if (entry->is_obt)
    meta |= HR_FDBWRM0_OBT;
    + if (entry->pass_blocked)
    + meta |= HR_FDBWRM0_PASS_BLOCKED;
    if (entry->reprio_en) {
    meta |= HR_FDBWRM0_REPRIO_EN;
    meta |= entry->reprio_tc << HR_FDBWRM0_REPRIO_TC_SHIFT;
    --
    2.34.1


    \
     
     \ /
      Last update: 2022-01-24 22:09    [W:2.692 / U:0.376 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site