|
@@ -23,6 +23,7 @@
|
|
|
#include <linux/gfp.h>
|
|
|
#include <linux/cpu_rmap.h>
|
|
|
#include <linux/aer.h>
|
|
|
+#include <linux/interrupt.h>
|
|
|
#include "net_driver.h"
|
|
|
#include "efx.h"
|
|
|
#include "nic.h"
|
|
@@ -1427,6 +1428,10 @@ static void efx_start_interrupts(struct efx_nic *efx, bool may_keep_eventq)
|
|
|
|
|
|
BUG_ON(efx->state == STATE_DISABLED);
|
|
|
|
|
|
+ if (efx->eeh_disabled_legacy_irq) {
|
|
|
+ enable_irq(efx->legacy_irq);
|
|
|
+ efx->eeh_disabled_legacy_irq = false;
|
|
|
+ }
|
|
|
if (efx->legacy_irq)
|
|
|
efx->legacy_irq_enabled = true;
|
|
|
efx_nic_enable_interrupts(efx);
|
|
@@ -2365,7 +2370,7 @@ out:
|
|
|
* Returns 0 if the recovery mechanisms are unsuccessful.
|
|
|
* Returns a non-zero value otherwise.
|
|
|
*/
|
|
|
-static int efx_try_recovery(struct efx_nic *efx)
|
|
|
+int efx_try_recovery(struct efx_nic *efx)
|
|
|
{
|
|
|
#ifdef CONFIG_EEH
|
|
|
/* A PCI error can occur and not be seen by EEH because nothing
|