iavf: Fix updating statistics
authorTony Nguyen <anthony.l.nguyen@intel.com>
Wed, 24 Jun 2020 16:04:22 +0000 (09:04 -0700)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Wed, 1 Jul 2020 21:45:59 +0000 (14:45 -0700)
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>
drivers/net/ethernet/intel/iavf/iavf_main.c

index b90ad1a..48c956d 100644 (file)
@@ -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);
                }