linux/drivers/net/ethernet/sfc
Ben Hutchings 1646a6f352 sfc: Clean up test interrupt handling
Interrupts are normally generated by the event queues, moderated by
timers.  However, they may also be triggered by detection of a 'fatal'
error condition (e.g. memory parity error) or by the host writing to
certain CSR fields as part of a self-test.

The IRQ level/index used for these on Falcon rev B0 and Siena is set
by the KER_INT_LEVE_SEL field and cached by the driver in
efx_nic::fatal_irq_level.  Since this value is also relevant to
self-tests rename the field to just 'irq_level'.

Avoid unnecessary cache traffic by using a per-channel 'last_irq_cpu'
field and only writing to the per-controller field when the interrupt
matches efx_nic::irq_level.  Remove the volatile qualifier and use
ACCESS_ONCE in the places we read these fields.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
2012-01-27 00:10:52 +00:00
..
Kconfig
Makefile
bitfield.h sfc: Fix some formatting errors reported by checkpatch 2012-01-05 18:44:49 +00:00
efx.c sfc: Correct interrupt timer quantum for Siena (normal and turbo mode) 2012-01-27 00:10:50 +00:00
efx.h sfc: Clean up test interrupt handling 2012-01-27 00:10:52 +00:00
enum.h
ethtool.c sfc: Remove dependence on NAPI polling in efx_test_eventq_irq() 2012-01-27 00:10:51 +00:00
falcon.c sfc: Clean up test interrupt handling 2012-01-27 00:10:52 +00:00
falcon_boards.c sfc: Const-qualify static data as appropriate, partly prompted by checkpatch 2012-01-09 17:08:13 +00:00
falcon_xmac.c sfc: Merge efx_mac_operations into efx_nic_type 2012-01-27 00:10:46 +00:00
filter.c sfc: Remove now-unused filter function 2012-01-04 14:10:23 -05:00
filter.h sfc: Add support for retrieving and removing filters by ID 2012-01-04 14:10:00 -05:00
io.h
mcdi.c sfc: Support extraction of CAPABILITIES from GET_BOARD_CFG response. 2012-01-27 00:10:49 +00:00
mcdi.h sfc: Support extraction of CAPABILITIES from GET_BOARD_CFG response. 2012-01-27 00:10:49 +00:00
mcdi_mac.c sfc: Remove efx_nic_type::push_multicast_hash operation 2012-01-27 00:10:48 +00:00
mcdi_pcol.h sfc: Update MCDI (firmware interface) definitions 2012-01-09 17:08:16 +00:00
mcdi_phy.c sfc: Update MCDI (firmware interface) definitions 2012-01-09 17:08:16 +00: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: Support extraction of CAPABILITIES from GET_BOARD_CFG response. 2012-01-27 00:10:49 +00:00
net_driver.h sfc: Clean up test interrupt handling 2012-01-27 00:10:52 +00:00
nic.c sfc: Clean up test interrupt handling 2012-01-27 00:10:52 +00:00
nic.h sfc: Correct interrupt timer quantum for Siena (normal and turbo mode) 2012-01-27 00:10:50 +00:00
phy.h
qt202x_phy.c sfc: Fix some formatting errors reported by checkpatch 2012-01-05 18:44:49 +00:00
regs.h
rx.c sfc: Remove parentheses around return expressions, reported by checkpatch 2012-01-05 18:54:04 +00:00
selftest.c sfc: Clean up test interrupt handling 2012-01-27 00:10:52 +00:00
selftest.h sfc: Remove dependence on NAPI polling in efx_test_eventq_irq() 2012-01-27 00:10:51 +00:00
siena.c sfc: Correct interrupt timer quantum for Siena (normal and turbo mode) 2012-01-27 00:10:50 +00: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: Use kcalloc instead of kzalloc to allocate array 2011-12-04 01:32:06 -05:00
txc43128_phy.c sfc: Const-qualify static data as appropriate, partly prompted by checkpatch 2012-01-09 17:08:13 +00:00
workarounds.h