Commit 9df42d1a authored by Anjali Singhai Jain's avatar Anjali Singhai Jain Committed by Jeff Kirsher

i40e: Fix the EMPR interrupt received handling

We shouldn't trigger another EMPR when we receive an EMPR event.
This patch handles EMPR event reception with a different state
so that we can do the right thing for NVM.

Change-ID: I9cac70b3658600f016a65beb6fb157e1c1f9adf9
Signed-off-by: default avatarAnjali Singhai Jain <anjali.singhai@intel.com>
Tested-by: default avatarJim Young <james.m.young@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent 5098850c
...@@ -140,6 +140,7 @@ enum i40e_state_t { ...@@ -140,6 +140,7 @@ enum i40e_state_t {
__I40E_CORE_RESET_REQUESTED, __I40E_CORE_RESET_REQUESTED,
__I40E_GLOBAL_RESET_REQUESTED, __I40E_GLOBAL_RESET_REQUESTED,
__I40E_EMP_RESET_REQUESTED, __I40E_EMP_RESET_REQUESTED,
__I40E_EMP_RESET_INTR_RECEIVED,
__I40E_FILTER_OVERFLOW_PROMISC, __I40E_FILTER_OVERFLOW_PROMISC,
__I40E_SUSPENDED, __I40E_SUSPENDED,
__I40E_PTP_TX_IN_PROGRESS, __I40E_PTP_TX_IN_PROGRESS,
......
...@@ -3171,7 +3171,7 @@ static irqreturn_t i40e_intr(int irq, void *data) ...@@ -3171,7 +3171,7 @@ static irqreturn_t i40e_intr(int irq, void *data)
pf->globr_count++; pf->globr_count++;
} else if (val == I40E_RESET_EMPR) { } else if (val == I40E_RESET_EMPR) {
pf->empr_count++; pf->empr_count++;
set_bit(__I40E_EMP_RESET_REQUESTED, &pf->state); set_bit(__I40E_EMP_RESET_INTR_RECEIVED, &pf->state);
} }
} }
...@@ -6179,10 +6179,8 @@ static void i40e_reset_and_rebuild(struct i40e_pf *pf, bool reinit) ...@@ -6179,10 +6179,8 @@ static void i40e_reset_and_rebuild(struct i40e_pf *pf, bool reinit)
} }
/* re-verify the eeprom if we just had an EMP reset */ /* re-verify the eeprom if we just had an EMP reset */
if (test_bit(__I40E_EMP_RESET_REQUESTED, &pf->state)) { if (test_and_clear_bit(__I40E_EMP_RESET_INTR_RECEIVED, &pf->state))
clear_bit(__I40E_EMP_RESET_REQUESTED, &pf->state);
i40e_verify_eeprom(pf); i40e_verify_eeprom(pf);
}
i40e_clear_pxe_mode(hw); i40e_clear_pxe_mode(hw);
ret = i40e_get_capabilities(pf); ret = i40e_get_capabilities(pf);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment