diff options
Diffstat (limited to 'drivers/net/ethernet/intel/ice/ice_ptp.c')
| -rw-r--r-- | drivers/net/ethernet/intel/ice/ice_ptp.c | 15 | 
1 files changed, 7 insertions, 8 deletions
diff --git a/drivers/net/ethernet/intel/ice/ice_ptp.c b/drivers/net/ethernet/intel/ice/ice_ptp.c index 05cc5870e4ef..80380aed8882 100644 --- a/drivers/net/ethernet/intel/ice/ice_ptp.c +++ b/drivers/net/ethernet/intel/ice/ice_ptp.c @@ -1313,22 +1313,21 @@ ice_ptp_flush_tx_tracker(struct ice_pf *pf, struct ice_ptp_tx *tx)  {  	u8 idx; -	spin_lock(&tx->lock); -  	for (idx = 0; idx < tx->len; idx++) {  		u8 phy_idx = idx + tx->quad_offset; -		/* Clear any potential residual timestamp in the PHY block */ -		if (!pf->hw.reset_ongoing) -			ice_clear_phy_tstamp(&pf->hw, tx->quad, phy_idx); - +		spin_lock(&tx->lock);  		if (tx->tstamps[idx].skb) {  			dev_kfree_skb_any(tx->tstamps[idx].skb);  			tx->tstamps[idx].skb = NULL;  		} -	} +		clear_bit(idx, tx->in_use); +		spin_unlock(&tx->lock); -	spin_unlock(&tx->lock); +		/* Clear any potential residual timestamp in the PHY block */ +		if (!pf->hw.reset_ongoing) +			ice_clear_phy_tstamp(&pf->hw, tx->quad, phy_idx); +	}  }  /**  | 
