lkml.org 
[lkml]   [2021]   [May]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.11 291/342] sfc: farch: fix TX queue lookup in TX event handling
    Date
    From: Edward Cree <ecree.xilinx@gmail.com>

    commit 83b09a1807415608b387c7bc748d329fefc5617e upstream.

    We're starting from a TXQ label, not a TXQ type, so
    efx_channel_get_tx_queue() is inappropriate (and could return NULL,
    leading to panics).

    Fixes: 12804793b17c ("sfc: decouple TXQ type from label")
    Cc: stable@vger.kernel.org
    Signed-off-by: Edward Cree <ecree.xilinx@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/net/ethernet/sfc/farch.c | 8 ++++----
    1 file changed, 4 insertions(+), 4 deletions(-)

    --- a/drivers/net/ethernet/sfc/farch.c
    +++ b/drivers/net/ethernet/sfc/farch.c
    @@ -835,14 +835,14 @@ efx_farch_handle_tx_event(struct efx_cha
    /* Transmit completion */
    tx_ev_desc_ptr = EFX_QWORD_FIELD(*event, FSF_AZ_TX_EV_DESC_PTR);
    tx_ev_q_label = EFX_QWORD_FIELD(*event, FSF_AZ_TX_EV_Q_LABEL);
    - tx_queue = efx_channel_get_tx_queue(
    - channel, tx_ev_q_label % EFX_MAX_TXQ_PER_CHANNEL);
    + tx_queue = channel->tx_queue +
    + (tx_ev_q_label % EFX_MAX_TXQ_PER_CHANNEL);
    efx_xmit_done(tx_queue, tx_ev_desc_ptr);
    } else if (EFX_QWORD_FIELD(*event, FSF_AZ_TX_EV_WQ_FF_FULL)) {
    /* Rewrite the FIFO write pointer */
    tx_ev_q_label = EFX_QWORD_FIELD(*event, FSF_AZ_TX_EV_Q_LABEL);
    - tx_queue = efx_channel_get_tx_queue(
    - channel, tx_ev_q_label % EFX_MAX_TXQ_PER_CHANNEL);
    + tx_queue = channel->tx_queue +
    + (tx_ev_q_label % EFX_MAX_TXQ_PER_CHANNEL);

    netif_tx_lock(efx->net_dev);
    efx_farch_notify_tx_desc(tx_queue);

    \
     
     \ /
      Last update: 2021-05-10 14:31    [W:4.040 / U:0.672 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site