aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/sfc/net_driver.h
diff options
context:
space:
mode:
authorSteve Hodgson <shodgson@solarflare.com>2010-04-28 05:27:36 -0400
committerDavid S. Miller <davem@davemloft.net>2010-04-28 15:44:32 -0400
commit6369545945b90daa1a73fca174da9194c398417c (patch)
tree1331418d5c6b547eed8154fedceed68585506aa5 /drivers/net/sfc/net_driver.h
parent00bbb4a5344a5f81cf5d48e781e5c0df3e588d17 (diff)
sfc: Handle serious errors in exactly one interrupt handler
'Fatal' errors set an interrupt flag associated with a specific event queue; only read the syndrome vector if we see that queue's flag set (legacy interrupts) or in the interrupt handler for that queue (MSI). Do not ignore an interrupt if the fatal error flag is set but specific error flags are all zero. Even if we don't schedule a reset, we must respect the queue mask and rearm the appropriate event queues. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/sfc/net_driver.h')
-rw-r--r--drivers/net/sfc/net_driver.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/sfc/net_driver.h b/drivers/net/sfc/net_driver.h
index cb018e272097..70aea3af9ae7 100644
--- a/drivers/net/sfc/net_driver.h
+++ b/drivers/net/sfc/net_driver.h
@@ -672,6 +672,7 @@ union efx_multicast_hash {
672 * This register is written with the SMP processor ID whenever an 672 * This register is written with the SMP processor ID whenever an
673 * interrupt is handled. It is used by efx_nic_test_interrupt() 673 * interrupt is handled. It is used by efx_nic_test_interrupt()
674 * to verify that an interrupt has occurred. 674 * to verify that an interrupt has occurred.
675 * @fatal_irq_level: IRQ level (bit number) used for serious errors
675 * @spi_flash: SPI flash device 676 * @spi_flash: SPI flash device
676 * This field will be %NULL if no flash device is present (or for Siena). 677 * This field will be %NULL if no flash device is present (or for Siena).
677 * @spi_eeprom: SPI EEPROM device 678 * @spi_eeprom: SPI EEPROM device
@@ -756,6 +757,7 @@ struct efx_nic {
756 struct efx_buffer irq_status; 757 struct efx_buffer irq_status;
757 volatile signed int last_irq_cpu; 758 volatile signed int last_irq_cpu;
758 unsigned long irq_zero_count; 759 unsigned long irq_zero_count;
760 unsigned fatal_irq_level;
759 761
760 struct efx_spi_device *spi_flash; 762 struct efx_spi_device *spi_flash;
761 struct efx_spi_device *spi_eeprom; 763 struct efx_spi_device *spi_eeprom;