2023-10-27 09:53:00

by Petr Oros

[permalink] [raw]
Subject: [PATCH net-next] iavf: use iavf_schedule_aq_request() helper

Use the iavf_schedule_aq_request() helper when we need to
schedule a watchdog task immediately. No functional change.

Signed-off-by: Petr Oros <[email protected]>
---
drivers/net/ethernet/intel/iavf/iavf_ethtool.c | 10 +++-------
drivers/net/ethernet/intel/iavf/iavf_main.c | 15 +++++----------
2 files changed, 8 insertions(+), 17 deletions(-)

diff --git a/drivers/net/ethernet/intel/iavf/iavf_ethtool.c b/drivers/net/ethernet/intel/iavf/iavf_ethtool.c
index 90397293525f71..fc8d75a30602cd 100644
--- a/drivers/net/ethernet/intel/iavf/iavf_ethtool.c
+++ b/drivers/net/ethernet/intel/iavf/iavf_ethtool.c
@@ -1447,10 +1447,9 @@ static int iavf_add_fdir_ethtool(struct iavf_adapter *adapter, struct ethtool_rx
iavf_fdir_list_add_fltr(adapter, fltr);
adapter->fdir_active_fltr++;
fltr->state = IAVF_FDIR_FLTR_ADD_REQUEST;
- adapter->aq_required |= IAVF_FLAG_AQ_ADD_FDIR_FILTER;
spin_unlock_bh(&adapter->fdir_fltr_lock);

- mod_delayed_work(adapter->wq, &adapter->watchdog_task, 0);
+ iavf_schedule_aq_request(adapter, IAVF_FLAG_AQ_ADD_FDIR_FILTER);

ret:
if (err && fltr)
@@ -1481,7 +1480,6 @@ static int iavf_del_fdir_ethtool(struct iavf_adapter *adapter, struct ethtool_rx
if (fltr) {
if (fltr->state == IAVF_FDIR_FLTR_ACTIVE) {
fltr->state = IAVF_FDIR_FLTR_DEL_REQUEST;
- adapter->aq_required |= IAVF_FLAG_AQ_DEL_FDIR_FILTER;
} else {
err = -EBUSY;
}
@@ -1491,7 +1489,7 @@ static int iavf_del_fdir_ethtool(struct iavf_adapter *adapter, struct ethtool_rx
spin_unlock_bh(&adapter->fdir_fltr_lock);

if (fltr && fltr->state == IAVF_FDIR_FLTR_DEL_REQUEST)
- mod_delayed_work(adapter->wq, &adapter->watchdog_task, 0);
+ iavf_schedule_aq_request(adapter, IAVF_FLAG_AQ_DEL_FDIR_FILTER);

return err;
}
@@ -1660,7 +1658,6 @@ iavf_set_adv_rss_hash_opt(struct iavf_adapter *adapter,
rss_old->hash_flds = hash_flds;
memcpy(&rss_old->cfg_msg, &rss_new->cfg_msg,
sizeof(rss_new->cfg_msg));
- adapter->aq_required |= IAVF_FLAG_AQ_ADD_ADV_RSS_CFG;
} else {
err = -EEXIST;
}
@@ -1670,12 +1667,11 @@ iavf_set_adv_rss_hash_opt(struct iavf_adapter *adapter,
rss_new->packet_hdrs = hdrs;
rss_new->hash_flds = hash_flds;
list_add_tail(&rss_new->list, &adapter->adv_rss_list_head);
- adapter->aq_required |= IAVF_FLAG_AQ_ADD_ADV_RSS_CFG;
}
spin_unlock_bh(&adapter->adv_rss_lock);

if (!err)
- mod_delayed_work(adapter->wq, &adapter->watchdog_task, 0);
+ iavf_schedule_aq_request(adapter, IAVF_FLAG_AQ_ADD_ADV_RSS_CFG);

mutex_unlock(&adapter->crit_lock);

diff --git a/drivers/net/ethernet/intel/iavf/iavf_main.c b/drivers/net/ethernet/intel/iavf/iavf_main.c
index b3434dbc90d6fe..7217ba018f6bbf 100644
--- a/drivers/net/ethernet/intel/iavf/iavf_main.c
+++ b/drivers/net/ethernet/intel/iavf/iavf_main.c
@@ -1060,13 +1060,12 @@ static int iavf_replace_primary_mac(struct iavf_adapter *adapter,
*/
new_f->is_primary = true;
new_f->add = true;
- adapter->aq_required |= IAVF_FLAG_AQ_ADD_MAC_FILTER;
ether_addr_copy(hw->mac.addr, new_mac);

spin_unlock_bh(&adapter->mac_vlan_list_lock);

/* schedule the watchdog task to immediately process the request */
- mod_delayed_work(adapter->wq, &adapter->watchdog_task, 0);
+ iavf_schedule_aq_request(adapter, IAVF_FLAG_AQ_ADD_MAC_FILTER);
return 0;
}

@@ -1284,10 +1283,9 @@ static void iavf_up_complete(struct iavf_adapter *adapter)

iavf_napi_enable_all(adapter);

- adapter->aq_required |= IAVF_FLAG_AQ_ENABLE_QUEUES;
if (CLIENT_ENABLED(adapter))
adapter->flags |= IAVF_FLAG_CLIENT_NEEDS_OPEN;
- mod_delayed_work(adapter->wq, &adapter->watchdog_task, 0);
+ iavf_schedule_aq_request(adapter, IAVF_FLAG_AQ_ENABLE_QUEUES);
}

/**
@@ -1439,8 +1437,7 @@ void iavf_down(struct iavf_adapter *adapter)
adapter->aq_required |= IAVF_FLAG_AQ_DEL_ADV_RSS_CFG;
}

- adapter->aq_required |= IAVF_FLAG_AQ_DISABLE_QUEUES;
- mod_delayed_work(adapter->wq, &adapter->watchdog_task, 0);
+ iavf_schedule_aq_request(adapter, IAVF_FLAG_AQ_DISABLE_QUEUES);
}

/**
@@ -2340,10 +2337,8 @@ iavf_set_vlan_offload_features(struct iavf_adapter *adapter,
}
}

- if (aq_required) {
- adapter->aq_required |= aq_required;
- mod_delayed_work(adapter->wq, &adapter->watchdog_task, 0);
- }
+ if (aq_required)
+ iavf_schedule_aq_request(adapter, aq_required);
}

/**
--
2.42.0


2023-10-27 13:09:15

by Wojciech Drewek

[permalink] [raw]
Subject: Re: [PATCH net-next] iavf: use iavf_schedule_aq_request() helper



On 27.10.2023 11:51, Petr Oros wrote:
> Use the iavf_schedule_aq_request() helper when we need to
> schedule a watchdog task immediately. No functional change.
>
> Signed-off-by: Petr Oros <[email protected]>
> ---

Reviewed-by: Wojciech Drewek <[email protected]>

> drivers/net/ethernet/intel/iavf/iavf_ethtool.c | 10 +++-------
> drivers/net/ethernet/intel/iavf/iavf_main.c | 15 +++++----------
> 2 files changed, 8 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/net/ethernet/intel/iavf/iavf_ethtool.c b/drivers/net/ethernet/intel/iavf/iavf_ethtool.c
> index 90397293525f71..fc8d75a30602cd 100644
> --- a/drivers/net/ethernet/intel/iavf/iavf_ethtool.c
> +++ b/drivers/net/ethernet/intel/iavf/iavf_ethtool.c
> @@ -1447,10 +1447,9 @@ static int iavf_add_fdir_ethtool(struct iavf_adapter *adapter, struct ethtool_rx
> iavf_fdir_list_add_fltr(adapter, fltr);
> adapter->fdir_active_fltr++;
> fltr->state = IAVF_FDIR_FLTR_ADD_REQUEST;
> - adapter->aq_required |= IAVF_FLAG_AQ_ADD_FDIR_FILTER;
> spin_unlock_bh(&adapter->fdir_fltr_lock);
>
> - mod_delayed_work(adapter->wq, &adapter->watchdog_task, 0);
> + iavf_schedule_aq_request(adapter, IAVF_FLAG_AQ_ADD_FDIR_FILTER);
>
> ret:
> if (err && fltr)
> @@ -1481,7 +1480,6 @@ static int iavf_del_fdir_ethtool(struct iavf_adapter *adapter, struct ethtool_rx
> if (fltr) {
> if (fltr->state == IAVF_FDIR_FLTR_ACTIVE) {
> fltr->state = IAVF_FDIR_FLTR_DEL_REQUEST;
> - adapter->aq_required |= IAVF_FLAG_AQ_DEL_FDIR_FILTER;
> } else {
> err = -EBUSY;
> }
> @@ -1491,7 +1489,7 @@ static int iavf_del_fdir_ethtool(struct iavf_adapter *adapter, struct ethtool_rx
> spin_unlock_bh(&adapter->fdir_fltr_lock);
>
> if (fltr && fltr->state == IAVF_FDIR_FLTR_DEL_REQUEST)
> - mod_delayed_work(adapter->wq, &adapter->watchdog_task, 0);
> + iavf_schedule_aq_request(adapter, IAVF_FLAG_AQ_DEL_FDIR_FILTER);
>
> return err;
> }
> @@ -1660,7 +1658,6 @@ iavf_set_adv_rss_hash_opt(struct iavf_adapter *adapter,
> rss_old->hash_flds = hash_flds;
> memcpy(&rss_old->cfg_msg, &rss_new->cfg_msg,
> sizeof(rss_new->cfg_msg));
> - adapter->aq_required |= IAVF_FLAG_AQ_ADD_ADV_RSS_CFG;
> } else {
> err = -EEXIST;
> }
> @@ -1670,12 +1667,11 @@ iavf_set_adv_rss_hash_opt(struct iavf_adapter *adapter,
> rss_new->packet_hdrs = hdrs;
> rss_new->hash_flds = hash_flds;
> list_add_tail(&rss_new->list, &adapter->adv_rss_list_head);
> - adapter->aq_required |= IAVF_FLAG_AQ_ADD_ADV_RSS_CFG;
> }
> spin_unlock_bh(&adapter->adv_rss_lock);
>
> if (!err)
> - mod_delayed_work(adapter->wq, &adapter->watchdog_task, 0);
> + iavf_schedule_aq_request(adapter, IAVF_FLAG_AQ_ADD_ADV_RSS_CFG);
>
> mutex_unlock(&adapter->crit_lock);
>
> diff --git a/drivers/net/ethernet/intel/iavf/iavf_main.c b/drivers/net/ethernet/intel/iavf/iavf_main.c
> index b3434dbc90d6fe..7217ba018f6bbf 100644
> --- a/drivers/net/ethernet/intel/iavf/iavf_main.c
> +++ b/drivers/net/ethernet/intel/iavf/iavf_main.c
> @@ -1060,13 +1060,12 @@ static int iavf_replace_primary_mac(struct iavf_adapter *adapter,
> */
> new_f->is_primary = true;
> new_f->add = true;
> - adapter->aq_required |= IAVF_FLAG_AQ_ADD_MAC_FILTER;
> ether_addr_copy(hw->mac.addr, new_mac);
>
> spin_unlock_bh(&adapter->mac_vlan_list_lock);
>
> /* schedule the watchdog task to immediately process the request */
> - mod_delayed_work(adapter->wq, &adapter->watchdog_task, 0);
> + iavf_schedule_aq_request(adapter, IAVF_FLAG_AQ_ADD_MAC_FILTER);
> return 0;
> }
>
> @@ -1284,10 +1283,9 @@ static void iavf_up_complete(struct iavf_adapter *adapter)
>
> iavf_napi_enable_all(adapter);
>
> - adapter->aq_required |= IAVF_FLAG_AQ_ENABLE_QUEUES;
> if (CLIENT_ENABLED(adapter))
> adapter->flags |= IAVF_FLAG_CLIENT_NEEDS_OPEN;
> - mod_delayed_work(adapter->wq, &adapter->watchdog_task, 0);
> + iavf_schedule_aq_request(adapter, IAVF_FLAG_AQ_ENABLE_QUEUES);
> }
>
> /**
> @@ -1439,8 +1437,7 @@ void iavf_down(struct iavf_adapter *adapter)
> adapter->aq_required |= IAVF_FLAG_AQ_DEL_ADV_RSS_CFG;
> }
>
> - adapter->aq_required |= IAVF_FLAG_AQ_DISABLE_QUEUES;
> - mod_delayed_work(adapter->wq, &adapter->watchdog_task, 0);
> + iavf_schedule_aq_request(adapter, IAVF_FLAG_AQ_DISABLE_QUEUES);
> }
>
> /**
> @@ -2340,10 +2337,8 @@ iavf_set_vlan_offload_features(struct iavf_adapter *adapter,
> }
> }
>
> - if (aq_required) {
> - adapter->aq_required |= aq_required;
> - mod_delayed_work(adapter->wq, &adapter->watchdog_task, 0);
> - }
> + if (aq_required)
> + iavf_schedule_aq_request(adapter, aq_required);
> }
>
> /**

2023-10-27 20:40:16

by Jacob Keller

[permalink] [raw]
Subject: Re: [PATCH net-next] iavf: use iavf_schedule_aq_request() helper



On 10/27/2023 2:51 AM, Petr Oros wrote:
> Use the iavf_schedule_aq_request() helper when we need to
> schedule a watchdog task immediately. No functional change.
>
> Signed-off-by: Petr Oros <[email protected]>
> ---

This does not apply as-is to Intel Wired LAN dev-queue. I have no
objection to netdev taking this directly, but if you want this to go
through our IWL dev-queue testing, please rebase it and sent it tagged
as iwl-next.

Thanks,
Jake