summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Hodgson <shodgson@solarflare.com>2010-04-28 11:28:52 +0200
committerDavid S. Miller <davem@davemloft.net>2010-04-28 21:44:36 +0200
commit97e1eaa0e943439208a692b00dce4a8a3006760f (patch)
tree7cf4548e8f8ccd304d1746c035479026f7771a01
parentsfc: Log specific message for failure of NVRAM self-test (diff)
downloadlinux-97e1eaa0e943439208a692b00dce4a8a3006760f.tar.xz
linux-97e1eaa0e943439208a692b00dce4a8a3006760f.zip
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>
-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 b61674cb0c19..4105f9099c7c 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)
error ? "disabling bus mastering" : "no recognised error");
/* If this is a memory parity error dump which blocks are offending */
- mem_perr = EFX_OWORD_FIELD(fatal_intr, FRF_AZ_MEM_PERR_INT_KER);
+ mem_perr = (EFX_OWORD_FIELD(fatal_intr, FRF_AZ_MEM_PERR_INT_KER) ||
+ EFX_OWORD_FIELD(fatal_intr, FRF_AZ_SRM_PERR_INT_KER));
if (mem_perr) {
efx_oword_t reg;
efx_reado(efx, &reg, FR_AZ_MEM_STAT);