From: Ben Hutchings Date: Mon, 1 Sep 2008 11:50:14 +0000 (+0100) Subject: sfc: Disable interrupts after a fatal interrupt occurs until reset X-Git-Tag: v2.6.28-rc1~717^2~195^2~46 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=0a62f1a681006719c226a682dbcfb4358c8b3d28;p=linux-2.6-omap-h63xx.git sfc: Disable interrupts after a fatal interrupt occurs until reset This should avoid an interrupt storm, which has been observed in the field with one faulty board. Signed-off-by: Ben Hutchings Signed-off-by: Jeff Garzik --- diff --git a/drivers/net/sfc/falcon.c b/drivers/net/sfc/falcon.c index 3a5289fe8d1..d30c938d0fb 100644 --- a/drivers/net/sfc/falcon.c +++ b/drivers/net/sfc/falcon.c @@ -1374,10 +1374,11 @@ static irqreturn_t falcon_fatal_interrupt(struct efx_nic *efx) EFX_OWORD_FMT "\n", EFX_OWORD_VAL(reg)); } - /* Disable DMA bus mastering on both devices */ + /* Disable both devices */ pci_disable_device(efx->pci_dev); if (FALCON_IS_DUAL_FUNC(efx)) pci_disable_device(nic_data->pci_dev2); + falcon_disable_interrupts(efx); if (++n_int_errors < FALCON_MAX_INT_ERRORS) { EFX_ERR(efx, "SYSTEM ERROR - reset scheduled\n");