aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2021-10-05 22:43:17 +0200
committerHauke Mehrtens <hauke@hauke-m.de>2021-10-18 23:01:19 +0200
commit44627f6772ed7afbd58ef0d24d8708b478be052b (patch)
treef57b2c3d9d56d5e2102db4ce7203fc7ebcc5a6f0
parent9bb54ec000d6b343c89a998fd25dddcaf9b5af9e (diff)
downloadbackports-44627f6772ed7afbd58ef0d24d8708b478be052b.tar.gz
patches: Do not use rx_list in mt76/mt7921 driver on older kernel versions.
Use the sk_buff_head instead of the skb->rx_list on older kernel in mt76/mt7921 driver too. This change is very similar to the change for mt7915. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
-rw-r--r--patches/0097-skb-list/mt76.patch46
1 files changed, 46 insertions, 0 deletions
diff --git a/patches/0097-skb-list/mt76.patch b/patches/0097-skb-list/mt76.patch
index d6d41fc0..e67d4db9 100644
--- a/patches/0097-skb-list/mt76.patch
+++ b/patches/0097-skb-list/mt76.patch
@@ -74,3 +74,49 @@
napi_consume_skb(skb, 1);
}
}
+--- a/drivers/net/wireless/mediatek/mt76/mt7921/mac.c
++++ b/drivers/net/wireless/mediatek/mt76/mt7921/mac.c
+@@ -866,7 +866,11 @@ mt7921_tx_check_aggr(struct ieee80211_st
+ static void
+ mt7921_tx_complete_status(struct mt76_dev *mdev, struct sk_buff *skb,
+ struct ieee80211_sta *sta, u8 stat,
++#if LINUX_VERSION_IS_GEQ(4,19,0)
+ struct list_head *free_list)
++#else
++ struct sk_buff_head *free_list)
++#endif
+ {
+ struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
+ struct ieee80211_tx_status status = {
+@@ -936,10 +940,16 @@ void mt7921_mac_tx_free(struct mt7921_de
+ struct mt76_dev *mdev = &dev->mt76;
+ struct mt76_txwi_cache *txwi;
+ struct ieee80211_sta *sta = NULL;
+- LIST_HEAD(free_list);
+ struct sk_buff *tmp;
+ bool wake = false;
+ u8 i, count;
++#if LINUX_VERSION_IS_GEQ(4,19,0)
++ LIST_HEAD(free_list);
++#else
++ struct sk_buff_head free_list;
++
++ __skb_queue_head_init(&free_list);
++#endif
+
+ /* clean DMA queues and unmap buffers first */
+ mt76_queue_tx_cleanup(dev, dev->mphy.q_tx[MT_TXQ_PSD], false);
+@@ -1028,8 +1038,13 @@ void mt7921_mac_tx_free(struct mt7921_de
+
+ napi_consume_skb(skb, 1);
+
++#if LINUX_VERSION_IS_GEQ(4,19,0)
+ list_for_each_entry_safe(skb, tmp, &free_list, list) {
+ skb_list_del_init(skb);
++#else
++ skb_queue_walk_safe(&free_list, skb, tmp) {
++ __skb_unlink(skb, &free_list);
++#endif
+ napi_consume_skb(skb, 1);
+ }
+