linux/drivers/net/ethernet/sfc
Ben Hutchings 964e61355e sfc: Cleanup Falcon-arch simple MAC filter state
On Falcon we implement MAC filtering requested by the stack using the
MAC wrapper's single unicast filter and multicast hash filter.  Siena
is very similar, though MAC configuration is mediated by the MC.

Since MCDI operations may sleep, reconfiguration is deferred from
ndo_set_rx_mode to a work item.  However, it still updates the private
variables describing the filter state synchronously.  Contrary to
comments, the later use of these variables is not protected using the
address lock, resulting in race conditions.

Move the state update to a new function
efx_farch_filter_sync_rx_mode() and make the Falcon-arch MAC
configuration functions call that, so that its use is consistently
serialised by the mac_lock.

Invert and rename the promiscuous flag to the more accurate
unicast_filter, and comment that both this and multicast_hash are
not used on EF10.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
2013-08-22 19:26:02 +01:00
..
Kconfig sfc: Fix Kconfig typo "----help---" 2013-03-18 10:50:23 +01:00
Makefile sfc: Make most filter operations NIC-type-specific 2013-08-22 19:25:57 +01:00
bitfield.h sfc: Add parentheses around use of bitfield macro arguments 2012-10-02 01:58:39 +01:00
efx.c sfc: Cleanup Falcon-arch simple MAC filter state 2013-08-22 19:26:02 +01:00
efx.h sfc: Make most filter operations NIC-type-specific 2013-08-22 19:25:57 +01:00
enum.h sfc: Add AER and EEH support for Siena 2013-03-07 20:22:04 +00:00
ethtool.c sfc: Extend and abstract efx_filter_spec to cover Huntington/EF10 2013-08-22 19:25:53 +01:00
falcon.c sfc: Cleanup Falcon-arch simple MAC filter state 2013-08-22 19:26:02 +01:00
falcon_boards.c sfc: Change state names to be clearer, and comment them 2012-08-24 20:10:18 +01:00
farch.c sfc: Cleanup Falcon-arch simple MAC filter state 2013-08-22 19:26:02 +01:00
farch_regs.h sfc: Rename Falcon-architecture register definitions 2013-08-21 19:44:20 +01:00
filter.h sfc: Add flag for stack-owned RX MAC filters 2013-08-22 19:25:59 +01:00
io.h sfc: const-qualify source pointers for MMIO write functions 2013-08-21 14:20:19 +01:00
mcdi.c sfc: Fix race in completion handling 2013-08-21 20:20:39 +01:00
mcdi.h sfc: Define and use MCDI_POPULATE_DWORD_{1,2,3,4,5,6,7} 2013-08-22 19:26:01 +01:00
mcdi_mon.c sfc: Add GFP flags to efx_nic_alloc_buffer() and make most callers allow blocking 2013-08-21 19:43:47 +01:00
mcdi_pcol.h sfc: Update MCDI protocol definitions for EF10 2013-08-21 20:20:37 +01:00
mcdi_port.c sfc: Cleanup Falcon-arch simple MAC filter state 2013-08-22 19:26:02 +01:00
mdio_10g.c sfc: Fix some formatting errors reported by checkpatch 2012-01-05 18:44:49 +00:00
mdio_10g.h
mtd.c sfc: Expose FPGA bitfile partition through MTD 2012-09-19 02:56:24 +01:00
net_driver.h sfc: Cleanup Falcon-arch simple MAC filter state 2013-08-22 19:26:02 +01:00
nic.c sfc: Move and rename Falcon/Siena common NIC operations 2013-08-21 20:19:05 +01:00
nic.h sfc: Cleanup Falcon-arch simple MAC filter state 2013-08-22 19:26:02 +01:00
phy.h sfc: Collect all MCDI port functions into mcdi_port.c 2013-08-21 19:43:03 +01:00
ptp.c sfc: Add support for MCDI v2 2013-08-21 20:20:38 +01:00
qt202x_phy.c sfc: Implement module EEPROM access for SFE4002 and SFN4112F 2012-05-10 03:10:54 +01:00
rx.c sfc: Make most filter operations NIC-type-specific 2013-08-22 19:25:57 +01:00
selftest.c sfc: Remove efx_process_channel_now() 2013-08-21 19:44:31 +01:00
selftest.h sfc: Run event/IRQ self-test asynchronously when interface is brought up 2012-03-06 18:14:15 +00:00
siena.c sfc: Cleanup Falcon-arch simple MAC filter state 2013-08-22 19:26:02 +01:00
siena_sriov.c sfc: Move and rename Falcon/Siena common NIC operations 2013-08-21 20:19:05 +01:00
spi.h sfc: Fix some formatting errors reported by checkpatch 2012-01-05 18:44:49 +00:00
tenxpress.c sfc: Fix some formatting errors reported by checkpatch 2012-01-05 18:44:49 +00:00
tx.c sfc: Refactor queue teardown sequence to allow for EF10 flush behaviour 2013-08-21 19:49:23 +01:00
txc43128_phy.c sfc: Const-qualify static data as appropriate, partly prompted by checkpatch 2012-01-09 17:08:13 +00:00
vfdi.h sfc: Specify that the VFDI status page has page alignment and size 2012-02-22 20:48:07 +00:00
workarounds.h sfc: EFX_WORKAROUND_ALWAYS is really specific to Falcon-architecture 2013-08-21 20:20:43 +01:00