virtchnl: Whitespace and parenthesis cleanup
Subsystems (2)
PATCH 1/11 virtchnl: Whitespace and parenthesis cleanup
From: Bruce Allan <[email protected]>
Clean up existing instances of unnecessary parentheses in if statement and change order of conditionals to make it easier to read
The opening /* should be followed by a single space and the closing */ should be preceded with a single space.
--- include/linux/avf/virtchnl.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
include/linux/avf/virtchnl.h +2 -2
@@ -485,7 +485,7 @@ VIRTCHNL_CHECK_STRUCT_LEN(6, virtchnl_rss_key);struct virtchnl_rss_lut {u16 vsi_id;u16 lut_entries; -u8 lut[1 ];/* RSS lookup table*/ +u8 lut[1 ];/* RSS lookup table */ };VIRTCHNL_CHECK_STRUCT_LEN (6 , virtchnl_rss_lut);
@@ -819,7 +819,7 @@ virtchnl_vc_validate_vf_msg(struct virtchnl_version_info *ver, u32 v_opcode,return VIRTCHNL_ERR_PARAM ; }/* few more checks */ -if ((valid_len != msglen) || (err_msg_format)) +if (err_msg_format || valid_len != msglen)return VIRTCHNL_STATUS_ERR_OPCODE_MISMATCH ;return 0 ;
Signature · 1 line
2.9.5
PATCH 2/11 i40evf: Fix client header define
From: Jeff Kirsher <[email protected]>
Fix up the VF client header define, since it is the same as the PF client header.
--- drivers/net/ethernet/intel/i40evf/i40evf_client.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
drivers/net/ethernet/intel/i40evf/i40evf_client.h +3 -3
@@ -1,8 +1,8 @@/* SPDX-License-Identifier: GPL-2.0 */ /* Copyright(c) 2013 - 2018 Intel Corporation. */ -#ifndef _I40E_CLIENT_H_ -#define _I40E_CLIENT_H_ +#ifndef _I40EVF_CLIENT_H_ +#define _I40EVF_CLIENT_H_#define I40EVF_CLIENT_STR_LENGTH 10
@@ -166,4 +166,4 @@ struct i40e_client {/* used by clients */ int i40evf_register_client (struct i40e_client *client);int i40evf_unregister_client (struct i40e_client *client); -#endif /* _I40E_CLIENT_H_ */ +#endif /* _I40EVF_CLIENT_H_ */
Signature · 1 line
2.9.5
Bowers
PATCH 2/11 i40evf: Fix client header define
Quoted 11 lines
-----Original Message-----
From: Intel-wired-lan [mailto:intel-wired-lan-bounces at osuosl.org] On Behalf Of Alice Michael
Sent: Thursday, May 10, 2018 6:00 AM
To: Michael, Alice <[email protected]>; intel-wired-
lan at lists.osuosl.org
Subject: [Intel-wired-lan] [next PATCH S91 02/11] i40evf: Fix client header defineFrom: Jeff Kirsher <[email protected]>
Quoted 7 lines
Fix up the VF client header define, since it is the same as the PF client header.
Signed-off-by Jeff Kirsher <[email protected]>--- drivers/net/ethernet/intel/i40evf/i40evf_client.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
PATCH 3/11 i40e: calculate ethtool stats size in a separate function
In reply to Alice MichaelFrom: Jacob Keller <[email protected]>
Use a separate function to calculate the number of stats for a particular device. This helps reduce the clutter in i40e_get_sset_count().
--- drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 28 +++++++++++++++++--------- 1 file changed, 18 insertions(+), 10 deletions(-)
drivers/net/ethernet/intel/i40e/i40e_ethtool.c +18 -10
@@ -1658,6 +1658,23 @@ static int i40e_set_ringparam(struct net_device *netdev,return err; } +static int i40e_get_stats_count (struct net_device *netdev) +{ +struct i40e_netdev_priv *np =netdev_priv (netdev); +struct i40e_vsi *vsi = np->vsi; +struct i40e_pf *pf = vsi->back; + +if (vsi == pf->vsi[pf->lan_vsi] && pf->hw.partition_id ==1 ) { +if (pf->lan_veb !=I40E_NO_VEB && + pf->flags &I40E_FLAG_VEB_STATS_ENABLED ) +return I40E_PF_STATS_LEN (netdev) +I40E_VEB_STATS_TOTAL ; +else +return I40E_PF_STATS_LEN (netdev); + }else { +return I40E_VSI_STATS_LEN (netdev); + } +} +static int i40e_get_sset_count (struct net_device *netdev,int sset) {struct i40e_netdev_priv *np =netdev_priv (netdev);
@@ -1668,16 +1685,7 @@ static int i40e_get_sset_count(struct net_device *netdev, int sset)case ETH_SS_TEST :return I40E_TEST_LEN ;case ETH_SS_STATS : -if (vsi == pf->vsi[pf->lan_vsi] && pf->hw.partition_id ==1 ) { -int len =I40E_PF_STATS_LEN (netdev); - -if ((pf->lan_veb !=I40E_NO_VEB ) && - (pf->flags &I40E_FLAG_VEB_STATS_ENABLED )) - len +=I40E_VEB_STATS_TOTAL ; -return len; - }else { -return I40E_VSI_STATS_LEN (netdev); - } +return i40e_get_stats_count (netdev);case ETH_SS_PRIV_FLAGS :return I40E_PRIV_FLAGS_STR_LEN + (pf->hw.pf_id ==0 ?I40E_GL_PRIV_FLAGS_STR_LEN :0 );
Signature · 1 line
2.9.5
Bowers
PATCH 3/11 i40e: calculate ethtool stats size in a separate function
Quoted 11 lines
-----Original Message-----
From: Intel-wired-lan [mailto:intel-wired-lan-bounces at osuosl.org] On Behalf Of Alice Michael
Sent: Thursday, May 10, 2018 6:00 AM
To: Michael, Alice <[email protected]>; intel-wired-
lan at lists.osuosl.org
Subject: [Intel-wired-lan] [next PATCH S91 03/11] i40e: calculate ethtool stats size in a separate functionFrom: Jacob Keller <[email protected]>
Quoted 8 lines
Use a separate function to calculate the number of stats for a particular device. This helps reduce the clutter in
i40e_get_sset_count().Signed-off-by Jacob Keller <[email protected]>--- drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 28 +++++++++++++++++-- ------- 1 file changed, 18 insertions(+), 10 deletions(-)
PATCH 4/11 i40e: remove duplicate pfc stats
In reply to Alice MichaelFrom: Jacob Keller <[email protected]>
The pfc related priority stats are already handled separately as these stats are actually arrays of length I40E_MAX_USER_PRIORITY. Thus, including them within i40e_gstrings_stats will just duplicate data.
Worse, the sizeof will be incorrect, as it will be the total size of the stat arrays, which in this case is 8 * sizeof(u64), so we will only copy the stat contents as if they were a u32.
Since we already correctly handle these stats else where, remove them from the i40e_gstrings_stats.
--- drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 4 ---- 1 file changed, 4 deletions(-)
drivers/net/ethernet/intel/i40e/i40e_ethtool.c +0 -4
@@ -103,10 +103,6 @@ static const struct i40e_stats i40e_gstrings_stats[] = {I40E_PF_STAT ("link_xoff_rx" , stats.link_xoff_rx),I40E_PF_STAT ("link_xon_tx" , stats.link_xon_tx),I40E_PF_STAT ("link_xoff_tx" , stats.link_xoff_tx), -I40E_PF_STAT ("priority_xon_rx" , stats.priority_xon_rx), -I40E_PF_STAT ("priority_xoff_rx" , stats.priority_xoff_rx), -I40E_PF_STAT ("priority_xon_tx" , stats.priority_xon_tx), -I40E_PF_STAT ("priority_xoff_tx" , stats.priority_xoff_tx),I40E_PF_STAT ("rx_size_64" , stats.rx_size_64),I40E_PF_STAT ("rx_size_127" , stats.rx_size_127), I40E_PF_STAT("rx_size_255", stats.rx_size_255),
Signature · 1 line
2.9.5
Bowers
PATCH 4/11 i40e: remove duplicate pfc stats
Quoted 19 lines
-----Original Message-----
From: Intel-wired-lan [mailto:intel-wired-lan-bounces at osuosl.org] On Behalf Of Alice Michael
Sent: Thursday, May 10, 2018 6:00 AM
To: Michael, Alice <[email protected]>; intel-wired-
lan at lists.osuosl.org
Subject: [Intel-wired-lan] [next PATCH S91 04/11] i40e: remove duplicate pfc statsFrom: Jacob Keller <[email protected]>
The pfc related priority stats are already handled separately as these stats are actually arrays of length
I40E_MAX_USER_PRIORITY. Thus, including them withini40e_gstrings_statswill just duplicate data.Worse, the sizeof will be incorrect, as it will be the total size of the stat arrays, which in this case is 8 * sizeof(u64), so we will only copy the stat contents as if they were a u32.
Quoted 7 lines
Since we already correctly handle these stats else where, remove them from the
i40e_gstrings_stats.Signed-off-by Jacob Keller <[email protected]>--- drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 4 ---- 1 file changed, 4 deletions(-)
PATCH 5/11 i40e: cleanup whitespace for some ethtool stat definitions
In reply to Alice MichaelFrom: Jacob Keller <[email protected]>
A future patch is going to refactor some of the ethtool statistic code. To keep the patches easy to review, cleanup some of the indentation used for macro definitions first.
--- drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)
drivers/net/ethernet/intel/i40e/i40e_ethtool.c +6 -6
@@ -19,13 +19,13 @@ struct i40e_stats { }#define I40E_NETDEV_STAT (_net_stat) \ - I40E_STAT(struct rtnl_link_stats64, #_net_stat, _net_stat) + I40E_STAT(struct rtnl_link_stats64, #_net_stat, _net_stat)#define I40E_PF_STAT (_name, _stat) \ - I40E_STAT(struct i40e_pf, _name, _stat) + I40E_STAT(struct i40e_pf, _name, _stat)#define I40E_VSI_STAT (_name, _stat) \ - I40E_STAT(struct i40e_vsi, _name, _stat) + I40E_STAT(struct i40e_vsi, _name, _stat)#define I40E_VEB_STAT (_name, _stat) \ - I40E_STAT(struct i40e_veb, _name, _stat) + I40E_STAT(struct i40e_veb, _name, _stat)static const struct i40e_stats i40e_gstrings_net_stats[] = {I40E_NETDEV_STAT (rx_packets),
@@ -144,9 +144,9 @@ static const struct i40e_stats i40e_gstrings_stats[] = {* 2 /* Tx and Rx together */ \ * (sizeof(struct i40e_queue_stats) / sizeof(u64)))#define I40E_GLOBAL_STATS_LEN ARRAY_SIZE(i40e_gstrings_stats) -#define I40E_NETDEV_STATS_LEN ARRAY_SIZE(i40e_gstrings_net_stats) +#define I40E_NETDEV_STATS_LEN ARRAY_SIZE(i40e_gstrings_net_stats)#define I40E_MISC_STATS_LEN ARRAY_SIZE(i40e_gstrings_misc_stats) -#define I40E_VSI_STATS_LEN (n) (I40E_NETDEV_STATS_LEN + \ +#define I40E_VSI_STATS_LEN (n) (I40E_NETDEV_STATS_LEN + \ I40E_MISC_STATS_LEN + \ I40E_QUEUE_STATS_LEN((n)))#define I40E_PFC_STATS_LEN ( \
Signature · 1 line
2.9.5
Bowers
PATCH 5/11 i40e: cleanup whitespace for some ethtool stat definitions
Quoted 11 lines
-----Original Message-----
From: Intel-wired-lan [mailto:intel-wired-lan-bounces at osuosl.org] On Behalf Of Alice Michael
Sent: Thursday, May 10, 2018 6:00 AM
To: Michael, Alice <[email protected]>; intel-wired-
lan at lists.osuosl.org
Subject: [Intel-wired-lan] [next PATCH S91 05/11] i40e: cleanup whitespace for some ethtool stat definitionsFrom: Jacob Keller <[email protected]>
Quoted 8 lines
A future patch is going to refactor some of the ethtool statistic code. To keep the patches easy to review, cleanup some of the indentation used for macro definitions first.
Signed-off-by Jacob Keller <[email protected]>--- drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)
PATCH 6/11 i40e: Fix recalculation of MSI-X vectors for VMDq
In reply to Alice MichaelFrom: Patryk Ma?ek <[email protected]>
This patch adds a recalculation of number of MSI-X vectors for VMDq in the case where we have less vectors available than we would want to reserve for VMDq.
It fixes the issue where we recalculate vectors left and vectors wanted but we didn't take into account the reduced number of queue pairs per VSI.
--- drivers/net/ethernet/intel/i40e/i40e_main.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-)
drivers/net/ethernet/intel/i40e/i40e_main.c +11 -4
@@ -10309,21 +10309,28 @@ static int i40e_init_msix(struct i40e_pf *pf)/* any vectors left over go for VMDq support */ if (pf->flags &I40E_FLAG_VMDQ_ENABLED ) { -int vmdq_vecs_wanted = pf->num_vmdq_vsis * pf->num_vmdq_qps; -int vmdq_vecs =min_t (int, vectors_left, vmdq_vecs_wanted); -if (!vectors_left) { pf->num_vmdq_msix =0 ; pf->num_vmdq_qps =0 ; }else { +int vmdq_vecs_wanted = + pf->num_vmdq_vsis * pf->num_vmdq_qps; +int vmdq_vecs = +min_t (int, vectors_left, vmdq_vecs_wanted); +/* if we're short on vectors for what's desired, we limit * the queues per vmdq. If this is still more than are * available, the user will need to change the number of * queues/vectors used by the PF later with the ethtool * channels command */ -if (vmdq_vecs < vmdq_vecs_wanted) +if (vectors_left < vmdq_vecs_wanted) { pf->num_vmdq_qps =1 ; + vmdq_vecs_wanted = pf->num_vmdq_vsis; + vmdq_vecs =min_t (int, + vectors_left, + vmdq_vecs_wanted); + } pf->num_vmdq_msix = pf->num_vmdq_qps; v_budget += vmdq_vecs;
Signature · 1 line
2.9.5
Bowers
PATCH 6/11 i40e: Fix recalculation of MSI-X vectors for VMDq
Quoted 15 lines
-----Original Message-----
From: Intel-wired-lan [mailto:intel-wired-lan-bounces at osuosl.org] On Behalf Of Alice Michael
Sent: Thursday, May 10, 2018 6:00 AM
To: Michael, Alice <[email protected]>; intel-wired-
lan at lists.osuosl.org
Subject: [Intel-wired-lan] [next PATCH S91 06/11] i40e: Fix recalculation of MSI-X vectors for VMDqFrom: Patryk Ma?ek <[email protected]>
This patch adds a recalculation of number of MSI-X vectors for VMDq in the case where we have less vectors available than we would want to reserve for VMDq.
Quoted 7 lines
It fixes the issue where we recalculate vectors left and vectors wanted but we didn't take into account the reduced number of queue pairs per VSI.
Signed-off-by Patryk Ma?ek <[email protected]>--- drivers/net/ethernet/intel/i40e/i40e_main.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-)
PATCH 7/11 i40e: add tx_busy to ethtool stats
In reply to Alice MichaelFrom: Harshitha Ramamurthy <[email protected]>
This patch adds the tx_busy stat to the ethtool stats. The tx_busy stat tracks the number of times we return NETDEV_TX_BUSY to the stack during transmit.
--- drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 1 + 1 file changed, 1 insertion(+)
drivers/net/ethernet/intel/i40e/i40e_ethtool.c +1 -0
@@ -66,6 +66,7 @@ static const struct i40e_stats i40e_gstrings_misc_stats[] = {I40E_VSI_STAT ("rx_unknown_protocol" , eth_stats.rx_unknown_protocol),I40E_VSI_STAT ("tx_linearize" , tx_linearize),I40E_VSI_STAT ("tx_force_wb" , tx_force_wb), +I40E_VSI_STAT ("tx_busy" , tx_busy),I40E_VSI_STAT ("rx_alloc_fail" , rx_buf_failed), I40E_VSI_STAT("rx_pg_alloc_fail", rx_page_failed), };
Signature · 1 line
2.9.5
Bowers
PATCH 7/11 i40e: add tx_busy to ethtool stats
Quoted 11 lines
-----Original Message-----
From: Intel-wired-lan [mailto:intel-wired-lan-bounces at osuosl.org] On Behalf Of Alice Michael
Sent: Thursday, May 10, 2018 6:00 AM
To: Michael, Alice <[email protected]>; intel-wired- lan at lists.osuosl.org
Subject: [Intel-wired-lan] [next PATCH S91 07/11] i40e: addtx_busyto ethtool statsFrom: Harshitha Ramamurthy <[email protected]>
Quoted 8 lines
This patch adds the
tx_busystat to the ethtool stats. Thetx_busystat tracks the number of times we returnNETDEV_TX_BUSYto the stack during transmit.Signed-off-by Harshitha Ramamurthy <[email protected]>--- drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 1 + 1 file changed, 1 insertion(+)
PATCH 8/11 i40evf: remove MAX_QUEUES and just use I40EVF_MAX_REQ_QUEUES
In reply to Alice MichaelFrom: Jacob Keller <[email protected]>
We don't really need to have separate definitions for MAX_QUEUES and I40EVF_MAX_REQ_QUEUES, since we'll always be limited by how many queues we request anyways. If we haven't enabled requesting the maximum number of queues, there's no reason to have our call to alloc_etherdev_mq actually pass the higher value, since we'd never enable those queues anyways.
--- drivers/net/ethernet/intel/i40evf/i40evf.h | 1 - drivers/net/ethernet/intel/i40evf/i40evf_main.c | 5 +++-- 2 files changed, 3 insertions(+), 3 deletions(-)
drivers/net/ethernet/intel/i40evf/i40evf.h +0 -1
@@ -81,7 +81,6 @@ struct i40e_vsi {#define I40E_TX_DESC (R , i) (&(((struct i40e_tx_desc *)((R)->desc))[i]))#define I40E_TX_CTXTDESC (R , i) \ (&(((struct i40e_tx_context_desc *)((R)->desc))[i])) -#define MAX_QUEUES 16#define I40EVF_MAX_REQ_QUEUES 4#define I40EVF_HKEY_ARRAY_SIZE ((I40E_VFQF_HKEY_MAX_INDEX + 1) * 4)
drivers/net/ethernet/intel/i40evf/i40evf_main.c +3 -2
@@ -2331,7 +2331,7 @@ static int i40evf_validate_ch_config(struct i40evf_adapter *adapter, total_max_rate += tx_rate; num_qps += mqprio_qopt->qopt.count[i]; } -if (num_qps >MAX_QUEUES ) +if (num_qps >I40EVF_MAX_REQ_QUEUES )return -EINVAL ; ret =i40evf_validate_tx_bandwidth (adapter, total_max_rate);
@@ -3689,7 +3689,8 @@ static int i40evf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)pci_set_master (pdev); - netdev =alloc_etherdev_mq (sizeof (struct i40evf_adapter ),MAX_QUEUES ); + netdev =alloc_etherdev_mq (sizeof (struct i40evf_adapter ), +I40EVF_MAX_REQ_QUEUES );if (!netdev) { err = -ENOMEM ; goto err_alloc_etherdev;
Signature · 1 line
2.9.5
Bowers
PATCH 8/11 i40evf: remove MAX_QUEUES and just use I40EVF_MAX_REQ_QUEUES
Quoted 18 lines
-----Original Message-----
From: Intel-wired-lan [mailto:intel-wired-lan-bounces at osuosl.org] On Behalf Of Alice Michael
Sent: Thursday, May 10, 2018 6:00 AM
To: Michael, Alice <[email protected]>; intel-wired- lan at lists.osuosl.org
Subject: [Intel-wired-lan] [next PATCH S91 08/11] i40evf: removeMAX_QUEUESand just useI40EVF_MAX_REQ_QUEUESFrom: Jacob Keller <[email protected]>
We don't really need to have separate definitions for
MAX_QUEUESandI40EVF_MAX_REQ_QUEUES, since we'll always be limited by how many queues we request anyways. If we haven't enabled requesting the maximum number of queues, there's no reason to have our call toalloc_etherdev_mqactually pass the higher value, since we'd never enable those queues anyways.
Quoted 5 lines
Signed-off-by Jacob Keller <[email protected]>--- drivers/net/ethernet/intel/i40evf/i40evf.h | 1 - drivers/net/ethernet/intel/i40evf/i40evf_main.c | 5 +++-- 2 files changed, 3 insertions(+), 3 deletions(-)
PATCH 9/11 i40e: cleanup wording in a header comment
In reply to Alice MichaelFrom: Jacob Keller <[email protected]>
Fix up the English in the header comment for i40e_ptp_tx_hang.
--- drivers/net/ethernet/intel/i40e/i40e_ptp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/ethernet/intel/i40e/i40e_ptp.c +1 -1
@@ -317,7 +317,7 @@ void i40e_ptp_rx_hang(struct i40e_pf *pf)* This watchdog task is run periodically to make sure that we clear the Tx * timestamp logic if we don't obtain a timestamp in a reasonable amount of * time. It is unexpected in the normal case but if it occurs it results in -* permanently prevent timestamps of future packets +* permanently preventing timestamps of future packets. **/ void i40e_ptp_tx_hang (struct i40e_pf *pf) {
Signature · 1 line
2.9.5
Bowers
PATCH 9/11 i40e: cleanup wording in a header comment
Quoted 9 lines
-----Original Message-----
From: Intel-wired-lan [mailto:intel-wired-lan-bounces at osuosl.org] On Behalf Of Alice Michael
Sent: Thursday, May 10, 2018 6:00 AM
To: Michael, Alice <[email protected]>; intel-wired-
lan at lists.osuosl.org
Subject: [Intel-wired-lan] [next PATCH S91 09/11] i40e: cleanup wording in a header comment
Quoted 8 lines
From: Jacob Keller <[email protected]>
Fix up the English in the header comment for
i40e_ptp_tx_hang.Signed-off-by Jacob Keller <[email protected]>--- drivers/net/ethernet/intel/i40e/i40e_ptp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
PATCH 10/11 i40e: free the skb after clearing the bitlock
In reply to Alice MichaelFrom: Jacob Keller <[email protected]>
In commit bbc4e7d273b5 ("i40e: fix race condition with PTP_TX_IN_PROGRESS bits") we modified the code which handles Tx timestamps so that we would clear the progress bit as soon as possible.
A later commit 0bc0706b46cd ("i40e: check for Tx timestamp timeouts during watchdog") introduced similar code for detecting and handling cleanup of a blocked Tx timestamp. This code did not use the same pattern for cleaning up the skb.
Update this code to wait to free the skb until after the bit lock is free, by first setting the ptp_tx_skb to NULL and clearing the lock.
--- drivers/net/ethernet/intel/i40e/i40e_ptp.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
drivers/net/ethernet/intel/i40e/i40e_ptp.c +6 -1
@@ -321,6 +321,8 @@ void i40e_ptp_rx_hang(struct i40e_pf *pf)**/ void i40e_ptp_tx_hang (struct i40e_pf *pf) { +struct sk_buff *skb; +if (!(pf->flags &I40E_FLAG_PTP ) || !pf->ptp_tx)return ;
@@ -333,9 +335,12 @@ void i40e_ptp_tx_hang(struct i40e_pf *pf)* within a second it is reasonable to assume that we never will. */ if (time_is_before_jiffies (pf->ptp_tx_start +HZ )) { -dev_kfree_skb_any (pf->ptp_tx_skb); + skb = pf->ptp_tx_skb; pf->ptp_tx_skb =NULL ;clear_bit_unlock (__I40E_PTP_TX_IN_PROGRESS, pf->state); + +/* Free the skb after we clear the bitlock */ +dev_kfree_skb_any (skb); pf->tx_hwtstamp_timeouts++; } }
Signature · 1 line
2.9.5
Bowers
PATCH 10/11 i40e: free the skb after clearing the bitlock
Quoted 21 lines
-----Original Message-----
From: Intel-wired-lan [mailto:intel-wired-lan-bounces at osuosl.org] On Behalf Of Alice Michael
Sent: Thursday, May 10, 2018 6:00 AM
To: Michael, Alice <[email protected]>; intel-wired-
lan at lists.osuosl.org
Subject: [Intel-wired-lan] [next PATCH S91 10/11] i40e: free the skb after clearing the bitlockFrom: Jacob Keller <[email protected]>
In commit
bbc4e7d273b5("i40e: fix race condition withPTP_TX_IN_PROGRESS
bits") we modified the code which handles Tx timestamps so that we would clear the progress bit as soon as possible.A later commit
0bc0706b46cd("i40e: check for Tx timestamp timeouts during watchdog") introduced similar code for detecting and handling cleanup of a blocked Tx timestamp. This code did not use the same pattern for cleaning up the skb.
Quoted 7 lines
Update this code to wait to free the skb until after the bit lock is free, by first setting the
ptp_tx_skbto NULL and clearing the lock.Signed-off-by Jacob Keller <[email protected]>--- drivers/net/ethernet/intel/i40e/i40e_ptp.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
PATCH 11/11 i40evf: Fix a hardware reset support in VF driver
In reply to Alice MichaelFrom: Pawe? Jab?o?ski <[email protected]>
This patch fixes a hardware reset support in VF driver. It is needed because when a hardware reset is detected adapter->state is in __I40EVF_RESETTING state before i40evf_reset_task is called. Without this patch unloading VF driver after a hardware reset ends with a system crash.
--- drivers/net/ethernet/intel/i40e/i40e_main.c | 21 +++++++++++++++++++-- drivers/net/ethernet/intel/i40evf/i40evf_main.c | 3 ++- 2 files changed, 21 insertions(+), 3 deletions(-)
drivers/net/ethernet/intel/i40e/i40e_main.c +19 -2
@@ -2841,6 +2841,23 @@ static int i40e_vlan_rx_add_vid(struct net_device *netdev, }/** +* i40e_vlan_rx_add_vid_up - Add a vlan id filter to HW offload in UP path +* @netdev: network interface to be adjusted +* @proto: unused protocol value +* @vid: vlan id to be added +**/ +static void i40e_vlan_rx_add_vid_up (struct net_device *netdev, +__always_unused __be16 proto,u16 vid) +{ +struct i40e_netdev_priv *np =netdev_priv (netdev); +struct i40e_vsi *vsi = np->vsi; + +if (vid >=VLAN_N_VID ) +return ; +set_bit (vid, vsi->active_vlans); +} + +/** * i40e_vlan_rx_kill_vid - Remove a vlan id filter from HW offload * @netdev: network interface to be adjusted * @proto: unused protocol value
@@ -2882,8 +2899,8 @@ static void i40e_restore_vlan(struct i40e_vsi *vsi)i40e_vlan_stripping_disable (vsi);for_each_set_bit (vid, vsi->active_vlans,VLAN_N_VID ) -i40e_vlan_rx_add_vid (vsi->netdev,htons (ETH_P_8021Q ), - vid); +i40e_vlan_rx_add_vid_up (vsi->netdev,htons (ETH_P_8021Q ), + vid); }/**
drivers/net/ethernet/intel/i40evf/i40evf_main.c +2 -1
@@ -1925,7 +1925,8 @@ static void i40evf_reset_task(struct work_struct *work)* ndo_open() returning, so we can't assume it means all our open * tasks have finished, since we're not holding the rtnl_lock here. */ - running = (adapter->state == __I40EVF_RUNNING); + running = ((adapter->state == __I40EVF_RUNNING) || + (adapter->state == __I40EVF_RESETTING));if (running) {netif_carrier_off (netdev);
Signature · 1 line
2.9.5
Bowers
PATCH 11/11 i40evf: Fix a hardware reset support in VF driver
Quoted 18 lines
-----Original Message-----
From: Intel-wired-lan [mailto:intel-wired-lan-bounces at osuosl.org] On Behalf Of Alice Michael
Sent: Thursday, May 10, 2018 6:00 AM
To: Michael, Alice <[email protected]>; intel-wired-
lan at lists.osuosl.org
Cc: Jablonski, Pawel <[email protected]>
Subject: [Intel-wired-lan] [next PATCH S91-V1 11/11] i40evf: Fix a hardware reset support in VF driverFrom: Pawe? Jab?o?ski <[email protected]>
This patch fixes a hardware reset support in VF driver.
It is needed because when a hardware reset is detectedadapter->stateis in__I40EVF_RESETTINGstate beforei40evf_reset_taskis called. Without this patch unloading VF driver after a hardware reset ends with a system crash.
Quoted 6 lines
Signed-off-by Pawe? Jab?o?ski <[email protected]>--- drivers/net/ethernet/intel/i40e/i40e_main.c | 21 +++++++++++++++++++-- drivers/net/ethernet/intel/i40evf/i40evf_main.c | 3 ++- 2 files changed, 21 insertions(+), 3 deletions(-)
Bowers
PATCH 1/11 virtchnl: Whitespace and parenthesis cleanup
In reply to Alice MichaelQuoted 14 lines
-----Original Message-----
From: Intel-wired-lan [mailto:intel-wired-lan-bounces at osuosl.org] On Behalf Of Alice Michael
Sent: Thursday, May 10, 2018 6:00 AM
To: Michael, Alice <[email protected]>; intel-wired-
lan at lists.osuosl.org
Subject: [Intel-wired-lan] [next PATCH S91 01/11] virtchnl: Whitespace and parenthesis cleanupFrom: Bruce Allan <[email protected]>
Clean up existing instances of unnecessary parentheses in if statement and change order of conditionals to make it easier to read
Quoted 7 lines
The opening /* should be followed by a single space and the closing */ should be preceded with a single space.
Signed-off-by Bruce Allan <[email protected]>--- include/linux/avf/virtchnl.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)