Commit 1f9610e4 authored by Catherine Sullivan's avatar Catherine Sullivan Committed by Jeff Kirsher

i40e: Move the saving of old link info from handle_link_event to link_event

The watchdog only calls link_event not handle_link_event which means
that we need to save the old information in link_event.

Previously when polling we were comparing current data to the old data
saved the last time we actually received a link event. This means that
the polling would only fix link status changes in one direction
depending on what the last old data saved off was.

Change-ID: Ie590f30fdbcb133d0ddad4e07e3eb1aad58255b3
Signed-off-by: default avatarCatherine Sullivan <catherine.sullivan@intel.com>
Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent 164c9f54
...@@ -6016,6 +6016,9 @@ static void i40e_link_event(struct i40e_pf *pf) ...@@ -6016,6 +6016,9 @@ static void i40e_link_event(struct i40e_pf *pf)
i40e_status status; i40e_status status;
bool new_link, old_link; bool new_link, old_link;
/* save off old link status information */
pf->hw.phy.link_info_old = pf->hw.phy.link_info;
/* set this to force the get_link_status call to refresh state */ /* set this to force the get_link_status call to refresh state */
pf->hw.phy.get_link_info = true; pf->hw.phy.get_link_info = true;
...@@ -6150,13 +6153,9 @@ static void i40e_reset_subtask(struct i40e_pf *pf) ...@@ -6150,13 +6153,9 @@ static void i40e_reset_subtask(struct i40e_pf *pf)
static void i40e_handle_link_event(struct i40e_pf *pf, static void i40e_handle_link_event(struct i40e_pf *pf,
struct i40e_arq_event_info *e) struct i40e_arq_event_info *e)
{ {
struct i40e_hw *hw = &pf->hw;
struct i40e_aqc_get_link_status *status = struct i40e_aqc_get_link_status *status =
(struct i40e_aqc_get_link_status *)&e->desc.params.raw; (struct i40e_aqc_get_link_status *)&e->desc.params.raw;
/* save off old link status information */
hw->phy.link_info_old = hw->phy.link_info;
/* Do a new status request to re-enable LSE reporting /* Do a new status request to re-enable LSE reporting
* and load new status information into the hw struct * and load new status information into the hw struct
* This completely ignores any state information * This completely ignores any state information
......
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