i40e: free skb after clearing lock in ptp_stop
authorJacob Keller <jacob.e.keller@intel.com>
Thu, 17 May 2018 08:08:32 +0000 (01:08 -0700)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Tue, 22 May 2018 15:37:06 +0000 (08:37 -0700)
Use the same logic to free the skb after clearing the Tx timestamp bit
lock in i40e_ptp_stop as we use in the other locations. It is not as
important here since we are not racing against a future Tx timestamp
request (as we are disabling PTP at this point). However it is good to
be consistent in how we approach the bit lock so that future callers
don't copy the old anti-pattern.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/i40e/i40e_ptp.c

index d50d84927e6b1d39a7c1099cdabd908e5351ada8..35f2866b38c6b921044d851f3898e342e048813f 100644 (file)
@@ -799,9 +799,11 @@ void i40e_ptp_stop(struct i40e_pf *pf)
        pf->ptp_rx = false;
 
        if (pf->ptp_tx_skb) {
-               dev_kfree_skb_any(pf->ptp_tx_skb);
+               struct sk_buff *skb = pf->ptp_tx_skb;
+
                pf->ptp_tx_skb = NULL;
                clear_bit_unlock(__I40E_PTP_TX_IN_PROGRESS, pf->state);
+               dev_kfree_skb_any(skb);
        }
 
        if (pf->ptp_clock) {