diff options
author | Tony Nguyen <anthony.l.nguyen@intel.com> | 2020-06-24 09:04:22 -0700 |
---|---|---|
committer | Tony Nguyen <anthony.l.nguyen@intel.com> | 2020-07-01 14:45:59 -0700 |
commit | 9358076642f14cec8c414850d5a909cafca3a9d6 (patch) | |
tree | 1082d0eebe058005321f27968be7e01575204221 /drivers/net/ethernet/intel/iavf/iavf_main.c | |
parent | 44ea803e2fa7e12adb5d6260da4e4956e784effb (diff) | |
download | lwn-9358076642f14cec8c414850d5a909cafca3a9d6.tar.gz lwn-9358076642f14cec8c414850d5a909cafca3a9d6.zip |
iavf: Fix updating statistics
Commit bac8486116b0 ("iavf: Refactor the watchdog state machine") inverted
the logic for when to update statistics. Statistics should be updated when
no other commands are pending, instead they were only requested when a
command was processed. iavf_request_stats() would see a pending request
and not request statistics to be updated. This caused statistics to never
be updated; fix the logic.
Fixes: bac8486116b0 ("iavf: Refactor the watchdog state machine")
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Diffstat (limited to 'drivers/net/ethernet/intel/iavf/iavf_main.c')
-rw-r--r-- | drivers/net/ethernet/intel/iavf/iavf_main.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/ethernet/intel/iavf/iavf_main.c b/drivers/net/ethernet/intel/iavf/iavf_main.c index b90ad1abbabb..48c956d90b90 100644 --- a/drivers/net/ethernet/intel/iavf/iavf_main.c +++ b/drivers/net/ethernet/intel/iavf/iavf_main.c @@ -1937,7 +1937,10 @@ static void iavf_watchdog_task(struct work_struct *work) iavf_send_api_ver(adapter); } } else { - if (!iavf_process_aq_command(adapter) && + /* An error will be returned if no commands were + * processed; use this opportunity to update stats + */ + if (iavf_process_aq_command(adapter) && adapter->state == __IAVF_RUNNING) iavf_request_stats(adapter); } |