aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/sfc
diff options
context:
space:
mode:
authorSteve Hodgson <shodgson@solarflare.com>2010-04-28 05:28:52 -0400
committerDavid S. Miller <davem@davemloft.net>2010-04-28 15:44:36 -0400
commit97e1eaa0e943439208a692b00dce4a8a3006760f (patch)
tree7cf4548e8f8ccd304d1746c035479026f7771a01 /drivers/net/sfc
parentb548a988a9d08f2b06f6810b1a4cde6f632bd307 (diff)
sfc: Read MEM_STAT for SRM_PERR as well as MEM_PERR errors
Parity errors in different blocks of SRAM may set one of two different interrupt flags. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/sfc')
-rw-r--r--drivers/net/sfc/nic.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/sfc/nic.c b/drivers/net/sfc/nic.c
index b61674cb0c1..4105f9099c7 100644
--- a/drivers/net/sfc/nic.c
+++ b/drivers/net/sfc/nic.c
@@ -1287,7 +1287,8 @@ irqreturn_t efx_nic_fatal_interrupt(struct efx_nic *efx)
1287 error ? "disabling bus mastering" : "no recognised error"); 1287 error ? "disabling bus mastering" : "no recognised error");
1288 1288
1289 /* If this is a memory parity error dump which blocks are offending */ 1289 /* If this is a memory parity error dump which blocks are offending */
1290 mem_perr = EFX_OWORD_FIELD(fatal_intr, FRF_AZ_MEM_PERR_INT_KER); 1290 mem_perr = (EFX_OWORD_FIELD(fatal_intr, FRF_AZ_MEM_PERR_INT_KER) ||
1291 EFX_OWORD_FIELD(fatal_intr, FRF_AZ_SRM_PERR_INT_KER));
1291 if (mem_perr) { 1292 if (mem_perr) {
1292 efx_oword_t reg; 1293 efx_oword_t reg;
1293 efx_reado(efx, &reg, FR_AZ_MEM_STAT); 1294 efx_reado(efx, &reg, FR_AZ_MEM_STAT);