diff options
Diffstat (limited to 'package/kernel/mac80211/patches/subsys')
28 files changed, 104 insertions, 189 deletions
diff --git a/package/kernel/mac80211/patches/subsys/090-wireless-Use-linux-stddef.h-instead-of-stddef.h.patch b/package/kernel/mac80211/patches/subsys/090-wireless-Use-linux-stddef.h-instead-of-stddef.h.patch deleted file mode 100644 index 1661d2726b..0000000000 --- a/package/kernel/mac80211/patches/subsys/090-wireless-Use-linux-stddef.h-instead-of-stddef.h.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 1b9ae0c92925ac40489be526d67d0010d0724ce0 Mon Sep 17 00:00:00 2001 -From: Hauke Mehrtens <hauke@hauke-m.de> -Date: Thu, 21 May 2020 22:14:22 +0200 -Subject: [PATCH] wireless: Use linux/stddef.h instead of stddef.h - -When compiling inside the kernel include linux/stddef.h instead of -stddef.h. When I compile this header file in backports for power PC I -run into a conflict with ptrdiff_t. I was unable to reproduce this in -mainline kernel. I still would like to fix this problem in the kernel. - -Fixes: 6989310f5d43 ("wireless: Use offsetof instead of custom macro.") -Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> -Link: https://lore.kernel.org/r/20200521201422.16493-1-hauke@hauke-m.de -Signed-off-by: Johannes Berg <johannes.berg@intel.com> ---- - include/uapi/linux/wireless.h | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - ---- a/include/uapi/linux/wireless.h -+++ b/include/uapi/linux/wireless.h -@@ -74,7 +74,11 @@ - #include <linux/socket.h> /* for "struct sockaddr" et al */ - #include <linux/if.h> /* for IFNAMSIZ and co... */ - --#include <stddef.h> /* for offsetof */ -+#ifdef __KERNEL__ -+# include <linux/stddef.h> /* for offsetof */ -+#else -+# include <stddef.h> /* for offsetof */ -+#endif - - /***************************** VERSION *****************************/ - /* diff --git a/package/kernel/mac80211/patches/subsys/110-mac80211_keep_keys_on_stop_ap.patch b/package/kernel/mac80211/patches/subsys/110-mac80211_keep_keys_on_stop_ap.patch index 6775884a34..6650a876eb 100644 --- a/package/kernel/mac80211/patches/subsys/110-mac80211_keep_keys_on_stop_ap.patch +++ b/package/kernel/mac80211/patches/subsys/110-mac80211_keep_keys_on_stop_ap.patch @@ -2,7 +2,7 @@ Used for AP+STA support in OpenWrt - preserve AP mode keys across STA reconnects --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c -@@ -1067,7 +1067,6 @@ static int ieee80211_stop_ap(struct wiph +@@ -1068,7 +1068,6 @@ static int ieee80211_stop_ap(struct wiph sdata->u.ap.driver_smps_mode = IEEE80211_SMPS_OFF; __sta_info_flush(sdata, true); diff --git a/package/kernel/mac80211/patches/subsys/140-tweak-TSQ-setting.patch b/package/kernel/mac80211/patches/subsys/140-tweak-TSQ-setting.patch index a1c01e2803..26c55560e3 100644 --- a/package/kernel/mac80211/patches/subsys/140-tweak-TSQ-setting.patch +++ b/package/kernel/mac80211/patches/subsys/140-tweak-TSQ-setting.patch @@ -1,6 +1,6 @@ --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c -@@ -3822,6 +3822,12 @@ out: +@@ -3833,6 +3833,12 @@ out: netdev_tx_t ieee80211_subif_start_xmit(struct sk_buff *skb, struct net_device *dev) { diff --git a/package/kernel/mac80211/patches/subsys/210-ap_scan.patch b/package/kernel/mac80211/patches/subsys/210-ap_scan.patch index 6c8da3651e..c63275baaf 100644 --- a/package/kernel/mac80211/patches/subsys/210-ap_scan.patch +++ b/package/kernel/mac80211/patches/subsys/210-ap_scan.patch @@ -1,6 +1,6 @@ --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c -@@ -2189,7 +2189,7 @@ static int ieee80211_scan(struct wiphy * +@@ -2190,7 +2190,7 @@ static int ieee80211_scan(struct wiphy * * the frames sent while scanning on other channel will be * lost) */ diff --git a/package/kernel/mac80211/patches/subsys/300-mac80211-add-stop-start-logic-for-software-TXQs.patch b/package/kernel/mac80211/patches/subsys/300-mac80211-add-stop-start-logic-for-software-TXQs.patch index afb88dbe67..5f858000c3 100644 --- a/package/kernel/mac80211/patches/subsys/300-mac80211-add-stop-start-logic-for-software-TXQs.patch +++ b/package/kernel/mac80211/patches/subsys/300-mac80211-add-stop-start-logic-for-software-TXQs.patch @@ -100,7 +100,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> (unsigned long) local); --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c -@@ -3487,13 +3487,19 @@ struct sk_buff *ieee80211_tx_dequeue(str +@@ -3498,13 +3498,19 @@ struct sk_buff *ieee80211_tx_dequeue(str struct ieee80211_tx_info *info; struct ieee80211_tx_data tx; ieee80211_tx_result r; @@ -122,7 +122,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> /* Make sure fragments stay together. */ skb = __skb_dequeue(&txqi->frags); if (skb) -@@ -3606,6 +3612,7 @@ begin: +@@ -3617,6 +3623,7 @@ begin: } IEEE80211_SKB_CB(skb)->control.vif = vif; diff --git a/package/kernel/mac80211/patches/subsys/304-mac80211-minstrel-remove-unnecessary-debugfs-cleanup.patch b/package/kernel/mac80211/patches/subsys/304-mac80211-minstrel-remove-unnecessary-debugfs-cleanup.patch index 855babeccb..34a72eff30 100644 --- a/package/kernel/mac80211/patches/subsys/304-mac80211-minstrel-remove-unnecessary-debugfs-cleanup.patch +++ b/package/kernel/mac80211/patches/subsys/304-mac80211-minstrel-remove-unnecessary-debugfs-cleanup.patch @@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> --- a/net/mac80211/rc80211_minstrel.c +++ b/net/mac80211/rc80211_minstrel.c -@@ -689,8 +689,8 @@ minstrel_alloc(struct ieee80211_hw *hw, +@@ -672,8 +672,8 @@ minstrel_alloc(struct ieee80211_hw *hw, #ifdef CPTCFG_MAC80211_DEBUGFS mp->fixed_rate_idx = (u32) -1; @@ -21,7 +21,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> #endif minstrel_init_cck_rates(mp); -@@ -701,9 +701,6 @@ minstrel_alloc(struct ieee80211_hw *hw, +@@ -684,9 +684,6 @@ minstrel_alloc(struct ieee80211_hw *hw, static void minstrel_free(void *priv) { @@ -31,7 +31,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> kfree(priv); } -@@ -735,7 +732,6 @@ const struct rate_control_ops mac80211_m +@@ -718,7 +715,6 @@ const struct rate_control_ops mac80211_m .free_sta = minstrel_free_sta, #ifdef CPTCFG_MAC80211_DEBUGFS .add_sta_debugfs = minstrel_add_sta_debugfs, @@ -41,7 +41,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> }; --- a/net/mac80211/rc80211_minstrel.h +++ b/net/mac80211/rc80211_minstrel.h -@@ -109,11 +109,6 @@ struct minstrel_sta_info { +@@ -108,11 +108,6 @@ struct minstrel_sta_info { /* sampling table */ u8 *sample_table; @@ -53,7 +53,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> }; struct minstrel_priv { -@@ -137,7 +132,6 @@ struct minstrel_priv { +@@ -136,7 +131,6 @@ struct minstrel_priv { * - setting will be applied on next update */ u32 fixed_rate_idx; @@ -61,7 +61,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> #endif }; -@@ -156,7 +150,6 @@ minstrel_get_ewmsd10(struct minstrel_rat +@@ -155,7 +149,6 @@ minstrel_get_ewmsd10(struct minstrel_rat extern const struct rate_control_ops mac80211_minstrel; void minstrel_add_sta_debugfs(void *priv, void *priv_sta, struct dentry *dir); diff --git a/package/kernel/mac80211/patches/subsys/305-mac80211-minstrel-merge-with-minstrel_ht-always-enab.patch b/package/kernel/mac80211/patches/subsys/305-mac80211-minstrel-merge-with-minstrel_ht-always-enab.patch index fca3189e6d..785ca3cc18 100644 --- a/package/kernel/mac80211/patches/subsys/305-mac80211-minstrel-merge-with-minstrel_ht-always-enab.patch +++ b/package/kernel/mac80211/patches/subsys/305-mac80211-minstrel-merge-with-minstrel_ht-always-enab.patch @@ -117,7 +117,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> #endif /* IEEE80211_RATE_H */ --- a/net/mac80211/rc80211_minstrel.c +++ b/net/mac80211/rc80211_minstrel.c -@@ -572,138 +572,6 @@ minstrel_rate_init(void *priv, struct ie +@@ -555,138 +555,6 @@ minstrel_rate_init(void *priv, struct ie minstrel_update_rates(mp, mi); } @@ -256,7 +256,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> static u32 minstrel_get_expected_throughput(void *priv_sta) { struct minstrel_sta_info *mi = priv_sta; -@@ -722,28 +590,8 @@ static u32 minstrel_get_expected_through +@@ -705,28 +573,8 @@ static u32 minstrel_get_expected_through } const struct rate_control_ops mac80211_minstrel = { @@ -287,7 +287,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> -} --- a/net/mac80211/rc80211_minstrel.h +++ b/net/mac80211/rc80211_minstrel.h -@@ -158,7 +158,5 @@ int minstrel_get_tp_avg(struct minstrel_ +@@ -157,7 +157,5 @@ int minstrel_get_tp_avg(struct minstrel_ /* debugfs */ int minstrel_stats_open(struct inode *inode, struct file *file); int minstrel_stats_csv_open(struct inode *inode, struct file *file); diff --git a/package/kernel/mac80211/patches/subsys/316-mac80211-minstrel_ht-improve-rate-probing-for-device.patch b/package/kernel/mac80211/patches/subsys/316-mac80211-minstrel_ht-improve-rate-probing-for-device.patch index 07d59e0ed7..0185164ce0 100644 --- a/package/kernel/mac80211/patches/subsys/316-mac80211-minstrel_ht-improve-rate-probing-for-device.patch +++ b/package/kernel/mac80211/patches/subsys/316-mac80211-minstrel_ht-improve-rate-probing-for-device.patch @@ -41,7 +41,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> --- a/net/mac80211/rc80211_minstrel.h +++ b/net/mac80211/rc80211_minstrel.h -@@ -114,6 +114,7 @@ struct minstrel_sta_info { +@@ -113,6 +113,7 @@ struct minstrel_sta_info { struct minstrel_priv { struct ieee80211_hw *hw; bool has_mrr; diff --git a/package/kernel/mac80211/patches/subsys/320-mac80211-Add-TXQ-scheduling-API.patch b/package/kernel/mac80211/patches/subsys/320-mac80211-Add-TXQ-scheduling-API.patch index 3c38a9f78f..71088be87a 100644 --- a/package/kernel/mac80211/patches/subsys/320-mac80211-Add-TXQ-scheduling-API.patch +++ b/package/kernel/mac80211/patches/subsys/320-mac80211-Add-TXQ-scheduling-API.patch @@ -191,7 +191,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> --- a/net/mac80211/sta_info.c +++ b/net/mac80211/sta_info.c -@@ -1249,7 +1249,7 @@ void ieee80211_sta_ps_deliver_wakeup(str +@@ -1261,7 +1261,7 @@ void ieee80211_sta_ps_deliver_wakeup(str if (!txq_has_queue(sta->sta.txq[i])) continue; @@ -229,7 +229,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> return true; } -@@ -3620,6 +3624,60 @@ out: +@@ -3631,6 +3635,60 @@ out: } EXPORT_SYMBOL(ieee80211_tx_dequeue); diff --git a/package/kernel/mac80211/patches/subsys/321-cfg80211-Add-airtime-statistics-and-settings.patch b/package/kernel/mac80211/patches/subsys/321-cfg80211-Add-airtime-statistics-and-settings.patch index ff2dc35129..e1a3fe38e1 100644 --- a/package/kernel/mac80211/patches/subsys/321-cfg80211-Add-airtime-statistics-and-settings.patch +++ b/package/kernel/mac80211/patches/subsys/321-cfg80211-Add-airtime-statistics-and-settings.patch @@ -156,7 +156,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> }; /* policy for the key attributes */ -@@ -4709,6 +4710,11 @@ static int nl80211_send_station(struct s +@@ -4715,6 +4716,11 @@ static int nl80211_send_station(struct s PUT_SINFO(PLID, plid, u16); PUT_SINFO(PLINK_STATE, plink_state, u8); PUT_SINFO_U64(RX_DURATION, rx_duration); @@ -168,7 +168,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> switch (rdev->wiphy.signal_type) { case CFG80211_SIGNAL_TYPE_MBM: -@@ -5345,6 +5351,15 @@ static int nl80211_set_station(struct sk +@@ -5351,6 +5357,15 @@ static int nl80211_set_station(struct sk nla_get_u8(info->attrs[NL80211_ATTR_OPMODE_NOTIF]); } @@ -184,7 +184,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> /* Include parameters for TDLS peer (will check later) */ err = nl80211_set_station_tdls(info, ¶ms); if (err) -@@ -5483,6 +5498,15 @@ static int nl80211_new_station(struct sk +@@ -5489,6 +5504,15 @@ static int nl80211_new_station(struct sk return -EINVAL; } diff --git a/package/kernel/mac80211/patches/subsys/322-mac80211-Add-airtime-accounting-and-scheduling-to-TX.patch b/package/kernel/mac80211/patches/subsys/322-mac80211-Add-airtime-accounting-and-scheduling-to-TX.patch index a09cf3d749..d028ee2496 100644 --- a/package/kernel/mac80211/patches/subsys/322-mac80211-Add-airtime-accounting-and-scheduling-to-TX.patch +++ b/package/kernel/mac80211/patches/subsys/322-mac80211-Add-airtime-accounting-and-scheduling-to-TX.patch @@ -125,7 +125,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> * The values are not guaranteed to be coherent with regard to each other, i.e. --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c -@@ -1390,6 +1390,9 @@ static int sta_apply_parameters(struct i +@@ -1391,6 +1391,9 @@ static int sta_apply_parameters(struct i if (ieee80211_vif_is_mesh(&sdata->vif)) sta_apply_mesh_params(local, sta, params); @@ -289,7 +289,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> } } -@@ -381,9 +378,12 @@ struct sta_info *sta_info_alloc(struct i +@@ -399,9 +396,12 @@ struct sta_info *sta_info_alloc(struct i if (sta_prepare_rate_control(local, sta, gfp)) goto free_txq; @@ -302,7 +302,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> } for (i = 0; i < IEEE80211_NUM_TIDS; i++) -@@ -1826,6 +1826,27 @@ void ieee80211_sta_set_buffered(struct i +@@ -1838,6 +1838,27 @@ void ieee80211_sta_set_buffered(struct i } EXPORT_SYMBOL(ieee80211_sta_set_buffered); @@ -330,7 +330,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> int sta_info_move_state(struct sta_info *sta, enum ieee80211_sta_state new_state) { -@@ -2192,6 +2213,23 @@ void sta_set_sinfo(struct sta_info *sta, +@@ -2208,6 +2229,23 @@ void sta_set_sinfo(struct sta_info *sta, sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_FAILED); } @@ -412,7 +412,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> spin_lock_bh(&local->active_txq_lock[txqi->txq.ac]); list_del_init(&txqi->schedule_order); spin_unlock_bh(&local->active_txq_lock[txqi->txq.ac]); -@@ -3631,11 +3634,28 @@ struct ieee80211_txq *ieee80211_next_txq +@@ -3642,11 +3645,28 @@ struct ieee80211_txq *ieee80211_next_txq lockdep_assert_held(&local->active_txq_lock[ac]); @@ -442,7 +442,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> return NULL; list_del_init(&txqi->schedule_order); -@@ -3653,12 +3673,74 @@ void ieee80211_return_txq(struct ieee802 +@@ -3664,12 +3684,74 @@ void ieee80211_return_txq(struct ieee802 lockdep_assert_held(&local->active_txq_lock[txq->ac]); if (list_empty(&txqi->schedule_order) && diff --git a/package/kernel/mac80211/patches/subsys/323-mac80211-Expose-ieee80211_schedule_txq-function.patch b/package/kernel/mac80211/patches/subsys/323-mac80211-Expose-ieee80211_schedule_txq-function.patch index 06981fdc09..ca70f6a8fa 100644 --- a/package/kernel/mac80211/patches/subsys/323-mac80211-Expose-ieee80211_schedule_txq-function.patch +++ b/package/kernel/mac80211/patches/subsys/323-mac80211-Expose-ieee80211_schedule_txq-function.patch @@ -51,7 +51,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c -@@ -3693,6 +3693,19 @@ void ieee80211_return_txq(struct ieee802 +@@ -3704,6 +3704,19 @@ void ieee80211_return_txq(struct ieee802 } EXPORT_SYMBOL(ieee80211_return_txq); diff --git a/package/kernel/mac80211/patches/subsys/331-mac80211-do-not-allow-bigger-VHT-MPDUs-than-the-hard.patch b/package/kernel/mac80211/patches/subsys/331-mac80211-do-not-allow-bigger-VHT-MPDUs-than-the-hard.patch deleted file mode 100644 index ce39fe0d8b..0000000000 --- a/package/kernel/mac80211/patches/subsys/331-mac80211-do-not-allow-bigger-VHT-MPDUs-than-the-hard.patch +++ /dev/null @@ -1,34 +0,0 @@ -From: Felix Fietkau <nbd@nbd.name> -Date: Thu, 17 Sep 2020 12:07:19 +0200 -Subject: [PATCH] mac80211: do not allow bigger VHT MPDUs than the hardware - supports - -Limit maximum VHT MPDU size by local capability - -Signed-off-by: Felix Fietkau <nbd@nbd.name> ---- - ---- a/net/mac80211/vht.c -+++ b/net/mac80211/vht.c -@@ -170,10 +170,7 @@ ieee80211_vht_cap_ie_to_sta_vht_cap(stru - /* take some capabilities as-is */ - cap_info = le32_to_cpu(vht_cap_ie->vht_cap_info); - vht_cap->cap = cap_info; -- vht_cap->cap &= IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_3895 | -- IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_7991 | -- IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_11454 | -- IEEE80211_VHT_CAP_RXLDPC | -+ vht_cap->cap &= IEEE80211_VHT_CAP_RXLDPC | - IEEE80211_VHT_CAP_VHT_TXOP_PS | - IEEE80211_VHT_CAP_HTC_VHT | - IEEE80211_VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_MASK | -@@ -182,6 +179,9 @@ ieee80211_vht_cap_ie_to_sta_vht_cap(stru - IEEE80211_VHT_CAP_RX_ANTENNA_PATTERN | - IEEE80211_VHT_CAP_TX_ANTENNA_PATTERN; - -+ vht_cap->cap |= min_t(u32, cap_info & IEEE80211_VHT_CAP_MAX_MPDU_MASK, -+ own_cap.cap & IEEE80211_VHT_CAP_MAX_MPDU_MASK); -+ - /* and some based on our own capabilities */ - switch (own_cap.cap & IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_MASK) { - case IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_160MHZ: diff --git a/package/kernel/mac80211/patches/subsys/350-mac80211-add-hdrlen-to-ieee80211_tx_data.patch b/package/kernel/mac80211/patches/subsys/350-mac80211-add-hdrlen-to-ieee80211_tx_data.patch index 7520b4ddc9..a46710a94c 100644 --- a/package/kernel/mac80211/patches/subsys/350-mac80211-add-hdrlen-to-ieee80211_tx_data.patch +++ b/package/kernel/mac80211/patches/subsys/350-mac80211-add-hdrlen-to-ieee80211_tx_data.patch @@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> if (likely(sta)) { if (!IS_ERR(sta)) tx->sta = sta; -@@ -3525,6 +3525,7 @@ begin: +@@ -3536,6 +3536,7 @@ begin: tx.local = local; tx.skb = skb; tx.sdata = vif_to_sdata(info->control.vif); @@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> if (txq->sta) { tx.sta = container_of(txq->sta, struct sta_info, sta); -@@ -3569,7 +3570,7 @@ begin: +@@ -3580,7 +3581,7 @@ begin: if (tx.key && (tx.key->conf.flags & IEEE80211_KEY_FLAG_GENERATE_IV)) @@ -65,7 +65,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> ieee80211_xmit_fast_finish(sta->sdata, sta, pn_offs, tx.key, skb); -@@ -4028,6 +4029,7 @@ ieee80211_build_data_template(struct iee +@@ -4039,6 +4040,7 @@ ieee80211_build_data_template(struct iee hdr = (void *)skb->data; tx.sta = sta_info_get(sdata, hdr->addr1); tx.skb = skb; diff --git a/package/kernel/mac80211/patches/subsys/351-mac80211-add-TX_NEEDS_ALIGNED4_SKBS-hw-flag.patch b/package/kernel/mac80211/patches/subsys/351-mac80211-add-TX_NEEDS_ALIGNED4_SKBS-hw-flag.patch index 784b4b027a..3a210ff238 100644 --- a/package/kernel/mac80211/patches/subsys/351-mac80211-add-TX_NEEDS_ALIGNED4_SKBS-hw-flag.patch +++ b/package/kernel/mac80211/patches/subsys/351-mac80211-add-TX_NEEDS_ALIGNED4_SKBS-hw-flag.patch @@ -227,7 +227,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> if (likely(sta)) { if (!IS_ERR(sta)) -@@ -2222,7 +2221,7 @@ netdev_tx_t ieee80211_monitor_start_xmit +@@ -2233,7 +2232,7 @@ netdev_tx_t ieee80211_monitor_start_xmit goto fail; hdr = (struct ieee80211_hdr *)(skb->data + len_rthdr); @@ -236,7 +236,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> if (skb->len < len_rthdr + hdrlen) goto fail; -@@ -2441,7 +2440,7 @@ static struct sk_buff *ieee80211_build_h +@@ -2452,7 +2451,7 @@ static struct sk_buff *ieee80211_build_h struct ieee80211_chanctx_conf *chanctx_conf; struct ieee80211_sub_if_data *ap_sdata; enum nl80211_band band; @@ -245,7 +245,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> if (IS_ERR(sta)) sta = NULL; -@@ -2740,7 +2739,9 @@ static struct sk_buff *ieee80211_build_h +@@ -2751,7 +2750,9 @@ static struct sk_buff *ieee80211_build_h } skb_pull(skb, skip_header_bytes); @@ -255,7 +255,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> /* * So we need to modify the skb header and hence need a copy of -@@ -2773,6 +2774,9 @@ static struct sk_buff *ieee80211_build_h +@@ -2784,6 +2785,9 @@ static struct sk_buff *ieee80211_build_h memcpy(skb_push(skb, meshhdrlen), &mesh_hdr, meshhdrlen); #endif @@ -265,7 +265,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> if (ieee80211_is_data_qos(fc)) { __le16 *qos_control; -@@ -2949,6 +2953,8 @@ void ieee80211_check_fast_xmit(struct st +@@ -2960,6 +2964,8 @@ void ieee80211_check_fast_xmit(struct st fc |= cpu_to_le16(IEEE80211_STYPE_QOS_DATA); } @@ -274,7 +274,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> /* We store the key here so there's no point in using rcu_dereference() * but that's fine because the code that changes the pointers will call * this function after doing so. For a single CPU that would be enough, -@@ -3525,7 +3531,7 @@ begin: +@@ -3536,7 +3542,7 @@ begin: tx.local = local; tx.skb = skb; tx.sdata = vif_to_sdata(info->control.vif); @@ -283,7 +283,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> if (txq->sta) { tx.sta = container_of(txq->sta, struct sta_info, sta); -@@ -4029,7 +4035,7 @@ ieee80211_build_data_template(struct iee +@@ -4040,7 +4046,7 @@ ieee80211_build_data_template(struct iee hdr = (void *)skb->data; tx.sta = sta_info_get(sdata, hdr->addr1); tx.skb = skb; diff --git a/package/kernel/mac80211/patches/subsys/352-mac80211-rework-locking-for-txq-scheduling-airtime-f.patch b/package/kernel/mac80211/patches/subsys/352-mac80211-rework-locking-for-txq-scheduling-airtime-f.patch index a71748b302..11fe01ec21 100644 --- a/package/kernel/mac80211/patches/subsys/352-mac80211-rework-locking-for-txq-scheduling-airtime-f.patch +++ b/package/kernel/mac80211/patches/subsys/352-mac80211-rework-locking-for-txq-scheduling-airtime-f.patch @@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> * ieee80211_txq_may_transmit - check whether TXQ is allowed to transmit --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c -@@ -3637,16 +3637,17 @@ EXPORT_SYMBOL(ieee80211_tx_dequeue); +@@ -3648,16 +3648,17 @@ EXPORT_SYMBOL(ieee80211_tx_dequeue); struct ieee80211_txq *ieee80211_next_txq(struct ieee80211_hw *hw, u8 ac) { struct ieee80211_local *local = hw_to_local(hw); @@ -115,7 +115,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> if (txqi->txq.sta) { struct sta_info *sta = container_of(txqi->txq.sta, -@@ -3663,21 +3664,25 @@ struct ieee80211_txq *ieee80211_next_txq +@@ -3674,21 +3675,25 @@ struct ieee80211_txq *ieee80211_next_txq if (txqi->schedule_round == local->schedule_round[ac]) @@ -146,7 +146,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> if (list_empty(&txqi->schedule_order) && (!skb_queue_empty(&txqi->frags) || txqi->tin.backlog_packets)) { -@@ -3697,18 +3702,7 @@ void ieee80211_return_txq(struct ieee802 +@@ -3708,18 +3713,7 @@ void ieee80211_return_txq(struct ieee802 list_add_tail(&txqi->schedule_order, &local->active_txqs[txq->ac]); } @@ -165,7 +165,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> spin_unlock_bh(&local->active_txq_lock[txq->ac]); } EXPORT_SYMBOL(ieee80211_schedule_txq); -@@ -3721,7 +3715,7 @@ bool ieee80211_txq_may_transmit(struct i +@@ -3732,7 +3726,7 @@ bool ieee80211_txq_may_transmit(struct i struct sta_info *sta; u8 ac = txq->ac; @@ -174,7 +174,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> if (!txqi->txq.sta) goto out; -@@ -3751,34 +3745,27 @@ bool ieee80211_txq_may_transmit(struct i +@@ -3762,34 +3756,27 @@ bool ieee80211_txq_may_transmit(struct i sta->airtime[ac].deficit += sta->airtime_weight; list_move_tail(&txqi->schedule_order, &local->active_txqs[ac]); diff --git a/package/kernel/mac80211/patches/subsys/354-mac80211-calculate-hash-for-fq-without-holding-fq-lo.patch b/package/kernel/mac80211/patches/subsys/354-mac80211-calculate-hash-for-fq-without-holding-fq-lo.patch index 2ff3769637..4607361395 100644 --- a/package/kernel/mac80211/patches/subsys/354-mac80211-calculate-hash-for-fq-without-holding-fq-lo.patch +++ b/package/kernel/mac80211/patches/subsys/354-mac80211-calculate-hash-for-fq-without-holding-fq-lo.patch @@ -111,7 +111,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> schedule_and_wake_txq(local, txqi); -@@ -3200,6 +3201,7 @@ static bool ieee80211_amsdu_aggregate(st +@@ -3211,6 +3212,7 @@ static bool ieee80211_amsdu_aggregate(st u8 max_subframes = sta->sta.max_amsdu_subframes; int max_frags = local->hw.max_tx_fragments; int max_amsdu_len = sta->sta.max_amsdu_len; @@ -119,7 +119,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> int orig_truesize; __be16 len; void *data; -@@ -3222,6 +3224,8 @@ static bool ieee80211_amsdu_aggregate(st +@@ -3233,6 +3235,8 @@ static bool ieee80211_amsdu_aggregate(st max_amsdu_len = min_t(int, max_amsdu_len, sta->sta.max_rc_amsdu_len); @@ -128,7 +128,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> spin_lock_bh(&fq->lock); /* TODO: Ideally aggregation should be done on dequeue to remain -@@ -3229,7 +3233,8 @@ static bool ieee80211_amsdu_aggregate(st +@@ -3240,7 +3244,8 @@ static bool ieee80211_amsdu_aggregate(st */ tin = &txqi->tin; diff --git a/package/kernel/mac80211/patches/subsys/355-mac80211-run-late-dequeue-late-tx-handlers-without-h.patch b/package/kernel/mac80211/patches/subsys/355-mac80211-run-late-dequeue-late-tx-handlers-without-h.patch index fc7a76a3dc..3109826ed8 100644 --- a/package/kernel/mac80211/patches/subsys/355-mac80211-run-late-dequeue-late-tx-handlers-without-h.patch +++ b/package/kernel/mac80211/patches/subsys/355-mac80211-run-late-dequeue-late-tx-handlers-without-h.patch @@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c -@@ -3507,6 +3507,7 @@ struct sk_buff *ieee80211_tx_dequeue(str +@@ -3518,6 +3518,7 @@ struct sk_buff *ieee80211_tx_dequeue(str ieee80211_tx_result r; struct ieee80211_vif *vif = txq->vif; @@ -18,7 +18,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> spin_lock_bh(&fq->lock); if (test_bit(IEEE80211_TXQ_STOP, &txqi->flags) || -@@ -3523,11 +3524,12 @@ struct sk_buff *ieee80211_tx_dequeue(str +@@ -3534,11 +3535,12 @@ struct sk_buff *ieee80211_tx_dequeue(str if (skb) goto out; @@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> hdr = (struct ieee80211_hdr *)skb->data; info = IEEE80211_SKB_CB(skb); -@@ -3591,8 +3593,11 @@ begin: +@@ -3602,8 +3604,11 @@ begin: skb = __skb_dequeue(&tx.skbs); @@ -45,7 +45,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> } if (skb && skb_has_frag_list(skb) && -@@ -3631,6 +3636,7 @@ begin: +@@ -3642,6 +3647,7 @@ begin: } IEEE80211_SKB_CB(skb)->control.vif = vif; diff --git a/package/kernel/mac80211/patches/subsys/357-mac80211-optimize-skb-resizing.patch b/package/kernel/mac80211/patches/subsys/357-mac80211-optimize-skb-resizing.patch index 5d53425f8d..e7e8a0b286 100644 --- a/package/kernel/mac80211/patches/subsys/357-mac80211-optimize-skb-resizing.patch +++ b/package/kernel/mac80211/patches/subsys/357-mac80211-optimize-skb-resizing.patch @@ -50,33 +50,39 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> if (WARN_ON_ONCE(skb_headroom(skb) < rtap_len)) { --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c -@@ -1914,37 +1914,53 @@ static bool ieee80211_tx(struct ieee8021 +@@ -1914,42 +1914,53 @@ static bool ieee80211_tx(struct ieee8021 } /* device xmit handlers */ - +-enum ieee80211_encrypt { +- ENCRYPT_NO, +- ENCRYPT_MGMT, +- ENCRYPT_DATA, +-}; +- -static int ieee80211_skb_resize(struct ieee80211_sub_if_data *sdata, - struct sk_buff *skb, -- int head_need, bool may_encrypt) +- int head_need, +- enum ieee80211_encrypt encrypt) +int ieee80211_skb_resize(struct ieee80211_local *local, + struct ieee80211_sub_if_data *sdata, + struct sk_buff *skb, int hdr_len, int hdr_extra) { - struct ieee80211_local *local = sdata->local; -+ struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); - struct ieee80211_hdr *hdr; - bool enc_tailroom; - int tail_need = 0; - -- hdr = (struct ieee80211_hdr *) skb->data; -- enc_tailroom = may_encrypt && -- (sdata->crypto_tx_tailroom_needed_cnt || -- ieee80211_is_mgmt(hdr->frame_control)); +- enc_tailroom = encrypt == ENCRYPT_MGMT || +- (encrypt == ENCRYPT_DATA && +- sdata->crypto_tx_tailroom_needed_cnt); - - if (enc_tailroom) { - tail_need = IEEE80211_ENCRYPT_TAILROOM; - tail_need -= skb_tailroom(skb); - tail_need = max_t(int, tail_need, 0); ++ struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); ++ struct ieee80211_hdr *hdr; + int head_need, head_max; + int tail_need, tail_max; + bool enc_tailroom = false; @@ -123,27 +129,34 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> wiphy_debug(local->hw.wiphy, "failed to reallocate TX buffer\n"); return -ENOMEM; -@@ -1960,18 +1976,8 @@ void ieee80211_xmit(struct ieee80211_sub +@@ -1964,24 +1975,9 @@ void ieee80211_xmit(struct ieee80211_sub + { struct ieee80211_local *local = sdata->local; struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); - struct ieee80211_hdr *hdr; +- struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data; - int headroom; -- bool may_encrypt; +- enum ieee80211_encrypt encrypt; +- +- if (info->flags & IEEE80211_TX_INTFL_DONT_ENCRYPT) +- encrypt = ENCRYPT_NO; +- else if (ieee80211_is_mgmt(hdr->frame_control)) +- encrypt = ENCRYPT_MGMT; +- else +- encrypt = ENCRYPT_DATA; - -- may_encrypt = !(info->flags & IEEE80211_TX_INTFL_DONT_ENCRYPT); - - headroom = local->tx_headroom; -- if (may_encrypt) +- if (encrypt != ENCRYPT_NO) - headroom += sdata->encrypt_headroom; - headroom -= skb_headroom(skb); - headroom = max_t(int, 0, headroom); -- -- if (ieee80211_skb_resize(sdata, skb, headroom, may_encrypt)) { ++ struct ieee80211_hdr *hdr; + +- if (ieee80211_skb_resize(sdata, skb, headroom, encrypt)) { + if (ieee80211_skb_resize(local, sdata, skb, 0, 0)) { ieee80211_free_txskb(&local->hw, skb); return; } -@@ -2741,30 +2747,14 @@ static struct sk_buff *ieee80211_build_h +@@ -2752,30 +2748,14 @@ static struct sk_buff *ieee80211_build_h skb_pull(skb, skip_header_bytes); padsize = ieee80211_hdr_padsize(&local->hw, hdrlen); @@ -167,7 +180,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> - head_need += sdata->encrypt_headroom; - head_need += local->tx_headroom; - head_need = max_t(int, 0, head_need); -- if (ieee80211_skb_resize(sdata, skb, head_need, true)) { +- if (ieee80211_skb_resize(sdata, skb, head_need, ENCRYPT_DATA)) { - ieee80211_free_txskb(&local->hw, skb); - skb = NULL; - return ERR_PTR(-ENOMEM); @@ -180,7 +193,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> } if (encaps_data) -@@ -3377,7 +3367,6 @@ static bool ieee80211_xmit_fast(struct i +@@ -3388,7 +3368,6 @@ static bool ieee80211_xmit_fast(struct i struct ieee80211_local *local = sdata->local; u16 ethertype = (skb->data[12] << 8) | skb->data[13]; int extra_head = fast_tx->hdr_len - (ETH_HLEN - 2); @@ -188,14 +201,14 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> struct ethhdr eth; struct ieee80211_tx_info *info; struct ieee80211_hdr *hdr = (void *)fast_tx->hdr; -@@ -3429,10 +3418,7 @@ static bool ieee80211_xmit_fast(struct i +@@ -3440,10 +3419,7 @@ static bool ieee80211_xmit_fast(struct i * as the may-encrypt argument for the resize to not account for * more room than we already have in 'extra_head' */ - if (unlikely(ieee80211_skb_resize(sdata, skb, - max_t(int, extra_head + hw_headroom - - skb_headroom(skb), 0), -- false))) { +- ENCRYPT_NO))) { + if (unlikely(ieee80211_skb_resize(local, sdata, skb, extra_head, 0))) { kfree_skb(skb); return true; diff --git a/package/kernel/mac80211/patches/subsys/358-mac80211-make-ieee80211_schedule_txq-schedule-empty-.patch b/package/kernel/mac80211/patches/subsys/358-mac80211-make-ieee80211_schedule_txq-schedule-empty-.patch index 2967071026..c1e0c5c24c 100644 --- a/package/kernel/mac80211/patches/subsys/358-mac80211-make-ieee80211_schedule_txq-schedule-empty-.patch +++ b/package/kernel/mac80211/patches/subsys/358-mac80211-make-ieee80211_schedule_txq-schedule-empty-.patch @@ -72,7 +72,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> /** --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c -@@ -3673,8 +3673,9 @@ out: +@@ -3674,8 +3674,9 @@ out: } EXPORT_SYMBOL(ieee80211_next_txq); @@ -84,7 +84,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> { struct ieee80211_local *local = hw_to_local(hw); struct txq_info *txqi = to_txq_info(txq); -@@ -3682,7 +3683,8 @@ void ieee80211_schedule_txq(struct ieee8 +@@ -3683,7 +3684,8 @@ void ieee80211_schedule_txq(struct ieee8 spin_lock_bh(&local->active_txq_lock[txq->ac]); if (list_empty(&txqi->schedule_order) && @@ -94,7 +94,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> /* If airtime accounting is active, always enqueue STAs at the * head of the list to ensure that they only get moved to the * back by the airtime DRR scheduler once they have a negative -@@ -3702,7 +3704,7 @@ void ieee80211_schedule_txq(struct ieee8 +@@ -3703,7 +3705,7 @@ void ieee80211_schedule_txq(struct ieee8 spin_unlock_bh(&local->active_txq_lock[txq->ac]); } diff --git a/package/kernel/mac80211/patches/subsys/360-mac80211-when-using-iTXQ-select-the-queue-in-ieee802.patch b/package/kernel/mac80211/patches/subsys/360-mac80211-when-using-iTXQ-select-the-queue-in-ieee802.patch index 23414d57ae..ea86758ea0 100644 --- a/package/kernel/mac80211/patches/subsys/360-mac80211-when-using-iTXQ-select-the-queue-in-ieee802.patch +++ b/package/kernel/mac80211/patches/subsys/360-mac80211-when-using-iTXQ-select-the-queue-in-ieee802.patch @@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c -@@ -3772,6 +3772,7 @@ void __ieee80211_subif_start_xmit(struct +@@ -3773,6 +3773,7 @@ void __ieee80211_subif_start_xmit(struct u32 ctrl_flags) { struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); @@ -21,7 +21,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> struct sta_info *sta; struct sk_buff *next; -@@ -3785,7 +3786,15 @@ void __ieee80211_subif_start_xmit(struct +@@ -3786,7 +3787,15 @@ void __ieee80211_subif_start_xmit(struct if (ieee80211_lookup_ra_sta(sdata, skb, &sta)) goto out_free; diff --git a/package/kernel/mac80211/patches/subsys/362-mac80211-minstrel-remove-divisions-in-tx-status-path.patch b/package/kernel/mac80211/patches/subsys/362-mac80211-minstrel-remove-divisions-in-tx-status-path.patch index d38d33b41e..c2ca5f839a 100644 --- a/package/kernel/mac80211/patches/subsys/362-mac80211-minstrel-remove-divisions-in-tx-status-path.patch +++ b/package/kernel/mac80211/patches/subsys/362-mac80211-minstrel-remove-divisions-in-tx-status-path.patch @@ -11,9 +11,9 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> --- a/net/mac80211/rc80211_minstrel.c +++ b/net/mac80211/rc80211_minstrel.c -@@ -295,8 +295,7 @@ minstrel_tx_status(void *priv, struct ie - if (mi->sample_deferred > 0) - mi->sample_deferred--; +@@ -289,8 +289,7 @@ minstrel_tx_status(void *priv, struct ie + mi->r[ndx].stats.success += success; + } - if (time_after(jiffies, mi->last_stats_update + - (mp->update_interval * HZ) / 1000)) diff --git a/package/kernel/mac80211/patches/subsys/363-mac80211-minstrel_ht-replace-rate-stats-ewma-with-a-.patch b/package/kernel/mac80211/patches/subsys/363-mac80211-minstrel_ht-replace-rate-stats-ewma-with-a-.patch index 5e2a017865..5fa6db0adb 100644 --- a/package/kernel/mac80211/patches/subsys/363-mac80211-minstrel_ht-replace-rate-stats-ewma-with-a-.patch +++ b/package/kernel/mac80211/patches/subsys/363-mac80211-minstrel_ht-replace-rate-stats-ewma-with-a-.patch @@ -64,9 +64,9 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> /* Sample less often below the 10% chance of success. * Sample less often above the 95% chance of success. */ -@@ -295,7 +299,8 @@ minstrel_tx_status(void *priv, struct ie - if (mi->sample_deferred > 0) - mi->sample_deferred--; +@@ -289,7 +293,8 @@ minstrel_tx_status(void *priv, struct ie + mi->r[ndx].stats.success += success; + } - if (time_after(jiffies, mi->last_stats_update + mp->update_interval)) + if (time_after(jiffies, mi->last_stats_update + @@ -149,7 +149,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> /* statistis of packet delivery probability * prob_ewma - exponential weighted moving average of prob * prob_ewmsd - exp. weighted moving standard deviation of prob */ -@@ -114,6 +166,7 @@ struct minstrel_sta_info { +@@ -113,6 +165,7 @@ struct minstrel_sta_info { struct minstrel_priv { struct ieee80211_hw *hw; bool has_mrr; @@ -157,7 +157,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> u32 sample_switch; unsigned int cw_min; unsigned int cw_max; -@@ -153,7 +206,8 @@ extern const struct rate_control_ops mac +@@ -152,7 +205,8 @@ extern const struct rate_control_ops mac void minstrel_add_sta_debugfs(void *priv, void *priv_sta, struct dentry *dir); /* Recalculate success probabilities and counters for a given rate using EWMA */ diff --git a/package/kernel/mac80211/patches/subsys/364-mac80211-minstrel_ht-rename-prob_ewma-to-prob_avg-us.patch b/package/kernel/mac80211/patches/subsys/364-mac80211-minstrel_ht-rename-prob_ewma-to-prob_avg-us.patch index c919643505..7c782c0b93 100644 --- a/package/kernel/mac80211/patches/subsys/364-mac80211-minstrel_ht-rename-prob_ewma-to-prob_avg-us.patch +++ b/package/kernel/mac80211/patches/subsys/364-mac80211-minstrel_ht-rename-prob_ewma-to-prob_avg-us.patch @@ -106,7 +106,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> tmp_prob_rate = i; } } -@@ -436,7 +436,7 @@ minstrel_get_rate(void *priv, struct iee +@@ -418,7 +418,7 @@ minstrel_get_rate(void *priv, struct iee * has a probability of >95%, we shouldn't be attempting * to use it, as this only wastes precious airtime */ if (!mrr_capable && @@ -115,7 +115,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> return; mi->prev_sample = true; -@@ -587,7 +587,7 @@ static u32 minstrel_get_expected_through +@@ -570,7 +570,7 @@ static u32 minstrel_get_expected_through * computing cur_tp */ tmp_mrs = &mi->r[idx].stats; @@ -174,7 +174,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> /* maximum retry counts */ u8 retry_count; u8 retry_count_rtscts; -@@ -208,7 +205,7 @@ void minstrel_add_sta_debugfs(void *priv +@@ -207,7 +204,7 @@ void minstrel_add_sta_debugfs(void *priv /* Recalculate success probabilities and counters for a given rate using EWMA */ void minstrel_calc_rate_stats(struct minstrel_priv *mp, struct minstrel_rate_stats *mrs); diff --git a/package/kernel/mac80211/patches/subsys/367-mac80211-sta-randomize-BA-session-dialog-token-alloc.patch b/package/kernel/mac80211/patches/subsys/367-mac80211-sta-randomize-BA-session-dialog-token-alloc.patch index 58158b58e6..8efd0e11e3 100644 --- a/package/kernel/mac80211/patches/subsys/367-mac80211-sta-randomize-BA-session-dialog-token-alloc.patch +++ b/package/kernel/mac80211/patches/subsys/367-mac80211-sta-randomize-BA-session-dialog-token-alloc.patch @@ -28,7 +28,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> --- a/net/mac80211/sta_info.c +++ b/net/mac80211/sta_info.c -@@ -322,6 +322,7 @@ struct sta_info *sta_info_alloc(struct i +@@ -340,6 +340,7 @@ struct sta_info *sta_info_alloc(struct i INIT_WORK(&sta->drv_deliver_wk, sta_deliver_ps_frames); INIT_WORK(&sta->ampdu_mlme.work, ieee80211_ba_session_work); mutex_init(&sta->ampdu_mlme.mtx); diff --git a/package/kernel/mac80211/patches/subsys/368-cfg80211-add-local-BSS-receive-time-to-survey-inform.patch b/package/kernel/mac80211/patches/subsys/368-cfg80211-add-local-BSS-receive-time-to-survey-inform.patch index 7854dbbfc4..651b117c83 100644 --- a/package/kernel/mac80211/patches/subsys/368-cfg80211-add-local-BSS-receive-time-to-survey-inform.patch +++ b/package/kernel/mac80211/patches/subsys/368-cfg80211-add-local-BSS-receive-time-to-survey-inform.patch @@ -64,7 +64,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> __NL80211_SURVEY_INFO_AFTER_LAST, --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c -@@ -8373,6 +8373,10 @@ static int nl80211_send_survey(struct sk +@@ -8379,6 +8379,10 @@ static int nl80211_send_survey(struct sk nla_put_u64_64bit(msg, NL80211_SURVEY_INFO_TIME_SCAN, survey->time_scan, NL80211_SURVEY_INFO_PAD)) goto nla_put_failure; diff --git a/package/kernel/mac80211/patches/subsys/370-mac80211-fix-misplaced-while-instead-of-if.patch b/package/kernel/mac80211/patches/subsys/370-mac80211-fix-misplaced-while-instead-of-if.patch deleted file mode 100644 index e3f18131b7..0000000000 --- a/package/kernel/mac80211/patches/subsys/370-mac80211-fix-misplaced-while-instead-of-if.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 5981fe5b0529ba25d95f37d7faa434183ad618c5 Mon Sep 17 00:00:00 2001 -From: Johannes Berg <johannes.berg@intel.com> -Date: Mon, 3 Aug 2020 11:02:10 +0200 -Subject: [PATCH] mac80211: fix misplaced while instead of if - -This never was intended to be a 'while' loop, it should've -just been an 'if' instead of 'while'. Fix this. - -I noticed this while applying another patch from Ben that -intended to fix a busy loop at this spot. - -Cc: stable@vger.kernel.org -Fixes: b16798f5b907 ("mac80211: mark station unauthorized before key removal") -Reported-by: Ben Greear <greearb@candelatech.com> -Link: https://lore.kernel.org/r/20200803110209.253009ae41ff.I3522aad099392b31d5cf2dcca34cbac7e5832dde@changeid -Signed-off-by: Johannes Berg <johannes.berg@intel.com> ---- - net/mac80211/sta_info.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/net/mac80211/sta_info.c -+++ b/net/mac80211/sta_info.c -@@ -980,7 +980,7 @@ static void __sta_info_destroy_part2(str - might_sleep(); - lockdep_assert_held(&local->sta_mtx); - -- while (sta->sta_state == IEEE80211_STA_AUTHORIZED) { -+ if (sta->sta_state == IEEE80211_STA_AUTHORIZED) { - ret = sta_info_move_state(sta, IEEE80211_STA_ASSOC); - WARN_ON_ONCE(ret); - } diff --git a/package/kernel/mac80211/patches/subsys/522-mac80211_configure_antenna_gain.patch b/package/kernel/mac80211/patches/subsys/522-mac80211_configure_antenna_gain.patch index 82b45b08f9..31137e1b37 100644 --- a/package/kernel/mac80211/patches/subsys/522-mac80211_configure_antenna_gain.patch +++ b/package/kernel/mac80211/patches/subsys/522-mac80211_configure_antenna_gain.patch @@ -57,7 +57,7 @@ __NL80211_ATTR_AFTER_LAST, --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c -@@ -2457,6 +2457,19 @@ static int ieee80211_get_tx_power(struct +@@ -2458,6 +2458,19 @@ static int ieee80211_get_tx_power(struct return 0; } @@ -77,7 +77,7 @@ static int ieee80211_set_wds_peer(struct wiphy *wiphy, struct net_device *dev, const u8 *addr) { -@@ -3846,6 +3859,7 @@ const struct cfg80211_ops mac80211_confi +@@ -3847,6 +3860,7 @@ const struct cfg80211_ops mac80211_confi .set_wiphy_params = ieee80211_set_wiphy_params, .set_tx_power = ieee80211_set_tx_power, .get_tx_power = ieee80211_get_tx_power, @@ -137,7 +137,7 @@ }; /* policy for the key attributes */ -@@ -2629,6 +2630,20 @@ static int nl80211_set_wiphy(struct sk_b +@@ -2632,6 +2633,20 @@ static int nl80211_set_wiphy(struct sk_b if (result) return result; } |