Explorar o código

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>
Steve Hodgson %!s(int64=15) %!d(string=hai) anos
pai
achega
97e1eaa0e9
Modificáronse 1 ficheiros con 2 adicións e 1 borrados
  1. 2 1
      drivers/net/sfc/nic.c

+ 2 - 1
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");
 		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);