sfc: don't insert mc_list on low-latency firmware if it's too long
authorEdward Cree <ecree@solarflare.com>
Tue, 4 Apr 2017 16:02:49 +0000 (17:02 +0100)
committerDavid S. Miller <davem@davemloft.net>
Thu, 6 Apr 2017 01:35:21 +0000 (18:35 -0700)
commit148cbab6cffc8247d7dfd0f2da86c2eb8c55709c
treecb38eb1a53238ee87e4cc7737433e2a16e6eb633
parenta4b7c07fdffdd0fb2706ebfa99657687f1880282
sfc: don't insert mc_list on low-latency firmware if it's too long

If the mc_list is longer than 256 addresses, we enter mc_promisc mode.
If we're in mc_promisc mode and the firmware doesn't support cascaded
 multicast, normally we also insert our mc_list, to prevent stealing by
 another VI.  However, if the mc_list was too long, this isn't really
 helpful - the MC groups that didn't fit in the list can still get
 stolen, and having only some of them stealable will probably cause
 more confusing behaviour than having them all stealable.  Since
 inserting 256 multicast filters takes a long time and can lead to MCDI
 state machine timeouts, just skip the mc_list insert in this overflow
 condition.

Signed-off-by: Edward Cree <ecree@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/sfc/ef10.c