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>
This commit is contained in:
Steve Hodgson 2010-04-28 09:28:52 +00:00 committed by David S. Miller
parent b548a988a9
commit 97e1eaa0e9

View File

@ -1287,7 +1287,8 @@ irqreturn_t efx_nic_fatal_interrupt(struct efx_nic *efx)
error ? "disabling bus mastering" : "no recognised error"); error ? "disabling bus mastering" : "no recognised error");
/* If this is a memory parity error dump which blocks are offending */ /* 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) { if (mem_perr) {
efx_oword_t reg; efx_oword_t reg;
efx_reado(efx, &reg, FR_AZ_MEM_STAT); efx_reado(efx, &reg, FR_AZ_MEM_STAT);