be2net: Fix EEH error reset before a flash dump completes
authorSomnath Kotur <somnath.kotur@emulex.com>
Wed, 2 May 2012 03:41:01 +0000 (03:41 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 3 May 2012 01:07:24 +0000 (21:07 -0400)
An EEH error can cause the FW to trigger a flash debug dump.
Resetting the card while flash dump is in progress can cause it not to recover.
Wait for it to finish before letting EEH flow to reset the card.

Signed-off-by: Sathya Perla <Sathya.Perla@emulex.com>
Signed-off-by: Somnath Kotur <somnath.kotur@emulex.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/emulex/benet/be_main.c

index b7bc905a93fbacfe1df209d3d3c4b0bd2c03eb7d..6d5d30be0481297dcb0f6bf614bb81f5cd1c8e96 100644 (file)
@@ -3821,6 +3821,11 @@ static pci_ers_result_t be_eeh_err_detected(struct pci_dev *pdev,
 
        pci_disable_device(pdev);
 
+       /* The error could cause the FW to trigger a flash debug dump.
+        * Resetting the card while flash dump is in progress
+        * can cause it not to recover; wait for it to finish
+        */
+       ssleep(30);
        return PCI_ERS_RESULT_NEED_RESET;
 }