|
@@ -493,6 +493,7 @@ static void ixgbe_ptp_tx_hwtstamp(struct ixgbe_adapter *adapter)
|
|
|
|
|
|
dev_kfree_skb_any(adapter->ptp_tx_skb);
|
|
dev_kfree_skb_any(adapter->ptp_tx_skb);
|
|
adapter->ptp_tx_skb = NULL;
|
|
adapter->ptp_tx_skb = NULL;
|
|
|
|
+ clear_bit_unlock(__IXGBE_PTP_TX_IN_PROGRESS, &adapter->state);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -515,6 +516,7 @@ static void ixgbe_ptp_tx_hwtstamp_work(struct work_struct *work)
|
|
if (timeout) {
|
|
if (timeout) {
|
|
dev_kfree_skb_any(adapter->ptp_tx_skb);
|
|
dev_kfree_skb_any(adapter->ptp_tx_skb);
|
|
adapter->ptp_tx_skb = NULL;
|
|
adapter->ptp_tx_skb = NULL;
|
|
|
|
+ clear_bit_unlock(__IXGBE_PTP_TX_IN_PROGRESS, &adapter->state);
|
|
e_warn(drv, "clearing Tx Timestamp hang");
|
|
e_warn(drv, "clearing Tx Timestamp hang");
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
@@ -925,6 +927,7 @@ void ixgbe_ptp_stop(struct ixgbe_adapter *adapter)
|
|
if (adapter->ptp_tx_skb) {
|
|
if (adapter->ptp_tx_skb) {
|
|
dev_kfree_skb_any(adapter->ptp_tx_skb);
|
|
dev_kfree_skb_any(adapter->ptp_tx_skb);
|
|
adapter->ptp_tx_skb = NULL;
|
|
adapter->ptp_tx_skb = NULL;
|
|
|
|
+ clear_bit_unlock(__IXGBE_PTP_TX_IN_PROGRESS, &adapter->state);
|
|
}
|
|
}
|
|
|
|
|
|
if (adapter->ptp_clock) {
|
|
if (adapter->ptp_clock) {
|