iavf: add iavf_schedule_aq_request() helper

[ Upstream commit ed4cad33df ]

Add helper for set iavf aq request AVF_FLAG_AQ_* and immediately
schedule watchdog_task. Helper will be used in cases where it is
necessary to run aq requests asap

Signed-off-by: Petr Oros <poros@redhat.com>
Co-developed-by: Michal Schmidt <mschmidt@redhat.com>
Signed-off-by: Michal Schmidt <mschmidt@redhat.com>
Co-developed-by: Ivan Vecera <ivecera@redhat.com>
Signed-off-by: Ivan Vecera <ivecera@redhat.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Tested-by: Rafal Romanowski <rafal.romanowski@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Stable-dep-of: 5f3d319a24 ("iavf: schedule a request immediately after add/delete vlan")
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Petr Oros
2023-09-07 17:02:50 +02:00
committed by Greg Kroah-Hartman
parent 16fd3c37d1
commit 00bbedbd7c
3 changed files with 6 additions and 8 deletions

View File

@@ -521,7 +521,7 @@ void iavf_down(struct iavf_adapter *adapter);
int iavf_process_config(struct iavf_adapter *adapter); int iavf_process_config(struct iavf_adapter *adapter);
int iavf_parse_vf_resource_msg(struct iavf_adapter *adapter); int iavf_parse_vf_resource_msg(struct iavf_adapter *adapter);
void iavf_schedule_reset(struct iavf_adapter *adapter, u64 flags); void iavf_schedule_reset(struct iavf_adapter *adapter, u64 flags);
void iavf_schedule_request_stats(struct iavf_adapter *adapter); void iavf_schedule_aq_request(struct iavf_adapter *adapter, u64 flags);
void iavf_schedule_finish_config(struct iavf_adapter *adapter); void iavf_schedule_finish_config(struct iavf_adapter *adapter);
void iavf_reset(struct iavf_adapter *adapter); void iavf_reset(struct iavf_adapter *adapter);
void iavf_set_ethtool_ops(struct net_device *netdev); void iavf_set_ethtool_ops(struct net_device *netdev);

View File

@@ -362,7 +362,7 @@ static void iavf_get_ethtool_stats(struct net_device *netdev,
unsigned int i; unsigned int i;
/* Explicitly request stats refresh */ /* Explicitly request stats refresh */
iavf_schedule_request_stats(adapter); iavf_schedule_aq_request(adapter, IAVF_FLAG_AQ_REQUEST_STATS);
iavf_add_ethtool_stats(&data, adapter, iavf_gstrings_stats); iavf_add_ethtool_stats(&data, adapter, iavf_gstrings_stats);

View File

@@ -322,15 +322,13 @@ void iavf_schedule_reset(struct iavf_adapter *adapter, u64 flags)
} }
/** /**
* iavf_schedule_request_stats - Set the flags and schedule statistics request * iavf_schedule_aq_request - Set the flags and schedule aq request
* @adapter: board private structure * @adapter: board private structure
* * @flags: requested aq flags
* Sets IAVF_FLAG_AQ_REQUEST_STATS flag so iavf_watchdog_task() will explicitly
* request and refresh ethtool stats
**/ **/
void iavf_schedule_request_stats(struct iavf_adapter *adapter) void iavf_schedule_aq_request(struct iavf_adapter *adapter, u64 flags)
{ {
adapter->aq_required |= IAVF_FLAG_AQ_REQUEST_STATS; adapter->aq_required |= flags;
mod_delayed_work(adapter->wq, &adapter->watchdog_task, 0); mod_delayed_work(adapter->wq, &adapter->watchdog_task, 0);
} }