lkml.org 
[lkml]   [2019]   [May]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 114/266] bnxt_en: Improve multicast address setup logic.
    Date
    From: Michael Chan <michael.chan@broadcom.com>

    [ Upstream commit b4e30e8e7ea1d1e35ffd64ca46f7d9a7f227b4bf ]

    The driver builds a list of multicast addresses and sends it to the
    firmware when the driver's ndo_set_rx_mode() is called. In rare
    cases, the firmware can fail this call if internal resources to
    add multicast addresses are exhausted. In that case, we should
    try the call again by setting the ALL_MCAST flag which is more
    guaranteed to succeed.

    Fixes: c0c050c58d84 ("bnxt_en: New Broadcom ethernet driver.")
    Signed-off-by: Michael Chan <michael.chan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/net/ethernet/broadcom/bnxt/bnxt.c | 9 ++++++++-
    1 file changed, 8 insertions(+), 1 deletion(-)

    --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c
    +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
    @@ -4957,8 +4957,15 @@ static int bnxt_cfg_rx_mode(struct bnxt

    skip_uc:
    rc = bnxt_hwrm_cfa_l2_set_rx_mask(bp, 0);
    + if (rc && vnic->mc_list_count) {
    + netdev_info(bp->dev, "Failed setting MC filters rc: %d, turning on ALL_MCAST mode\n",
    + rc);
    + vnic->rx_mask |= CFA_L2_SET_RX_MASK_REQ_MASK_ALL_MCAST;
    + vnic->mc_list_count = 0;
    + rc = bnxt_hwrm_cfa_l2_set_rx_mask(bp, 0);
    + }
    if (rc)
    - netdev_err(bp->dev, "HWRM cfa l2 rx mask failure rc: %x\n",
    + netdev_err(bp->dev, "HWRM cfa l2 rx mask failure rc: %d\n",
    rc);

    return rc;

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