bnxt_en: Improve multicast address setup logic.
authorMichael Chan <michael.chan@broadcom.com>
Fri, 26 Apr 2019 02:31:50 +0000 (22:31 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 8 May 2019 05:19:05 +0000 (07:19 +0200)
commit4c3215b53cc901881be27faedcc5734d3a391c09
treeaafb53f634f8d0898438dbf2d18c537e970da3bb
parent71061f1a8f1630240c5b0b0d5b39ce708e7eb5ff
bnxt_en: Improve multicast address setup logic.

[ 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