Message ID | 1608748521-11033-1-git-send-email-stefanc@marvell.com |
---|---|
State | New |
Headers | show |
Series | [net] net: mvpp2: fix pkt coalescing int-threshold configuration | expand |
Hello: This patch was applied to netdev/net.git (refs/heads/master): On Wed, 23 Dec 2020 20:35:21 +0200 you wrote: > From: Stefan Chulski <stefanc@marvell.com> > > The packet coalescing interrupt threshold has separated registers > for different aggregated/cpu (sw-thread). The required value should > be loaded for every thread but not only for 1 current cpu. > > Fixes: 213f428f5056 ("net: mvpp2: add support for TX interrupts and RX queue distribution modes") > Signed-off-by: Stefan Chulski <stefanc@marvell.com> > > [...] Here is the summary with links: - [net] net: mvpp2: fix pkt coalescing int-threshold configuration https://git.kernel.org/netdev/net/c/4f374d2c43a9 You are awesome, thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html
diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c index 87068eb..3982956 100644 --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c @@ -2370,17 +2370,18 @@ static void mvpp2_rx_pkts_coal_set(struct mvpp2_port *port, static void mvpp2_tx_pkts_coal_set(struct mvpp2_port *port, struct mvpp2_tx_queue *txq) { - unsigned int thread = mvpp2_cpu_to_thread(port->priv, get_cpu()); + unsigned int thread; u32 val; if (txq->done_pkts_coal > MVPP2_TXQ_THRESH_MASK) txq->done_pkts_coal = MVPP2_TXQ_THRESH_MASK; val = (txq->done_pkts_coal << MVPP2_TXQ_THRESH_OFFSET); - mvpp2_thread_write(port->priv, thread, MVPP2_TXQ_NUM_REG, txq->id); - mvpp2_thread_write(port->priv, thread, MVPP2_TXQ_THRESH_REG, val); - - put_cpu(); + /* PKT-coalescing registers are per-queue + per-thread */ + for (thread = 0; thread < MVPP2_MAX_THREADS; thread++) { + mvpp2_thread_write(port->priv, thread, MVPP2_TXQ_NUM_REG, txq->id); + mvpp2_thread_write(port->priv, thread, MVPP2_TXQ_THRESH_REG, val); + } } static u32 mvpp2_usec_to_cycles(u32 usec, unsigned long clk_hz)