Commit 84c5fb8c authored by Jacob Keller's avatar Jacob Keller Committed by Tony Nguyen

ice: fix Tx queue iteration for Tx timestamp enablement

The driver accidentally copied the ice_for_each_rxq iterator when
implementing enablement of the ptp_tx bit for the Tx rings. We still
load the Tx rings and set the ptp_tx field, but we iterate over the
count of the num_rxq.

If the number of Tx and Rx queues differ, this could either cause
a buffer overrun when accessing the tx_rings list if num_txq is greater
than num_rxq, or it could cause us to fail to enable Tx timestamps for
some rings.

This was not noticed originally as we generally have the same number of
Tx and Rx queues.

Fixes: ea9b847c ("ice: enable transmit timestamps for E810 devices")
Signed-off-by: default avatarJacob Keller <jacob.e.keller@intel.com>
Tested-by: default avatarGurucharan G <gurucharanx.g@intel.com>
Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
parent 5fe2a6b4
...@@ -22,7 +22,7 @@ static void ice_set_tx_tstamp(struct ice_pf *pf, bool on) ...@@ -22,7 +22,7 @@ static void ice_set_tx_tstamp(struct ice_pf *pf, bool on)
return; return;
/* Set the timestamp enable flag for all the Tx rings */ /* Set the timestamp enable flag for all the Tx rings */
ice_for_each_rxq(vsi, i) { ice_for_each_txq(vsi, i) {
if (!vsi->tx_rings[i]) if (!vsi->tx_rings[i])
continue; continue;
vsi->tx_rings[i]->ptp_tx = on; vsi->tx_rings[i]->ptp_tx = on;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment