]> 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)
commit61895e86a9f48bdd79f3bd0c2842ab54e7f27072
tree3338b11c5138f79b5e275ad3524714b87e42409d
parent53bf73b3ad5dc8fc7fb69a56ed2071e0a62206e5
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