|
@@ -387,6 +387,7 @@ static void igb_ptp_tx_work(struct work_struct *work)
|
|
|
IGB_PTP_TX_TIMEOUT)) {
|
|
|
dev_kfree_skb_any(adapter->ptp_tx_skb);
|
|
|
adapter->ptp_tx_skb = NULL;
|
|
|
+ clear_bit_unlock(__IGB_PTP_TX_IN_PROGRESS, &adapter->state);
|
|
|
adapter->tx_hwtstamp_timeouts++;
|
|
|
dev_warn(&adapter->pdev->dev, "clearing Tx timestamp hang");
|
|
|
return;
|
|
@@ -480,6 +481,7 @@ static void igb_ptp_tx_hwtstamp(struct igb_adapter *adapter)
|
|
|
skb_tstamp_tx(adapter->ptp_tx_skb, &shhwtstamps);
|
|
|
dev_kfree_skb_any(adapter->ptp_tx_skb);
|
|
|
adapter->ptp_tx_skb = NULL;
|
|
|
+ clear_bit_unlock(__IGB_PTP_TX_IN_PROGRESS, &adapter->state);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -857,6 +859,7 @@ void igb_ptp_stop(struct igb_adapter *adapter)
|
|
|
if (adapter->ptp_tx_skb) {
|
|
|
dev_kfree_skb_any(adapter->ptp_tx_skb);
|
|
|
adapter->ptp_tx_skb = NULL;
|
|
|
+ clear_bit_unlock(__IGB_PTP_TX_IN_PROGRESS, &adapter->state);
|
|
|
}
|
|
|
|
|
|
if (adapter->ptp_clock) {
|