]> git.baikalelectronics.ru Git - kernel.git/commit
sfc: support cascaded multicast filters
authorDaniel Pieczko <dpieczko@solarflare.com>
Tue, 21 Jul 2015 14:10:44 +0000 (15:10 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 22 Jul 2015 05:21:32 +0000 (22:21 -0700)
commit46820b763423805b34ca8b7a5a6dd6b04ec85252
tree3338b11c5138f79b5e275ad3524714b87e42409d
parentff72183da916c9c01c7544a4b20c7e37257b9a49
sfc: support cascaded multicast filters

If the workaround to support cascaded multicast filters ("workaround_26807") is
enabled, the broadcast filter and individual multicast filters are not inserted
when in promiscuous or allmulti mode.

There is a race while inserting and removing filters when entering and leaving
promiscuous mode.  When changing promiscuous state with cascaded multicast
filters, the old multicast filters are removed before inserting the new filters
to avoid duplicating packets; this can lead to dropped packets until all
filters have been inserted.

The efx_nic:mc_promisc flag is added to record the presence of a multicast
promiscuous filter; this gives a simple way to tell if the promiscuous state is
changing.

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