lkml.org 
[lkml]   [2022]   [May]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.17 043/114] net: dsa: bcm_sf2: Fix Wake-on-LAN with mac_link_down()
    Date
    From: Florian Fainelli <f.fainelli@gmail.com>

    [ Upstream commit b7be130c5d52e5224ac7d89568737b37b4c4b785 ]

    After commit 2d1f90f9ba83 ("net: dsa/bcm_sf2: fix incorrect usage of
    state->link") the interface suspend path would call our mac_link_down()
    call back which would forcibly set the link down, thus preventing
    Wake-on-LAN packets from reaching our management port.

    Fix this by looking at whether the port is enabled for Wake-on-LAN and
    not clearing the link status in that case to let packets go through.

    Fixes: 2d1f90f9ba83 ("net: dsa/bcm_sf2: fix incorrect usage of state->link")
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Link: https://lore.kernel.org/r/20220512021731.2494261-1-f.fainelli@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/dsa/bcm_sf2.c | 3 +++
    1 file changed, 3 insertions(+)

    diff --git a/drivers/net/dsa/bcm_sf2.c b/drivers/net/dsa/bcm_sf2.c
    index 6afb5db8244c..6d15a743219f 100644
    --- a/drivers/net/dsa/bcm_sf2.c
    +++ b/drivers/net/dsa/bcm_sf2.c
    @@ -833,6 +833,9 @@ static void bcm_sf2_sw_mac_link_down(struct dsa_switch *ds, int port,
    struct bcm_sf2_priv *priv = bcm_sf2_to_priv(ds);
    u32 reg, offset;

    + if (priv->wol_ports_mask & BIT(port))
    + return;
    +
    if (port != core_readl(priv, CORE_IMP0_PRT_ID)) {
    if (priv->type == BCM4908_DEVICE_ID ||
    priv->type == BCM7445_DEVICE_ID)
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-05-16 22:33    [W:4.112 / U:0.316 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site