diff options
author | Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com> | 2021-04-23 17:19:22 -0700 |
---|---|---|
committer | Hauke Mehrtens <hauke@hauke-m.de> | 2021-04-30 23:48:37 +0200 |
commit | 0d6f20723047c02bd624f0384df9dc74ee075bc7 (patch) | |
tree | f8ecc404999fafdf99475653201802143f1c60f2 /target/linux/generic/pending-5.10/770-03-net-ethernet-mtk_eth_soc-fix-unnecessary-tx-queue-st.patch | |
parent | 4b14b42abfe263ea9f67ff4e29e563e1160005fc (diff) | |
download | upstream-0d6f20723047c02bd624f0384df9dc74ee075bc7.tar.gz upstream-0d6f20723047c02bd624f0384df9dc74ee075bc7.tar.bz2 upstream-0d6f20723047c02bd624f0384df9dc74ee075bc7.zip |
kernel: backport mtk_soc_eth fixes from v5.13
Fixes logic that leads to this error when booting mt7621 and other
devices that use the mediatek ethernet driver:
[ 23.144378] mtk_soc_eth 1e100000.ethernet: PPE table busy
The rest are mostly moved from pending-5.10 to backport-5.10 with a
couple of cleanups and improvements from upstream.
Refresh patches.
Links:
https://git.kernel.org/netdev/net-next/c/c5d66587b890
https://git.kernel.org/netdev/net-next/c/3f57d8c40fea
https://git.kernel.org/netdev/net-next/c/5196c4178549
https://git.kernel.org/netdev/net-next/c/787082ab9f7b
https://git.kernel.org/netdev/net-next/c/c30c4a827390
https://git.kernel.org/netdev/net-next/c/3630d519d7c3
https://git.kernel.org/netdev/net-next/c/16ef670789b2
https://git.kernel.org/netdev/net-next/c/59555a8d0dd3
https://git.kernel.org/netdev/net-next/c/6b4423b258b9
https://git.kernel.org/netdev/net-next/c/e9229ffd550b
https://git.kernel.org/netdev/net-next/c/4e6bf609569c
https://git.kernel.org/netdev/net-next/c/816ac3e6e67b
https://git.kernel.org/netdev/net-next/c/16769a8923fa
https://git.kernel.org/netdev/net-next/c/db2c7b353db3
https://git.kernel.org/netdev/net-next/c/fa817272c37e
https://git.kernel.org/netdev/net-next/c/3bc8e0aff23b
Fixes: f07fe36f22fc ("kernel: update flow offload patches to upstream version")
Cc: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
Diffstat (limited to 'target/linux/generic/pending-5.10/770-03-net-ethernet-mtk_eth_soc-fix-unnecessary-tx-queue-st.patch')
-rw-r--r-- | target/linux/generic/pending-5.10/770-03-net-ethernet-mtk_eth_soc-fix-unnecessary-tx-queue-st.patch | 50 |
1 files changed, 0 insertions, 50 deletions
diff --git a/target/linux/generic/pending-5.10/770-03-net-ethernet-mtk_eth_soc-fix-unnecessary-tx-queue-st.patch b/target/linux/generic/pending-5.10/770-03-net-ethernet-mtk_eth_soc-fix-unnecessary-tx-queue-st.patch deleted file mode 100644 index eda10a452e..0000000000 --- a/target/linux/generic/pending-5.10/770-03-net-ethernet-mtk_eth_soc-fix-unnecessary-tx-queue-st.patch +++ /dev/null @@ -1,50 +0,0 @@ -From: Felix Fietkau <nbd@nbd.name> -Date: Wed, 26 Aug 2020 16:55:54 +0200 -Subject: [PATCH] net: ethernet: mtk_eth_soc: fix unnecessary tx queue - stops - -When running short on descriptors, only stop the queue for the netdev that tx -was attempted for. By the time the something tries to send on the other netdev, -the ring might have some more room already - -Signed-off-by: Felix Fietkau <nbd@nbd.name> ---- - ---- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c -+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -1131,17 +1131,6 @@ static void mtk_wake_queue(struct mtk_et - } - } - --static void mtk_stop_queue(struct mtk_eth *eth) --{ -- int i; -- -- for (i = 0; i < MTK_MAC_COUNT; i++) { -- if (!eth->netdev[i]) -- continue; -- netif_stop_queue(eth->netdev[i]); -- } --} -- - static netdev_tx_t mtk_start_xmit(struct sk_buff *skb, struct net_device *dev) - { - struct mtk_mac *mac = netdev_priv(dev); -@@ -1162,7 +1151,7 @@ static netdev_tx_t mtk_start_xmit(struct - - tx_num = mtk_cal_txd_req(skb); - if (unlikely(atomic_read(&ring->free_count) <= tx_num)) { -- mtk_stop_queue(eth); -+ netif_stop_queue(dev); - netif_err(eth, tx_queued, dev, - "Tx Ring full when queue awake!\n"); - spin_unlock(ð->page_lock); -@@ -1188,7 +1177,7 @@ static netdev_tx_t mtk_start_xmit(struct - goto drop; - - if (unlikely(atomic_read(&ring->free_count) <= ring->thresh)) -- mtk_stop_queue(eth); -+ netif_stop_queue(dev); - - spin_unlock(ð->page_lock); - |