lkml.org 
[lkml]   [2021]   [Sep]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.14 274/334] ice: fix Tx queue iteration for Tx timestamp enablement
    Date
    From: Jacob Keller <jacob.e.keller@intel.com>

    [ Upstream commit 84c5fb8c4264ec12ef9d21905c562d2297a0234e ]

    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: ea9b847cda64 ("ice: enable transmit timestamps for E810 devices")
    Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
    Tested-by: Gurucharan G <gurucharanx.g@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/ethernet/intel/ice/ice_ptp.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/drivers/net/ethernet/intel/ice/ice_ptp.c b/drivers/net/ethernet/intel/ice/ice_ptp.c
    index 9e3ddb9b8b51..f54148fb0e21 100644
    --- a/drivers/net/ethernet/intel/ice/ice_ptp.c
    +++ b/drivers/net/ethernet/intel/ice/ice_ptp.c
    @@ -22,7 +22,7 @@ static void ice_set_tx_tstamp(struct ice_pf *pf, bool on)
    return;

    /* 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])
    continue;
    vsi->tx_rings[i]->ptp_tx = on;
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-09-13 17:07    [W:4.089 / U:0.136 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site