net: stmmac: perserve TX and RX coalesce value during XDP setup
authorOng Boon Leong <boon.leong.ong@intel.com>
Wed, 24 Nov 2021 11:40:19 +0000 (19:40 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 8 Mar 2022 18:14:17 +0000 (19:14 +0100)
commit 61da6ac715700bcfeef50d187e15c6cc7c9d079b upstream.

When XDP program is loaded, it is desirable that the previous TX and RX
coalesce values are not re-inited to its default value. This prevents
unnecessary re-configurig the coalesce values that were working fine
before.

Fixes: ac746c8520d9 ("net: stmmac: enhance XDP ZC driver level switching performance")
Signed-off-by: Ong Boon Leong <boon.leong.ong@intel.com>
Tested-by: Kurt Kanzenbach <kurt@linutronix.de>
Link: https://lore.kernel.org/r/20211124114019.3949125-1-boon.leong.ong@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c

index 8610e4d28e85ca3073f5f087d682f4d73f89c8df..e2468c3a9a437ff8b768f83e8cf36db043f01847 100644 (file)
@@ -6596,6 +6596,9 @@ int stmmac_xdp_open(struct net_device *dev)
                tx_q->tx_tail_addr = tx_q->dma_tx_phy;
                stmmac_set_tx_tail_ptr(priv, priv->ioaddr,
                                       tx_q->tx_tail_addr, chan);
+
+               hrtimer_init(&tx_q->txtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
+               tx_q->txtimer.function = stmmac_tx_timer;
        }
 
        /* Enable the MAC Rx/Tx */
@@ -6604,8 +6607,6 @@ int stmmac_xdp_open(struct net_device *dev)
        /* Start Rx & Tx DMA Channels */
        stmmac_start_all_dma(priv);
 
-       stmmac_init_coalesce(priv);
-
        ret = stmmac_request_irq(dev);
        if (ret)
                goto irq_error;