sfc: Read MEM_STAT for SRM_PERR as well as MEM_PERR errors
authorSteve Hodgson <shodgson@solarflare.com>
Wed, 28 Apr 2010 09:28:52 +0000 (09:28 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 28 Apr 2010 19:44:36 +0000 (12:44 -0700)
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>
drivers/net/sfc/nic.c

index b61674cb0c19902ba9cfae2b1ded795924120498..4105f9099c7c29f02d66ce146e8223e85ced6c6c 100644 (file)
@@ -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);