From 2c67fff961ac276ae93e6349e444f51599decc93 Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sun, 28 Jan 2024 00:24:42 +0100 Subject: [PATCH] mac80211: Update to version 5.15.148-1 This update mac80211 to version 5.15.148-1. This includes multiple bugfixes. Some of these bugfixes are fixing security relevant bugs. The following patch was integrated into upstream Linux: package/kernel/mac80211/patches/subsys/352-wifi-mac80211-fix-invalid-drv_sta_pre_rcu_remove-cal.patch Signed-off-by: Hauke Mehrtens --- package/kernel/mac80211/Makefile | 6 +-- .../patches/ath/400-ath_move_debug_code.patch | 2 +- .../patches/ath/404-regd_no_assoc_hints.patch | 4 +- .../ath9k/512-ath9k_channelbw_debugfs.patch | 2 +- ...und-bug-with-some-inconsistent-BSSes.patch | 2 +- ...62-brcmfmac-Disable-power-management.patch | 2 +- .../mac80211/patches/brcm/998-survey.patch | 12 +++--- .../patches/build/015-ipw200-mtu.patch | 4 +- .../801-libertas-configure-sysfs-links.patch | 2 +- ...02-rt2x00-add-throughput-LED-trigger.patch | 6 +-- .../602-rt2x00-introduce-rt2x00eeprom.patch | 4 +- .../611-rt2x00-add-AP+STA-support.patch | 2 +- ...rse-boottime-for-airtime-fairness-co.patch | 10 ++--- ...211-split-beacon-retrieval-functions.patch | 10 ++--- ...11-MBSSID-and-EMA-support-in-AP-mode.patch | 38 +++++++++---------- ...nt-APIs-for-dedicated-radar-detectio.patch | 16 ++++---- ...ffchan_cac_event-to-a-dedicated-work.patch | 6 +-- ...e-offchan_cac_abort_wk-in-cfg80211_r.patch | 2 +- ...ontinuous-radar-monitoring-on-offcha.patch | 6 +-- ...introduce-set_radar_offchan-callback.patch | 4 +- ...offchannel_chain-structs-to-backgrou.patch | 22 +++++------ ...11-MBSSID-beacon-handling-in-AP-mode.patch | 24 ++++++------ .../325-mac80211-MBSSID-channel-switch.patch | 2 +- ...airtime-fairness-back-to-deficit-rou.patch | 14 +++---- ...a-airtime-deficit-field-s32-instead-.patch | 2 +- ...r-aql_tx_pending-when-checking-airti.patch | 6 +-- ...cently-active-tx-queues-in-schedulin.patch | 10 ++--- ...er-PHY-AQL-limit-to-improve-fairness.patch | 12 +++--- ...cumulate-airtime-deficit-for-active-.patch | 4 +- ...crease-quantum-for-airtime-scheduler.patch | 6 +-- ...-multicast-packets-from-AQL-pending-.patch | 2 +- ...x-decap-offload-for-stations-on-AP_V.patch | 4 +- ...-not-drop-packets-smaller-than-the-L.patch | 2 +- ...orrectly-mark-FTM-frames-non-buffera.patch | 8 ++-- ...mac80211-flush-queues-on-STA-removal.patch | 2 +- ...i-mvm-support-flush-on-AP-interfaces.patch | 4 +- ...0-wifi-mac80211-add-flush_sta-method.patch | 2 +- ...ifi-mvm-support-new-flush_sta-method.patch | 4 +- ...x-invalid-drv_sta_pre_rcu_remove-cal.patch | 25 ------------ .../patches/subsys/400-allow-ibss-mixed.patch | 2 +- .../500-mac80211_configure_antenna_gain.patch | 12 +++--- 41 files changed, 142 insertions(+), 167 deletions(-) delete mode 100644 package/kernel/mac80211/patches/subsys/352-wifi-mac80211-fix-invalid-drv_sta_pre_rcu_remove-cal.patch diff --git a/package/kernel/mac80211/Makefile b/package/kernel/mac80211/Makefile index f7165fff2c..5dc8888cc2 100644 --- a/package/kernel/mac80211/Makefile +++ b/package/kernel/mac80211/Makefile @@ -10,10 +10,10 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=mac80211 -PKG_VERSION:=5.15.92-1 +PKG_VERSION:=5.15.148-1 PKG_RELEASE:=1 -PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v5.15.92/ -PKG_HASH:=d518e3614a0a8b635e7b7febf2a3ee1645a95d953fd353920ceee22f159f26f1 +PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v5.15.148 +PKG_HASH:=3ec31964844cbb8f7c7af4da8ae765446572934a334926102ed2f3baebb87c06 PKG_SOURCE:=backports-$(PKG_VERSION).tar.xz PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/backports-$(PKG_VERSION) diff --git a/package/kernel/mac80211/patches/ath/400-ath_move_debug_code.patch b/package/kernel/mac80211/patches/ath/400-ath_move_debug_code.patch index eacc72776e..5583a6e841 100644 --- a/package/kernel/mac80211/patches/ath/400-ath_move_debug_code.patch +++ b/package/kernel/mac80211/patches/ath/400-ath_move_debug_code.patch @@ -14,7 +14,7 @@ CFLAGS_trace.o := -I$(src) --- a/drivers/net/wireless/ath/ath.h +++ b/drivers/net/wireless/ath/ath.h -@@ -317,14 +317,7 @@ void _ath_dbg(struct ath_common *common, +@@ -319,14 +319,7 @@ void _ath_dbg(struct ath_common *common, #endif /* CPTCFG_ATH_DEBUG */ /** Returns string describing opmode, or NULL if unknown mode. */ diff --git a/package/kernel/mac80211/patches/ath/404-regd_no_assoc_hints.patch b/package/kernel/mac80211/patches/ath/404-regd_no_assoc_hints.patch index c66301efa7..34564f9a90 100644 --- a/package/kernel/mac80211/patches/ath/404-regd_no_assoc_hints.patch +++ b/package/kernel/mac80211/patches/ath/404-regd_no_assoc_hints.patch @@ -1,6 +1,6 @@ --- a/net/wireless/reg.c +++ b/net/wireless/reg.c -@@ -3315,6 +3315,8 @@ void regulatory_hint_country_ie(struct w +@@ -3313,6 +3313,8 @@ void regulatory_hint_country_ie(struct w enum environment_cap env = ENVIRON_ANY; struct regulatory_request *request = NULL, *lr; @@ -9,7 +9,7 @@ /* IE len must be evenly divisible by 2 */ if (country_ie_len & 0x01) return; -@@ -3566,6 +3568,7 @@ static bool is_wiphy_all_set_reg_flag(en +@@ -3564,6 +3566,7 @@ static bool is_wiphy_all_set_reg_flag(en void regulatory_hint_disconnect(void) { diff --git a/package/kernel/mac80211/patches/ath9k/512-ath9k_channelbw_debugfs.patch b/package/kernel/mac80211/patches/ath9k/512-ath9k_channelbw_debugfs.patch index 126d1d5c62..9ffab759de 100644 --- a/package/kernel/mac80211/patches/ath9k/512-ath9k_channelbw_debugfs.patch +++ b/package/kernel/mac80211/patches/ath9k/512-ath9k_channelbw_debugfs.patch @@ -64,7 +64,7 @@ debugfs_create_devm_seqfile(sc->dev, "interrupt", sc->debug.debugfs_phy, --- a/drivers/net/wireless/ath/ath.h +++ b/drivers/net/wireless/ath/ath.h -@@ -149,6 +149,7 @@ struct ath_common { +@@ -151,6 +151,7 @@ struct ath_common { int debug_mask; enum ath_device_state state; unsigned long op_flags; diff --git a/package/kernel/mac80211/patches/brcm/861-brcmfmac-workaround-bug-with-some-inconsistent-BSSes.patch b/package/kernel/mac80211/patches/brcm/861-brcmfmac-workaround-bug-with-some-inconsistent-BSSes.patch index 7b4cb250f9..e832f175f8 100644 --- a/package/kernel/mac80211/patches/brcm/861-brcmfmac-workaround-bug-with-some-inconsistent-BSSes.patch +++ b/package/kernel/mac80211/patches/brcm/861-brcmfmac-workaround-bug-with-some-inconsistent-BSSes.patch @@ -10,7 +10,7 @@ Signed-off-by: Rafał Miłecki --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c -@@ -715,8 +715,36 @@ static struct wireless_dev *brcmf_cfg802 +@@ -718,8 +718,36 @@ static struct wireless_dev *brcmf_cfg802 struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy); struct brcmf_pub *drvr = cfg->pub; struct wireless_dev *wdev; diff --git a/package/kernel/mac80211/patches/brcm/862-brcmfmac-Disable-power-management.patch b/package/kernel/mac80211/patches/brcm/862-brcmfmac-Disable-power-management.patch index 88465f256b..cce62d971d 100644 --- a/package/kernel/mac80211/patches/brcm/862-brcmfmac-Disable-power-management.patch +++ b/package/kernel/mac80211/patches/brcm/862-brcmfmac-Disable-power-management.patch @@ -14,7 +14,7 @@ Signed-off-by: Phil Elwell --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c -@@ -2974,6 +2974,10 @@ brcmf_cfg80211_set_power_mgmt(struct wip +@@ -2978,6 +2978,10 @@ brcmf_cfg80211_set_power_mgmt(struct wip * preference in cfg struct to apply this to * FW later while initializing the dongle */ diff --git a/package/kernel/mac80211/patches/brcm/998-survey.patch b/package/kernel/mac80211/patches/brcm/998-survey.patch index 74aa3e3925..d85dac2a51 100644 --- a/package/kernel/mac80211/patches/brcm/998-survey.patch +++ b/package/kernel/mac80211/patches/brcm/998-survey.patch @@ -1,6 +1,6 @@ --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c -@@ -2921,6 +2921,63 @@ done: +@@ -2925,6 +2925,63 @@ done: } static int @@ -64,7 +64,7 @@ brcmf_cfg80211_dump_station(struct wiphy *wiphy, struct net_device *ndev, int idx, u8 *mac, struct station_info *sinfo) { -@@ -3021,6 +3078,7 @@ static s32 brcmf_inform_single_bss(struc +@@ -3025,6 +3082,7 @@ static s32 brcmf_inform_single_bss(struc struct brcmu_chan ch; u16 channel; u32 freq; @@ -72,7 +72,7 @@ u16 notify_capability; u16 notify_interval; u8 *notify_ie; -@@ -3045,6 +3103,17 @@ static s32 brcmf_inform_single_bss(struc +@@ -3049,6 +3107,17 @@ static s32 brcmf_inform_single_bss(struc band = NL80211_BAND_5GHZ; freq = ieee80211_channel_to_frequency(channel, band); @@ -90,7 +90,7 @@ bss_data.chan = ieee80211_get_channel(wiphy, freq); bss_data.scan_width = NL80211_BSS_CHAN_WIDTH_20; bss_data.boottime_ns = ktime_to_ns(ktime_get_boottime()); -@@ -5573,6 +5642,7 @@ static struct cfg80211_ops brcmf_cfg8021 +@@ -5577,6 +5646,7 @@ static struct cfg80211_ops brcmf_cfg8021 .leave_ibss = brcmf_cfg80211_leave_ibss, .get_station = brcmf_cfg80211_get_station, .dump_station = brcmf_cfg80211_dump_station, @@ -100,7 +100,7 @@ .add_key = brcmf_cfg80211_add_key, --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c -@@ -1362,6 +1362,8 @@ int brcmf_attach(struct device *dev) +@@ -1363,6 +1363,8 @@ int brcmf_attach(struct device *dev) /* Link to bus module */ drvr->hdrlen = 0; @@ -109,7 +109,7 @@ /* Attach and link in the protocol */ ret = brcmf_proto_attach(drvr); -@@ -1444,6 +1446,12 @@ void brcmf_detach(struct device *dev) +@@ -1445,6 +1447,12 @@ void brcmf_detach(struct device *dev) if (drvr == NULL) return; diff --git a/package/kernel/mac80211/patches/build/015-ipw200-mtu.patch b/package/kernel/mac80211/patches/build/015-ipw200-mtu.patch index 68db4f72d3..d469ebf40f 100644 --- a/package/kernel/mac80211/patches/build/015-ipw200-mtu.patch +++ b/package/kernel/mac80211/patches/build/015-ipw200-mtu.patch @@ -1,6 +1,6 @@ --- a/drivers/net/wireless/intel/ipw2x00/ipw2200.c +++ b/drivers/net/wireless/intel/ipw2x00/ipw2200.c -@@ -11470,6 +11470,15 @@ static const struct attribute_group ipw_ +@@ -11475,6 +11475,15 @@ static const struct attribute_group ipw_ .attrs = ipw_sysfs_entries, }; @@ -16,7 +16,7 @@ #ifdef CPTCFG_IPW2200_PROMISCUOUS static int ipw_prom_open(struct net_device *dev) { -@@ -11518,15 +11527,6 @@ static netdev_tx_t ipw_prom_hard_start_x +@@ -11523,15 +11532,6 @@ static netdev_tx_t ipw_prom_hard_start_x return NETDEV_TX_OK; } diff --git a/package/kernel/mac80211/patches/mwl/801-libertas-configure-sysfs-links.patch b/package/kernel/mac80211/patches/mwl/801-libertas-configure-sysfs-links.patch index dfa0e502fc..46b6703136 100644 --- a/package/kernel/mac80211/patches/mwl/801-libertas-configure-sysfs-links.patch +++ b/package/kernel/mac80211/patches/mwl/801-libertas-configure-sysfs-links.patch @@ -11,7 +11,7 @@ err_wiphy_new: --- a/drivers/net/wireless/marvell/libertas/main.c +++ b/drivers/net/wireless/marvell/libertas/main.c -@@ -935,6 +935,7 @@ struct lbs_private *lbs_add_card(void *c +@@ -936,6 +936,7 @@ struct lbs_private *lbs_add_card(void *c goto err_adapter; } diff --git a/package/kernel/mac80211/patches/rt2x00/002-rt2x00-add-throughput-LED-trigger.patch b/package/kernel/mac80211/patches/rt2x00/002-rt2x00-add-throughput-LED-trigger.patch index 02d1f7a2e5..9ba8ab1249 100644 --- a/package/kernel/mac80211/patches/rt2x00/002-rt2x00-add-throughput-LED-trigger.patch +++ b/package/kernel/mac80211/patches/rt2x00/002-rt2x00-add-throughput-LED-trigger.patch @@ -42,8 +42,8 @@ Acked-by: Stanislaw Gruszka --- a/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c +++ b/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c -@@ -1093,6 +1093,19 @@ static void rt2x00lib_remove_hw(struct r - kfree(rt2x00dev->spec.channels_info); +@@ -1094,6 +1094,19 @@ static void rt2x00lib_remove_hw(struct r + kfree(rt2x00dev->chan_survey); } +static const struct ieee80211_tpt_blink rt2x00_tpt_blink[] = { @@ -62,7 +62,7 @@ Acked-by: Stanislaw Gruszka static int rt2x00lib_probe_hw(struct rt2x00_dev *rt2x00dev) { struct hw_mode_spec *spec = &rt2x00dev->spec; -@@ -1174,6 +1187,11 @@ static int rt2x00lib_probe_hw(struct rt2 +@@ -1175,6 +1188,11 @@ static int rt2x00lib_probe_hw(struct rt2 #undef RT2X00_TASKLET_INIT diff --git a/package/kernel/mac80211/patches/rt2x00/602-rt2x00-introduce-rt2x00eeprom.patch b/package/kernel/mac80211/patches/rt2x00/602-rt2x00-introduce-rt2x00eeprom.patch index ba16e85510..4d7f49cb7e 100644 --- a/package/kernel/mac80211/patches/rt2x00/602-rt2x00-introduce-rt2x00eeprom.patch +++ b/package/kernel/mac80211/patches/rt2x00/602-rt2x00-introduce-rt2x00eeprom.patch @@ -127,7 +127,7 @@ DECLARE_KFIFO_PTR(txstatus_fifo, u32); --- a/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c +++ b/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c -@@ -1419,6 +1419,10 @@ int rt2x00lib_probe_dev(struct rt2x00_de +@@ -1420,6 +1420,10 @@ int rt2x00lib_probe_dev(struct rt2x00_de INIT_DELAYED_WORK(&rt2x00dev->autowakeup_work, rt2x00lib_autowakeup); INIT_WORK(&rt2x00dev->sleep_work, rt2x00lib_sleep); @@ -138,7 +138,7 @@ /* * Let the driver probe the device to detect the capabilities. */ -@@ -1559,6 +1563,11 @@ void rt2x00lib_remove_dev(struct rt2x00_ +@@ -1560,6 +1564,11 @@ void rt2x00lib_remove_dev(struct rt2x00_ * Free the driver data. */ kfree(rt2x00dev->drv_data); diff --git a/package/kernel/mac80211/patches/rt2x00/611-rt2x00-add-AP+STA-support.patch b/package/kernel/mac80211/patches/rt2x00/611-rt2x00-add-AP+STA-support.patch index 5ef5fc8def..aa2b25ba7f 100644 --- a/package/kernel/mac80211/patches/rt2x00/611-rt2x00-add-AP+STA-support.patch +++ b/package/kernel/mac80211/patches/rt2x00/611-rt2x00-add-AP+STA-support.patch @@ -1,6 +1,6 @@ --- a/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c +++ b/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c -@@ -1358,7 +1358,7 @@ static inline void rt2x00lib_set_if_comb +@@ -1359,7 +1359,7 @@ static inline void rt2x00lib_set_if_comb */ if_limit = &rt2x00dev->if_limits_ap; if_limit->max = rt2x00dev->ops->max_ap_intf; diff --git a/package/kernel/mac80211/patches/subsys/306-mac80211-use-coarse-boottime-for-airtime-fairness-co.patch b/package/kernel/mac80211/patches/subsys/306-mac80211-use-coarse-boottime-for-airtime-fairness-co.patch index c43cd3acb9..68a55b1e86 100644 --- a/package/kernel/mac80211/patches/subsys/306-mac80211-use-coarse-boottime-for-airtime-fairness-co.patch +++ b/package/kernel/mac80211/patches/subsys/306-mac80211-use-coarse-boottime-for-airtime-fairness-co.patch @@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c -@@ -3820,7 +3820,7 @@ struct ieee80211_txq *ieee80211_next_txq +@@ -3821,7 +3821,7 @@ struct ieee80211_txq *ieee80211_next_txq { struct ieee80211_local *local = hw_to_local(hw); struct airtime_sched_info *air_sched; @@ -22,7 +22,7 @@ Signed-off-by: Felix Fietkau struct ieee80211_txq *ret = NULL; struct airtime_info *air_info; struct txq_info *txqi = NULL; -@@ -3947,7 +3947,7 @@ void ieee80211_update_airtime_weight(str +@@ -3948,7 +3948,7 @@ void ieee80211_update_airtime_weight(str u64 weight_sum = 0; if (unlikely(!now)) @@ -31,7 +31,7 @@ Signed-off-by: Felix Fietkau lockdep_assert_held(&air_sched->lock); -@@ -3973,7 +3973,7 @@ void ieee80211_schedule_txq(struct ieee8 +@@ -3974,7 +3974,7 @@ void ieee80211_schedule_txq(struct ieee8 struct ieee80211_local *local = hw_to_local(hw); struct txq_info *txqi = to_txq_info(txq); struct airtime_sched_info *air_sched; @@ -40,7 +40,7 @@ Signed-off-by: Felix Fietkau struct airtime_info *air_info; u8 ac = txq->ac; bool was_active; -@@ -4031,7 +4031,7 @@ static void __ieee80211_unschedule_txq(s +@@ -4032,7 +4032,7 @@ static void __ieee80211_unschedule_txq(s if (!purge) airtime_set_active(air_sched, air_info, @@ -49,7 +49,7 @@ Signed-off-by: Felix Fietkau rb_erase_cached(&txqi->schedule_order, &air_sched->active_txqs); -@@ -4119,7 +4119,7 @@ bool ieee80211_txq_may_transmit(struct i +@@ -4120,7 +4120,7 @@ bool ieee80211_txq_may_transmit(struct i if (RB_EMPTY_NODE(&txqi->schedule_order)) goto out; diff --git a/package/kernel/mac80211/patches/subsys/312-mac80211-split-beacon-retrieval-functions.patch b/package/kernel/mac80211/patches/subsys/312-mac80211-split-beacon-retrieval-functions.patch index 18b1951f6e..36764db336 100644 --- a/package/kernel/mac80211/patches/subsys/312-mac80211-split-beacon-retrieval-functions.patch +++ b/package/kernel/mac80211/patches/subsys/312-mac80211-split-beacon-retrieval-functions.patch @@ -14,7 +14,7 @@ Signed-off-by: Johannes Berg --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c -@@ -4987,6 +4987,115 @@ static int ieee80211_beacon_protect(stru +@@ -4988,6 +4988,115 @@ static int ieee80211_beacon_protect(stru return 0; } @@ -130,7 +130,7 @@ Signed-off-by: Johannes Berg static struct sk_buff * __ieee80211_beacon_get(struct ieee80211_hw *hw, struct ieee80211_vif *vif, -@@ -4996,12 +5105,8 @@ __ieee80211_beacon_get(struct ieee80211_ +@@ -4997,12 +5106,8 @@ __ieee80211_beacon_get(struct ieee80211_ struct ieee80211_local *local = hw_to_local(hw); struct beacon_data *beacon = NULL; struct sk_buff *skb = NULL; @@ -143,7 +143,7 @@ Signed-off-by: Johannes Berg rcu_read_lock(); -@@ -5018,48 +5123,11 @@ __ieee80211_beacon_get(struct ieee80211_ +@@ -5019,48 +5124,11 @@ __ieee80211_beacon_get(struct ieee80211_ struct ieee80211_if_ap *ap = &sdata->u.ap; beacon = rcu_dereference(ap->beacon); @@ -196,7 +196,7 @@ Signed-off-by: Johannes Berg } else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) { struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; struct ieee80211_hdr *hdr; -@@ -5085,6 +5153,9 @@ __ieee80211_beacon_get(struct ieee80211_ +@@ -5086,6 +5154,9 @@ __ieee80211_beacon_get(struct ieee80211_ hdr = (struct ieee80211_hdr *) skb->data; hdr->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT | IEEE80211_STYPE_BEACON); @@ -206,7 +206,7 @@ Signed-off-by: Johannes Berg } else if (ieee80211_vif_is_mesh(&sdata->vif)) { struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; -@@ -5124,51 +5195,13 @@ __ieee80211_beacon_get(struct ieee80211_ +@@ -5125,51 +5196,13 @@ __ieee80211_beacon_get(struct ieee80211_ } skb_put_data(skb, beacon->tail, beacon->tail_len); diff --git a/package/kernel/mac80211/patches/subsys/313-nl80211-MBSSID-and-EMA-support-in-AP-mode.patch b/package/kernel/mac80211/patches/subsys/313-nl80211-MBSSID-and-EMA-support-in-AP-mode.patch index 429886d701..052c7b708d 100644 --- a/package/kernel/mac80211/patches/subsys/313-nl80211-MBSSID-and-EMA-support-in-AP-mode.patch +++ b/package/kernel/mac80211/patches/subsys/313-nl80211-MBSSID-and-EMA-support-in-AP-mode.patch @@ -22,7 +22,7 @@ Signed-off-by: Johannes Berg --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h -@@ -1046,6 +1046,36 @@ struct cfg80211_crypto_settings { +@@ -1049,6 +1049,36 @@ struct cfg80211_crypto_settings { }; /** @@ -59,7 +59,7 @@ Signed-off-by: Johannes Berg * struct cfg80211_beacon_data - beacon data * @head: head portion of beacon (before TIM IE) * or %NULL if not changed -@@ -1063,6 +1093,7 @@ struct cfg80211_crypto_settings { +@@ -1066,6 +1096,7 @@ struct cfg80211_crypto_settings { * @assocresp_ies_len: length of assocresp_ies in octets * @probe_resp_len: length of probe response template (@probe_resp) * @probe_resp: probe response template (AP mode only) @@ -67,7 +67,7 @@ Signed-off-by: Johannes Berg * @ftm_responder: enable FTM responder functionality; -1 for no change * (which also implies no change in LCI/civic location data) * @lci: Measurement Report element content, starting with Measurement Token -@@ -1080,6 +1111,7 @@ struct cfg80211_beacon_data { +@@ -1083,6 +1114,7 @@ struct cfg80211_beacon_data { const u8 *probe_resp; const u8 *lci; const u8 *civicloc; @@ -75,7 +75,7 @@ Signed-off-by: Johannes Berg s8 ftm_responder; size_t head_len, tail_len; -@@ -1194,6 +1226,7 @@ enum cfg80211_ap_settings_flags { +@@ -1197,6 +1229,7 @@ enum cfg80211_ap_settings_flags { * @he_oper: HE operation IE (or %NULL if HE isn't enabled) * @fils_discovery: FILS discovery transmission parameters * @unsol_bcast_probe_resp: Unsolicited broadcast probe response parameters @@ -83,7 +83,7 @@ Signed-off-by: Johannes Berg */ struct cfg80211_ap_settings { struct cfg80211_chan_def chandef; -@@ -1226,6 +1259,7 @@ struct cfg80211_ap_settings { +@@ -1229,6 +1262,7 @@ struct cfg80211_ap_settings { struct cfg80211_he_bss_color he_bss_color; struct cfg80211_fils_discovery fils_discovery; struct cfg80211_unsol_bcast_probe_resp unsol_bcast_probe_resp; @@ -91,7 +91,7 @@ Signed-off-by: Johannes Berg }; /** -@@ -4986,6 +5020,13 @@ struct wiphy_iftype_akm_suites { +@@ -4989,6 +5023,13 @@ struct wiphy_iftype_akm_suites { * %NL80211_TID_CONFIG_ATTR_RETRY_LONG attributes * @sar_capa: SAR control capabilities * @rfkill: a pointer to the rfkill structure @@ -105,7 +105,7 @@ Signed-off-by: Johannes Berg */ struct wiphy { struct mutex mtx; -@@ -5133,6 +5174,9 @@ struct wiphy { +@@ -5136,6 +5177,9 @@ struct wiphy { struct rfkill *rfkill; @@ -221,7 +221,7 @@ Signed-off-by: Johannes Berg #endif /* __LINUX_NL80211_H */ --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c -@@ -442,6 +442,16 @@ sar_policy[NL80211_SAR_ATTR_MAX + 1] = { +@@ -443,6 +443,16 @@ sar_policy[NL80211_SAR_ATTR_MAX + 1] = { [NL80211_SAR_ATTR_SPECS] = NLA_POLICY_NESTED_ARRAY(sar_specs_policy), }; @@ -238,7 +238,7 @@ Signed-off-by: Johannes Berg static const struct nla_policy nl80211_policy[NUM_NL80211_ATTR] = { [0] = { .strict_start_type = NL80211_ATTR_HE_OBSS_PD }, [NL80211_ATTR_WIPHY] = { .type = NLA_U32 }, -@@ -788,6 +798,9 @@ static const struct nla_policy nl80211_p +@@ -789,6 +799,9 @@ static const struct nla_policy nl80211_p [NL80211_ATTR_COLOR_CHANGE_COUNT] = { .type = NLA_U8 }, [NL80211_ATTR_COLOR_CHANGE_COLOR] = { .type = NLA_U8 }, [NL80211_ATTR_COLOR_CHANGE_ELEMS] = NLA_POLICY_NESTED(nl80211_policy), @@ -248,7 +248,7 @@ Signed-off-by: Johannes Berg }; /* policy for the key attributes */ -@@ -2236,6 +2249,35 @@ fail: +@@ -2237,6 +2250,35 @@ fail: return -ENOBUFS; } @@ -284,7 +284,7 @@ Signed-off-by: Johannes Berg struct nl80211_dump_wiphy_state { s64 filter_wiphy; long start; -@@ -2821,6 +2863,9 @@ static int nl80211_send_wiphy(struct cfg +@@ -2822,6 +2864,9 @@ static int nl80211_send_wiphy(struct cfg if (nl80211_put_sar_specs(rdev, msg)) goto nla_put_failure; @@ -294,7 +294,7 @@ Signed-off-by: Johannes Berg /* done */ state->split_start = 0; break; -@@ -5020,6 +5065,96 @@ static int validate_beacon_tx_rate(struc +@@ -5021,6 +5066,96 @@ static int validate_beacon_tx_rate(struc return 0; } @@ -391,7 +391,7 @@ Signed-off-by: Johannes Berg static int nl80211_parse_beacon(struct cfg80211_registered_device *rdev, struct nlattr *attrs[], struct cfg80211_beacon_data *bcn) -@@ -5100,6 +5235,17 @@ static int nl80211_parse_beacon(struct c +@@ -5101,6 +5236,17 @@ static int nl80211_parse_beacon(struct c bcn->ftm_responder = -1; } @@ -409,7 +409,7 @@ Signed-off-by: Johannes Berg return 0; } -@@ -5556,6 +5702,17 @@ static int nl80211_start_ap(struct sk_bu +@@ -5557,6 +5703,17 @@ static int nl80211_start_ap(struct sk_bu goto out; } @@ -427,7 +427,7 @@ Signed-off-by: Johannes Berg nl80211_calculate_ap_params(¶ms); if (info->attrs[NL80211_ATTR_EXTERNAL_AUTH_SUPPORT]) -@@ -5577,6 +5734,11 @@ static int nl80211_start_ap(struct sk_bu +@@ -5578,6 +5735,11 @@ static int nl80211_start_ap(struct sk_bu out: kfree(params.acl); @@ -439,7 +439,7 @@ Signed-off-by: Johannes Berg return err; } -@@ -5601,12 +5763,14 @@ static int nl80211_set_beacon(struct sk_ +@@ -5602,12 +5764,14 @@ static int nl80211_set_beacon(struct sk_ err = nl80211_parse_beacon(rdev, info->attrs, ¶ms); if (err) @@ -455,7 +455,7 @@ Signed-off-by: Johannes Berg return err; } -@@ -9283,12 +9447,14 @@ static int nl80211_channel_switch(struct +@@ -9284,12 +9448,14 @@ static int nl80211_channel_switch(struct err = nl80211_parse_beacon(rdev, info->attrs, ¶ms.beacon_after); if (err) @@ -473,7 +473,7 @@ Signed-off-by: Johannes Berg err = nla_parse_nested_deprecated(csa_attrs, NL80211_ATTR_MAX, info->attrs[NL80211_ATTR_CSA_IES], -@@ -9407,6 +9573,8 @@ skip_beacons: +@@ -9408,6 +9574,8 @@ skip_beacons: wdev_unlock(wdev); free: @@ -482,7 +482,7 @@ Signed-off-by: Johannes Berg kfree(csa_attrs); return err; } -@@ -14959,6 +15127,8 @@ static int nl80211_color_change(struct s +@@ -14960,6 +15128,8 @@ static int nl80211_color_change(struct s wdev_unlock(wdev); out: diff --git a/package/kernel/mac80211/patches/subsys/314-cfg80211-implement-APIs-for-dedicated-radar-detectio.patch b/package/kernel/mac80211/patches/subsys/314-cfg80211-implement-APIs-for-dedicated-radar-detectio.patch index 2038ee69db..fe3fc51b74 100644 --- a/package/kernel/mac80211/patches/subsys/314-cfg80211-implement-APIs-for-dedicated-radar-detectio.patch +++ b/package/kernel/mac80211/patches/subsys/314-cfg80211-implement-APIs-for-dedicated-radar-detectio.patch @@ -28,7 +28,7 @@ Signed-off-by: Johannes Berg --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h -@@ -4057,6 +4057,15 @@ struct mgmt_frame_regs { +@@ -4060,6 +4060,15 @@ struct mgmt_frame_regs { * @set_sar_specs: Update the SAR (TX power) settings. * * @color_change: Initiate a color change. @@ -44,7 +44,7 @@ Signed-off-by: Johannes Berg */ struct cfg80211_ops { int (*suspend)(struct wiphy *wiphy, struct cfg80211_wowlan *wow); -@@ -4387,6 +4396,8 @@ struct cfg80211_ops { +@@ -4390,6 +4399,8 @@ struct cfg80211_ops { int (*color_change)(struct wiphy *wiphy, struct net_device *dev, struct cfg80211_color_change_settings *params); @@ -53,7 +53,7 @@ Signed-off-by: Johannes Berg }; /* -@@ -7608,6 +7619,20 @@ void cfg80211_cac_event(struct net_devic +@@ -7611,6 +7622,20 @@ void cfg80211_cac_event(struct net_devic const struct cfg80211_chan_def *chandef, enum nl80211_radar_event event, gfp_t gfp); @@ -119,7 +119,7 @@ Signed-off-by: Johannes Berg NUM_NL80211_EXT_FEATURES, --- a/net/wireless/core.c +++ b/net/wireless/core.c -@@ -543,6 +543,7 @@ use_default_name: +@@ -545,6 +545,7 @@ use_default_name: INIT_WORK(&rdev->rfkill_block, cfg80211_rfkill_block_work); INIT_WORK(&rdev->conn_work, cfg80211_conn_work); INIT_WORK(&rdev->event_work, cfg80211_event_work); @@ -127,7 +127,7 @@ Signed-off-by: Johannes Berg init_waitqueue_head(&rdev->dev_wait); -@@ -1205,6 +1206,8 @@ void __cfg80211_leave(struct cfg80211_re +@@ -1207,6 +1208,8 @@ void __cfg80211_leave(struct cfg80211_re cfg80211_pmsr_wdev_down(wdev); @@ -286,7 +286,7 @@ Signed-off-by: Johannes Berg +} --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c -@@ -801,6 +801,7 @@ static const struct nla_policy nl80211_p +@@ -802,6 +802,7 @@ static const struct nla_policy nl80211_p [NL80211_ATTR_MBSSID_CONFIG] = NLA_POLICY_NESTED(nl80211_mbssid_config_policy), [NL80211_ATTR_MBSSID_ELEMS] = { .type = NLA_NESTED }, @@ -294,7 +294,7 @@ Signed-off-by: Johannes Berg }; /* policy for the key attributes */ -@@ -9287,12 +9288,6 @@ static int nl80211_start_radar_detection +@@ -9288,12 +9289,6 @@ static int nl80211_start_radar_detection if (err) return err; @@ -307,7 +307,7 @@ Signed-off-by: Johannes Berg err = cfg80211_chandef_dfs_required(wiphy, &chandef, wdev->iftype); if (err < 0) return err; -@@ -9303,6 +9298,16 @@ static int nl80211_start_radar_detection +@@ -9304,6 +9299,16 @@ static int nl80211_start_radar_detection if (!cfg80211_chandef_dfs_usable(wiphy, &chandef)) return -EINVAL; diff --git a/package/kernel/mac80211/patches/subsys/315-cfg80211-move-offchan_cac_event-to-a-dedicated-work.patch b/package/kernel/mac80211/patches/subsys/315-cfg80211-move-offchan_cac_event-to-a-dedicated-work.patch index b1a1d2c894..17c214c809 100644 --- a/package/kernel/mac80211/patches/subsys/315-cfg80211-move-offchan_cac_event-to-a-dedicated-work.patch +++ b/package/kernel/mac80211/patches/subsys/315-cfg80211-move-offchan_cac_event-to-a-dedicated-work.patch @@ -17,7 +17,7 @@ Signed-off-by: Johannes Berg --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h -@@ -7620,19 +7620,13 @@ void cfg80211_cac_event(struct net_devic +@@ -7623,19 +7623,13 @@ void cfg80211_cac_event(struct net_devic enum nl80211_radar_event event, gfp_t gfp); /** @@ -43,7 +43,7 @@ Signed-off-by: Johannes Berg * cfg80211_gtk_rekey_notify - notify userspace about driver rekeying --- a/net/wireless/core.c +++ b/net/wireless/core.c -@@ -543,7 +543,9 @@ use_default_name: +@@ -545,7 +545,9 @@ use_default_name: INIT_WORK(&rdev->rfkill_block, cfg80211_rfkill_block_work); INIT_WORK(&rdev->conn_work, cfg80211_conn_work); INIT_WORK(&rdev->event_work, cfg80211_event_work); @@ -54,7 +54,7 @@ Signed-off-by: Johannes Berg init_waitqueue_head(&rdev->dev_wait); -@@ -1053,11 +1055,13 @@ void wiphy_unregister(struct wiphy *wiph +@@ -1055,11 +1057,13 @@ void wiphy_unregister(struct wiphy *wiph cancel_work_sync(&rdev->conn_work); flush_work(&rdev->event_work); cancel_delayed_work_sync(&rdev->dfs_update_channels_wk); diff --git a/package/kernel/mac80211/patches/subsys/317-cfg80211-schedule-offchan_cac_abort_wk-in-cfg80211_r.patch b/package/kernel/mac80211/patches/subsys/317-cfg80211-schedule-offchan_cac_abort_wk-in-cfg80211_r.patch index df7afefb34..47a6368c7a 100644 --- a/package/kernel/mac80211/patches/subsys/317-cfg80211-schedule-offchan_cac_abort_wk-in-cfg80211_r.patch +++ b/package/kernel/mac80211/patches/subsys/317-cfg80211-schedule-offchan_cac_abort_wk-in-cfg80211_r.patch @@ -20,7 +20,7 @@ Signed-off-by: Johannes Berg --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h -@@ -7580,15 +7580,33 @@ void cfg80211_cqm_txe_notify(struct net_ +@@ -7583,15 +7583,33 @@ void cfg80211_cqm_txe_notify(struct net_ void cfg80211_cqm_beacon_loss_notify(struct net_device *dev, gfp_t gfp); /** diff --git a/package/kernel/mac80211/patches/subsys/318-cfg80211-allow-continuous-radar-monitoring-on-offcha.patch b/package/kernel/mac80211/patches/subsys/318-cfg80211-allow-continuous-radar-monitoring-on-offcha.patch index a1b6e3c80d..9a0cade81c 100644 --- a/package/kernel/mac80211/patches/subsys/318-cfg80211-allow-continuous-radar-monitoring-on-offcha.patch +++ b/package/kernel/mac80211/patches/subsys/318-cfg80211-allow-continuous-radar-monitoring-on-offcha.patch @@ -118,7 +118,7 @@ Signed-off-by: Johannes Berg NL80211_RADAR_CAC_ABORTED); --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c -@@ -9278,42 +9278,60 @@ static int nl80211_start_radar_detection +@@ -9279,42 +9279,60 @@ static int nl80211_start_radar_detection struct cfg80211_chan_def chandef; enum nl80211_dfs_regions dfs_region; unsigned int cac_time_ms; @@ -198,7 +198,7 @@ Signed-off-by: Johannes Berg cac_time_ms = cfg80211_chandef_dfs_cac_time(&rdev->wiphy, &chandef); if (WARN_ON(!cac_time_ms)) -@@ -9326,6 +9344,9 @@ static int nl80211_start_radar_detection +@@ -9327,6 +9345,9 @@ static int nl80211_start_radar_detection wdev->cac_start_time = jiffies; wdev->cac_time_ms = cac_time_ms; } @@ -208,7 +208,7 @@ Signed-off-by: Johannes Berg return err; } -@@ -15961,7 +15982,8 @@ static const struct genl_small_ops nl802 +@@ -15962,7 +15983,8 @@ static const struct genl_small_ops nl802 .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP, .doit = nl80211_start_radar_detection, .flags = GENL_UNS_ADMIN_PERM, diff --git a/package/kernel/mac80211/patches/subsys/319-mac80211-introduce-set_radar_offchan-callback.patch b/package/kernel/mac80211/patches/subsys/319-mac80211-introduce-set_radar_offchan-callback.patch index 6197abda56..e9e3d37037 100644 --- a/package/kernel/mac80211/patches/subsys/319-mac80211-introduce-set_radar_offchan-callback.patch +++ b/package/kernel/mac80211/patches/subsys/319-mac80211-introduce-set_radar_offchan-callback.patch @@ -40,7 +40,7 @@ Signed-off-by: Johannes Berg struct ieee80211_vif *vif, --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c -@@ -4341,6 +4341,18 @@ out: +@@ -4345,6 +4345,18 @@ out: return err; } @@ -59,7 +59,7 @@ Signed-off-by: Johannes Berg const struct cfg80211_ops mac80211_config_ops = { .add_virtual_intf = ieee80211_add_iface, .del_virtual_intf = ieee80211_del_iface, -@@ -4445,4 +4457,5 @@ const struct cfg80211_ops mac80211_confi +@@ -4449,4 +4461,5 @@ const struct cfg80211_ops mac80211_confi .reset_tid_config = ieee80211_reset_tid_config, .set_sar_specs = ieee80211_set_sar_specs, .color_change = ieee80211_color_change, diff --git a/package/kernel/mac80211/patches/subsys/320-cfg80211-rename-offchannel_chain-structs-to-backgrou.patch b/package/kernel/mac80211/patches/subsys/320-cfg80211-rename-offchannel_chain-structs-to-backgrou.patch index 608e72468d..d4d1894c18 100644 --- a/package/kernel/mac80211/patches/subsys/320-cfg80211-rename-offchannel_chain-structs-to-backgrou.patch +++ b/package/kernel/mac80211/patches/subsys/320-cfg80211-rename-offchannel_chain-structs-to-backgrou.patch @@ -21,7 +21,7 @@ Signed-off-by: Johannes Berg --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h -@@ -4058,14 +4058,14 @@ struct mgmt_frame_regs { +@@ -4061,14 +4061,14 @@ struct mgmt_frame_regs { * * @color_change: Initiate a color change. * @@ -39,7 +39,7 @@ Signed-off-by: Johannes Berg */ struct cfg80211_ops { int (*suspend)(struct wiphy *wiphy, struct cfg80211_wowlan *wow); -@@ -4396,8 +4396,8 @@ struct cfg80211_ops { +@@ -4399,8 +4399,8 @@ struct cfg80211_ops { int (*color_change)(struct wiphy *wiphy, struct net_device *dev, struct cfg80211_color_change_settings *params); @@ -50,7 +50,7 @@ Signed-off-by: Johannes Berg }; /* -@@ -7601,9 +7601,9 @@ cfg80211_radar_event(struct wiphy *wiphy +@@ -7604,9 +7604,9 @@ cfg80211_radar_event(struct wiphy *wiphy } static inline void @@ -63,7 +63,7 @@ Signed-off-by: Johannes Berg { __cfg80211_radar_event(wiphy, chandef, true, gfp); } -@@ -7638,13 +7638,13 @@ void cfg80211_cac_event(struct net_devic +@@ -7641,13 +7641,13 @@ void cfg80211_cac_event(struct net_devic enum nl80211_radar_event event, gfp_t gfp); /** @@ -156,7 +156,7 @@ Signed-off-by: Johannes Berg NUM_NL80211_EXT_FEATURES, --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c -@@ -4342,15 +4342,15 @@ out: +@@ -4346,15 +4346,15 @@ out: } static int @@ -176,7 +176,7 @@ Signed-off-by: Johannes Berg } const struct cfg80211_ops mac80211_config_ops = { -@@ -4457,5 +4457,5 @@ const struct cfg80211_ops mac80211_confi +@@ -4461,5 +4461,5 @@ const struct cfg80211_ops mac80211_confi .reset_tid_config = ieee80211_reset_tid_config, .set_sar_specs = ieee80211_set_sar_specs, .color_change = ieee80211_color_change, @@ -204,7 +204,7 @@ Signed-off-by: Johannes Berg bool cfg80211_any_wiphy_oper_chan(struct wiphy *wiphy, --- a/net/wireless/core.c +++ b/net/wireless/core.c -@@ -543,9 +543,10 @@ use_default_name: +@@ -545,9 +545,10 @@ use_default_name: INIT_WORK(&rdev->rfkill_block, cfg80211_rfkill_block_work); INIT_WORK(&rdev->conn_work, cfg80211_conn_work); INIT_WORK(&rdev->event_work, cfg80211_event_work); @@ -218,7 +218,7 @@ Signed-off-by: Johannes Berg init_waitqueue_head(&rdev->dev_wait); -@@ -1055,13 +1056,13 @@ void wiphy_unregister(struct wiphy *wiph +@@ -1057,13 +1058,13 @@ void wiphy_unregister(struct wiphy *wiph cancel_work_sync(&rdev->conn_work); flush_work(&rdev->event_work); cancel_delayed_work_sync(&rdev->dfs_update_channels_wk); @@ -234,7 +234,7 @@ Signed-off-by: Johannes Berg #ifdef CONFIG_PM if (rdev->wiphy.wowlan_config && rdev->ops->set_wakeup) -@@ -1210,7 +1211,7 @@ void __cfg80211_leave(struct cfg80211_re +@@ -1212,7 +1213,7 @@ void __cfg80211_leave(struct cfg80211_re cfg80211_pmsr_wdev_down(wdev); @@ -472,7 +472,7 @@ Signed-off-by: Johannes Berg } --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c -@@ -801,7 +801,7 @@ static const struct nla_policy nl80211_p +@@ -802,7 +802,7 @@ static const struct nla_policy nl80211_p [NL80211_ATTR_MBSSID_CONFIG] = NLA_POLICY_NESTED(nl80211_mbssid_config_policy), [NL80211_ATTR_MBSSID_ELEMS] = { .type = NLA_NESTED }, @@ -481,7 +481,7 @@ Signed-off-by: Johannes Berg }; /* policy for the key attributes */ -@@ -9306,9 +9306,9 @@ static int nl80211_start_radar_detection +@@ -9307,9 +9307,9 @@ static int nl80211_start_radar_detection goto unlock; } diff --git a/package/kernel/mac80211/patches/subsys/324-mac80211-MBSSID-beacon-handling-in-AP-mode.patch b/package/kernel/mac80211/patches/subsys/324-mac80211-MBSSID-beacon-handling-in-AP-mode.patch index a8fc02f92d..be3aa5a619 100644 --- a/package/kernel/mac80211/patches/subsys/324-mac80211-MBSSID-beacon-handling-in-AP-mode.patch +++ b/package/kernel/mac80211/patches/subsys/324-mac80211-MBSSID-beacon-handling-in-AP-mode.patch @@ -120,7 +120,7 @@ Signed-off-by: Johannes Berg /* turn off carrier for this interface and dependent VLANs */ list_for_each_entry(vlan, &sdata->u.ap.vlans, u.vlan.list) -@@ -3126,12 +3166,24 @@ cfg80211_beacon_dup(struct cfg80211_beac +@@ -3130,12 +3170,24 @@ cfg80211_beacon_dup(struct cfg80211_beac len = beacon->head_len + beacon->tail_len + beacon->beacon_ies_len + beacon->proberesp_ies_len + beacon->assocresp_ies_len + @@ -146,7 +146,7 @@ Signed-off-by: Johannes Berg pos = (u8 *)(new_beacon + 1); if (beacon->head_len) { new_beacon->head_len = beacon->head_len; -@@ -3169,6 +3221,10 @@ cfg80211_beacon_dup(struct cfg80211_beac +@@ -3173,6 +3225,10 @@ cfg80211_beacon_dup(struct cfg80211_beac memcpy(pos, beacon->probe_resp, beacon->probe_resp_len); pos += beacon->probe_resp_len; } @@ -157,7 +157,7 @@ Signed-off-by: Johannes Berg /* might copy -1, meaning no changes requested */ new_beacon->ftm_responder = beacon->ftm_responder; -@@ -3206,8 +3262,11 @@ static int ieee80211_set_after_csa_beaco +@@ -3210,8 +3266,11 @@ static int ieee80211_set_after_csa_beaco case NL80211_IFTYPE_AP: err = ieee80211_assign_beacon(sdata, sdata->u.ap.next_beacon, NULL, NULL); @@ -171,7 +171,7 @@ Signed-off-by: Johannes Berg if (err < 0) return err; -@@ -3362,8 +3421,12 @@ static int ieee80211_set_csa_beacon(stru +@@ -3366,8 +3425,12 @@ static int ieee80211_set_csa_beacon(stru if ((params->n_counter_offsets_beacon > IEEE80211_MAX_CNTDWN_COUNTERS_NUM) || (params->n_counter_offsets_presp > @@ -185,7 +185,7 @@ Signed-off-by: Johannes Berg csa.counter_offsets_beacon = params->counter_offsets_beacon; csa.counter_offsets_presp = params->counter_offsets_presp; -@@ -3373,7 +3436,9 @@ static int ieee80211_set_csa_beacon(stru +@@ -3377,7 +3440,9 @@ static int ieee80211_set_csa_beacon(stru err = ieee80211_assign_beacon(sdata, ¶ms->beacon_csa, &csa, NULL); if (err < 0) { @@ -195,7 +195,7 @@ Signed-off-by: Johannes Berg return err; } *changed |= err; -@@ -3460,8 +3525,11 @@ static int ieee80211_set_csa_beacon(stru +@@ -3464,8 +3529,11 @@ static int ieee80211_set_csa_beacon(stru static void ieee80211_color_change_abort(struct ieee80211_sub_if_data *sdata) { sdata->vif.color_change_active = false; @@ -209,7 +209,7 @@ Signed-off-by: Johannes Berg cfg80211_color_change_aborted_notify(sdata->dev); } -@@ -4199,8 +4267,11 @@ ieee80211_set_after_color_change_beacon( +@@ -4203,8 +4271,11 @@ ieee80211_set_after_color_change_beacon( ret = ieee80211_assign_beacon(sdata, sdata->u.ap.next_beacon, NULL, NULL); @@ -223,7 +223,7 @@ Signed-off-by: Johannes Berg if (ret < 0) return ret; -@@ -4243,7 +4314,11 @@ ieee80211_set_color_change_beacon(struct +@@ -4247,7 +4318,11 @@ ieee80211_set_color_change_beacon(struct err = ieee80211_assign_beacon(sdata, ¶ms->beacon_color_change, NULL, &color_change); if (err < 0) { @@ -269,7 +269,7 @@ Signed-off-by: Johannes Berg IEEE80211_TX_STATUS_MSG = 2, --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c -@@ -5041,6 +5041,19 @@ ieee80211_beacon_get_finish(struct ieee8 +@@ -5042,6 +5042,19 @@ ieee80211_beacon_get_finish(struct ieee8 IEEE80211_TX_CTL_FIRST_FRAGMENT; } @@ -289,7 +289,7 @@ Signed-off-by: Johannes Berg static struct sk_buff * ieee80211_beacon_get_ap(struct ieee80211_hw *hw, struct ieee80211_vif *vif, -@@ -5054,6 +5067,7 @@ ieee80211_beacon_get_ap(struct ieee80211 +@@ -5055,6 +5068,7 @@ ieee80211_beacon_get_ap(struct ieee80211 struct ieee80211_if_ap *ap = &sdata->u.ap; struct sk_buff *skb = NULL; u16 csa_off_base = 0; @@ -297,7 +297,7 @@ Signed-off-by: Johannes Berg if (beacon->cntdwn_counter_offsets[0]) { if (!is_template) -@@ -5063,11 +5077,12 @@ ieee80211_beacon_get_ap(struct ieee80211 +@@ -5064,11 +5078,12 @@ ieee80211_beacon_get_ap(struct ieee80211 } /* headroom, head length, @@ -312,7 +312,7 @@ Signed-off-by: Johannes Berg if (!skb) return NULL; -@@ -5081,6 +5096,11 @@ ieee80211_beacon_get_ap(struct ieee80211 +@@ -5082,6 +5097,11 @@ ieee80211_beacon_get_ap(struct ieee80211 offs->tim_length = skb->len - beacon->head_len; offs->cntdwn_counter_offs[0] = beacon->cntdwn_counter_offsets[0]; diff --git a/package/kernel/mac80211/patches/subsys/325-mac80211-MBSSID-channel-switch.patch b/package/kernel/mac80211/patches/subsys/325-mac80211-MBSSID-channel-switch.patch index 38b0de180e..1904f3d4e6 100644 --- a/package/kernel/mac80211/patches/subsys/325-mac80211-MBSSID-channel-switch.patch +++ b/package/kernel/mac80211/patches/subsys/325-mac80211-MBSSID-channel-switch.patch @@ -16,7 +16,7 @@ Signed-off-by: Johannes Berg --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c -@@ -3247,9 +3247,31 @@ cfg80211_beacon_dup(struct cfg80211_beac +@@ -3251,9 +3251,31 @@ cfg80211_beacon_dup(struct cfg80211_beac void ieee80211_csa_finish(struct ieee80211_vif *vif) { struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); diff --git a/package/kernel/mac80211/patches/subsys/330-mac80211-switch-airtime-fairness-back-to-deficit-rou.patch b/package/kernel/mac80211/patches/subsys/330-mac80211-switch-airtime-fairness-back-to-deficit-rou.patch index e59036f5a2..3b39701d2d 100644 --- a/package/kernel/mac80211/patches/subsys/330-mac80211-switch-airtime-fairness-back-to-deficit-rou.patch +++ b/package/kernel/mac80211/patches/subsys/330-mac80211-switch-airtime-fairness-back-to-deficit-rou.patch @@ -627,7 +627,7 @@ Signed-off-by: Felix Fietkau } for (i = 0; i < IEEE80211_NUM_TIDS; i++) -@@ -1889,59 +1893,24 @@ void ieee80211_sta_set_buffered(struct i +@@ -1890,59 +1894,24 @@ void ieee80211_sta_set_buffered(struct i } EXPORT_SYMBOL(ieee80211_sta_set_buffered); @@ -699,7 +699,7 @@ Signed-off-by: Felix Fietkau } EXPORT_SYMBOL(ieee80211_sta_register_airtime); -@@ -2385,7 +2354,7 @@ void sta_set_sinfo(struct sta_info *sta, +@@ -2386,7 +2355,7 @@ void sta_set_sinfo(struct sta_info *sta, } if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_AIRTIME_WEIGHT))) { @@ -791,7 +791,7 @@ Signed-off-by: Felix Fietkau #include #include #include -@@ -1480,7 +1479,7 @@ void ieee80211_txq_init(struct ieee80211 +@@ -1481,7 +1480,7 @@ void ieee80211_txq_init(struct ieee80211 codel_vars_init(&txqi->def_cvars); codel_stats_init(&txqi->cstats); __skb_queue_head_init(&txqi->frags); @@ -800,7 +800,7 @@ Signed-off-by: Felix Fietkau txqi->txq.vif = &sdata->vif; -@@ -1524,7 +1523,9 @@ void ieee80211_txq_purge(struct ieee8021 +@@ -1525,7 +1524,9 @@ void ieee80211_txq_purge(struct ieee8021 ieee80211_purge_tx_queue(&local->hw, &txqi->frags); spin_unlock_bh(&fq->lock); @@ -811,7 +811,7 @@ Signed-off-by: Felix Fietkau } void ieee80211_txq_set_params(struct ieee80211_local *local) -@@ -3819,259 +3820,102 @@ EXPORT_SYMBOL(ieee80211_tx_dequeue); +@@ -3820,259 +3821,102 @@ 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); @@ -1133,7 +1133,7 @@ Signed-off-by: Felix Fietkau struct ieee80211_local *local = hw_to_local(hw); if (!wiphy_ext_feature_isset(local->hw.wiphy, NL80211_EXT_FEATURE_AQL)) -@@ -4086,12 +3930,15 @@ bool ieee80211_txq_airtime_check(struct +@@ -4087,12 +3931,15 @@ bool ieee80211_txq_airtime_check(struct if (unlikely(txq->tid == IEEE80211_NUM_TIDS)) return true; @@ -1151,7 +1151,7 @@ Signed-off-by: Felix Fietkau return true; return false; -@@ -4101,59 +3948,60 @@ EXPORT_SYMBOL(ieee80211_txq_airtime_chec +@@ -4102,59 +3949,60 @@ EXPORT_SYMBOL(ieee80211_txq_airtime_chec bool ieee80211_txq_may_transmit(struct ieee80211_hw *hw, struct ieee80211_txq *txq) { diff --git a/package/kernel/mac80211/patches/subsys/331-mac80211-make-sta-airtime-deficit-field-s32-instead-.patch b/package/kernel/mac80211/patches/subsys/331-mac80211-make-sta-airtime-deficit-field-s32-instead-.patch index c006d3762a..1937060c77 100644 --- a/package/kernel/mac80211/patches/subsys/331-mac80211-make-sta-airtime-deficit-field-s32-instead-.patch +++ b/package/kernel/mac80211/patches/subsys/331-mac80211-make-sta-airtime-deficit-field-s32-instead-.patch @@ -41,7 +41,7 @@ Signed-off-by: Felix Fietkau u32 aql_limit_high; --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c -@@ -3847,7 +3847,7 @@ struct ieee80211_txq *ieee80211_next_txq +@@ -3848,7 +3848,7 @@ struct ieee80211_txq *ieee80211_next_txq struct sta_info *sta = container_of(txqi->txq.sta, struct sta_info, sta); bool aql_check = ieee80211_txq_airtime_check(hw, &txqi->txq); diff --git a/package/kernel/mac80211/patches/subsys/332-mac80211-consider-aql_tx_pending-when-checking-airti.patch b/package/kernel/mac80211/patches/subsys/332-mac80211-consider-aql_tx_pending-when-checking-airti.patch index c214294603..e13f399f39 100644 --- a/package/kernel/mac80211/patches/subsys/332-mac80211-consider-aql_tx_pending-when-checking-airti.patch +++ b/package/kernel/mac80211/patches/subsys/332-mac80211-consider-aql_tx_pending-when-checking-airti.patch @@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c -@@ -3817,6 +3817,13 @@ out: +@@ -3818,6 +3818,13 @@ out: } EXPORT_SYMBOL(ieee80211_tx_dequeue); @@ -28,7 +28,7 @@ Signed-off-by: Felix Fietkau struct ieee80211_txq *ieee80211_next_txq(struct ieee80211_hw *hw, u8 ac) { struct ieee80211_local *local = hw_to_local(hw); -@@ -3847,7 +3854,7 @@ struct ieee80211_txq *ieee80211_next_txq +@@ -3848,7 +3855,7 @@ struct ieee80211_txq *ieee80211_next_txq struct sta_info *sta = container_of(txqi->txq.sta, struct sta_info, sta); bool aql_check = ieee80211_txq_airtime_check(hw, &txqi->txq); @@ -37,7 +37,7 @@ Signed-off-by: Felix Fietkau if (aql_check) found_eligible_txq = true; -@@ -3972,7 +3979,7 @@ bool ieee80211_txq_may_transmit(struct i +@@ -3973,7 +3980,7 @@ bool ieee80211_txq_may_transmit(struct i continue; } sta = container_of(iter->txq.sta, struct sta_info, sta); diff --git a/package/kernel/mac80211/patches/subsys/333-mac80211-keep-recently-active-tx-queues-in-schedulin.patch b/package/kernel/mac80211/patches/subsys/333-mac80211-keep-recently-active-tx-queues-in-schedulin.patch index 317e4f0653..9ca3940276 100644 --- a/package/kernel/mac80211/patches/subsys/333-mac80211-keep-recently-active-tx-queues-in-schedulin.patch +++ b/package/kernel/mac80211/patches/subsys/333-mac80211-keep-recently-active-tx-queues-in-schedulin.patch @@ -37,7 +37,7 @@ Signed-off-by: Felix Fietkau u32 aql_limit_low; --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c -@@ -3824,6 +3824,36 @@ static inline s32 ieee80211_sta_deficit( +@@ -3825,6 +3825,36 @@ static inline s32 ieee80211_sta_deficit( return air_info->deficit - atomic_read(&air_info->aql_tx_pending); } @@ -74,7 +74,7 @@ Signed-off-by: Felix Fietkau struct ieee80211_txq *ieee80211_next_txq(struct ieee80211_hw *hw, u8 ac) { struct ieee80211_local *local = hw_to_local(hw); -@@ -3870,7 +3900,6 @@ struct ieee80211_txq *ieee80211_next_txq +@@ -3871,7 +3901,6 @@ struct ieee80211_txq *ieee80211_next_txq } } @@ -82,7 +82,7 @@ Signed-off-by: Felix Fietkau if (txqi->schedule_round == local->schedule_round[ac]) goto out; -@@ -3890,12 +3919,13 @@ void __ieee80211_schedule_txq(struct iee +@@ -3891,12 +3920,13 @@ void __ieee80211_schedule_txq(struct iee { struct ieee80211_local *local = hw_to_local(hw); struct txq_info *txqi = to_txq_info(txq); @@ -98,7 +98,7 @@ Signed-off-by: Felix Fietkau /* 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 -@@ -3903,7 +3933,7 @@ void __ieee80211_schedule_txq(struct iee +@@ -3904,7 +3934,7 @@ void __ieee80211_schedule_txq(struct iee * get immediately moved to the back of the list on the next * call to ieee80211_next_txq(). */ @@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau wiphy_ext_feature_isset(local->hw.wiphy, NL80211_EXT_FEATURE_AIRTIME_FAIRNESS)) list_add(&txqi->schedule_order, -@@ -3911,6 +3941,8 @@ void __ieee80211_schedule_txq(struct iee +@@ -3912,6 +3942,8 @@ void __ieee80211_schedule_txq(struct iee else list_add_tail(&txqi->schedule_order, &local->active_txqs[txq->ac]); diff --git a/package/kernel/mac80211/patches/subsys/334-mac80211-add-a-per-PHY-AQL-limit-to-improve-fairness.patch b/package/kernel/mac80211/patches/subsys/334-mac80211-add-a-per-PHY-AQL-limit-to-improve-fairness.patch index fb6fd6eac6..10a520a2a5 100644 --- a/package/kernel/mac80211/patches/subsys/334-mac80211-add-a-per-PHY-AQL-limit-to-improve-fairness.patch +++ b/package/kernel/mac80211/patches/subsys/334-mac80211-add-a-per-PHY-AQL-limit-to-improve-fairness.patch @@ -35,7 +35,7 @@ Signed-off-by: Felix Fietkau local->airtime_flags = AIRTIME_USE_TX | AIRTIME_USE_RX; --- a/net/mac80211/sta_info.c +++ b/net/mac80211/sta_info.c -@@ -1929,6 +1929,7 @@ void ieee80211_sta_update_pending_airtim +@@ -1930,6 +1930,7 @@ void ieee80211_sta_update_pending_airtim &sta->airtime[ac].aql_tx_pending); atomic_add(tx_airtime, &local->aql_total_pending_airtime); @@ -43,7 +43,7 @@ Signed-off-by: Felix Fietkau return; } -@@ -1940,14 +1941,17 @@ void ieee80211_sta_update_pending_airtim +@@ -1941,14 +1942,17 @@ void ieee80211_sta_update_pending_airtim tx_pending, 0); } @@ -66,7 +66,7 @@ Signed-off-by: Felix Fietkau int sta_info_move_state(struct sta_info *sta, --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c -@@ -3863,6 +3863,9 @@ struct ieee80211_txq *ieee80211_next_txq +@@ -3864,6 +3864,9 @@ struct ieee80211_txq *ieee80211_next_txq spin_lock_bh(&local->active_txq_lock[ac]); @@ -76,7 +76,7 @@ Signed-off-by: Felix Fietkau begin: txqi = list_first_entry_or_null(&local->active_txqs[ac], struct txq_info, -@@ -3984,6 +3987,25 @@ bool ieee80211_txq_airtime_check(struct +@@ -3985,6 +3988,25 @@ bool ieee80211_txq_airtime_check(struct } EXPORT_SYMBOL(ieee80211_txq_airtime_check); @@ -102,7 +102,7 @@ Signed-off-by: Felix Fietkau bool ieee80211_txq_may_transmit(struct ieee80211_hw *hw, struct ieee80211_txq *txq) { -@@ -4000,6 +4022,9 @@ bool ieee80211_txq_may_transmit(struct i +@@ -4001,6 +4023,9 @@ bool ieee80211_txq_may_transmit(struct i if (list_empty(&txqi->schedule_order)) goto out; @@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau list_for_each_entry_safe(iter, tmp, &local->active_txqs[ac], schedule_order) { if (iter == txqi) -@@ -4039,7 +4064,15 @@ void ieee80211_txq_schedule_start(struct +@@ -4040,7 +4065,15 @@ void ieee80211_txq_schedule_start(struct struct ieee80211_local *local = hw_to_local(hw); spin_lock_bh(&local->active_txq_lock[ac]); diff --git a/package/kernel/mac80211/patches/subsys/336-mac80211-only-accumulate-airtime-deficit-for-active-.patch b/package/kernel/mac80211/patches/subsys/336-mac80211-only-accumulate-airtime-deficit-for-active-.patch index 35f07c1a97..828ab09f89 100644 --- a/package/kernel/mac80211/patches/subsys/336-mac80211-only-accumulate-airtime-deficit-for-active-.patch +++ b/package/kernel/mac80211/patches/subsys/336-mac80211-only-accumulate-airtime-deficit-for-active-.patch @@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau --- a/net/mac80211/sta_info.c +++ b/net/mac80211/sta_info.c -@@ -1900,6 +1900,7 @@ void ieee80211_sta_register_airtime(stru +@@ -1901,6 +1901,7 @@ void ieee80211_sta_register_airtime(stru struct ieee80211_local *local = sta->sdata->local; u8 ac = ieee80211_ac_from_tid(tid); u32 airtime = 0; @@ -21,7 +21,7 @@ Signed-off-by: Felix Fietkau if (sta->local->airtime_flags & AIRTIME_USE_TX) airtime += tx_airtime; -@@ -1909,7 +1910,11 @@ void ieee80211_sta_register_airtime(stru +@@ -1910,7 +1911,11 @@ void ieee80211_sta_register_airtime(stru spin_lock_bh(&local->active_txq_lock[ac]); sta->airtime[ac].tx_airtime += tx_airtime; sta->airtime[ac].rx_airtime += rx_airtime; diff --git a/package/kernel/mac80211/patches/subsys/337-mac80211-increase-quantum-for-airtime-scheduler.patch b/package/kernel/mac80211/patches/subsys/337-mac80211-increase-quantum-for-airtime-scheduler.patch index 74e857679e..84b8821e52 100644 --- a/package/kernel/mac80211/patches/subsys/337-mac80211-increase-quantum-for-airtime-scheduler.patch +++ b/package/kernel/mac80211/patches/subsys/337-mac80211-increase-quantum-for-airtime-scheduler.patch @@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c -@@ -3894,7 +3894,7 @@ struct ieee80211_txq *ieee80211_next_txq +@@ -3895,7 +3895,7 @@ struct ieee80211_txq *ieee80211_next_txq if (deficit < 0) sta->airtime[txqi->txq.ac].deficit += @@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau if (deficit < 0 || !aql_check) { list_move_tail(&txqi->schedule_order, -@@ -4037,7 +4037,8 @@ bool ieee80211_txq_may_transmit(struct i +@@ -4038,7 +4038,8 @@ bool ieee80211_txq_may_transmit(struct i } sta = container_of(iter->txq.sta, struct sta_info, sta); if (ieee80211_sta_deficit(sta, ac) < 0) @@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau list_move_tail(&iter->schedule_order, &local->active_txqs[ac]); } -@@ -4045,7 +4046,7 @@ bool ieee80211_txq_may_transmit(struct i +@@ -4046,7 +4047,7 @@ bool ieee80211_txq_may_transmit(struct i if (sta->airtime[ac].deficit >= 0) goto out; diff --git a/package/kernel/mac80211/patches/subsys/339-mac80211-exclude-multicast-packets-from-AQL-pending-.patch b/package/kernel/mac80211/patches/subsys/339-mac80211-exclude-multicast-packets-from-AQL-pending-.patch index 43c3e75d65..24bb16b593 100644 --- a/package/kernel/mac80211/patches/subsys/339-mac80211-exclude-multicast-packets-from-AQL-pending-.patch +++ b/package/kernel/mac80211/patches/subsys/339-mac80211-exclude-multicast-packets-from-AQL-pending-.patch @@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c -@@ -3792,7 +3792,7 @@ begin: +@@ -3793,7 +3793,7 @@ begin: encap_out: IEEE80211_SKB_CB(skb)->control.vif = vif; diff --git a/package/kernel/mac80211/patches/subsys/343-wifi-mac80211-fix-decap-offload-for-stations-on-AP_V.patch b/package/kernel/mac80211/patches/subsys/343-wifi-mac80211-fix-decap-offload-for-stations-on-AP_V.patch index 0246785475..3636bca8c7 100644 --- a/package/kernel/mac80211/patches/subsys/343-wifi-mac80211-fix-decap-offload-for-stations-on-AP_V.patch +++ b/package/kernel/mac80211/patches/subsys/343-wifi-mac80211-fix-decap-offload-for-stations-on-AP_V.patch @@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c -@@ -4267,6 +4267,7 @@ void ieee80211_check_fast_rx(struct sta_ +@@ -4271,6 +4271,7 @@ void ieee80211_check_fast_rx(struct sta_ .vif_type = sdata->vif.type, .control_port_protocol = sdata->control_port_protocol, }, *old, *new = NULL; @@ -21,7 +21,7 @@ Signed-off-by: Felix Fietkau bool set_offload = false; bool assign = false; bool offload; -@@ -4382,10 +4383,10 @@ void ieee80211_check_fast_rx(struct sta_ +@@ -4386,10 +4387,10 @@ void ieee80211_check_fast_rx(struct sta_ if (assign) new = kmemdup(&fastrx, sizeof(fastrx), GFP_KERNEL); diff --git a/package/kernel/mac80211/patches/subsys/345-wifi-mac80211-do-not-drop-packets-smaller-than-the-L.patch b/package/kernel/mac80211/patches/subsys/345-wifi-mac80211-do-not-drop-packets-smaller-than-the-L.patch index 23047f68c9..51fe0898d6 100644 --- a/package/kernel/mac80211/patches/subsys/345-wifi-mac80211-do-not-drop-packets-smaller-than-the-L.patch +++ b/package/kernel/mac80211/patches/subsys/345-wifi-mac80211-do-not-drop-packets-smaller-than-the-L.patch @@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c -@@ -4603,7 +4603,7 @@ static bool ieee80211_invoke_fast_rx(str +@@ -4607,7 +4607,7 @@ static bool ieee80211_invoke_fast_rx(str if (!(status->rx_flags & IEEE80211_RX_AMSDU)) { if (!pskb_may_pull(skb, snap_offs + sizeof(*payload))) diff --git a/package/kernel/mac80211/patches/subsys/347-wifi-ieee80211-correctly-mark-FTM-frames-non-buffera.patch b/package/kernel/mac80211/patches/subsys/347-wifi-ieee80211-correctly-mark-FTM-frames-non-buffera.patch index ac707de53e..e8e9badf8c 100644 --- a/package/kernel/mac80211/patches/subsys/347-wifi-ieee80211-correctly-mark-FTM-frames-non-buffera.patch +++ b/package/kernel/mac80211/patches/subsys/347-wifi-ieee80211-correctly-mark-FTM-frames-non-buffera.patch @@ -15,7 +15,7 @@ Reviewed-by: Peer, Ilan --- a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c -@@ -551,8 +551,9 @@ static void iwl_mvm_skb_prepare_status(s +@@ -555,8 +555,9 @@ static void iwl_mvm_skb_prepare_status(s static int iwl_mvm_get_ctrl_vif_queue(struct iwl_mvm *mvm, struct ieee80211_tx_info *info, @@ -26,7 +26,7 @@ Reviewed-by: Peer, Ilan struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(info->control.vif); __le16 fc = hdr->frame_control; -@@ -571,7 +572,7 @@ static int iwl_mvm_get_ctrl_vif_queue(st +@@ -575,7 +576,7 @@ static int iwl_mvm_get_ctrl_vif_queue(st * reason 7 ("Class 3 frame received from nonassociated STA"). */ if (ieee80211_is_mgmt(fc) && @@ -35,7 +35,7 @@ Reviewed-by: Peer, Ilan ieee80211_is_deauth(fc) || ieee80211_is_disassoc(fc))) return mvm->probe_queue; -@@ -689,7 +690,7 @@ int iwl_mvm_tx_skb_non_sta(struct iwl_mv +@@ -693,7 +694,7 @@ int iwl_mvm_tx_skb_non_sta(struct iwl_mv else sta_id = mvmvif->mcast_sta.sta_id; @@ -123,7 +123,7 @@ Reviewed-by: Peer, Ilan info->flags |= IEEE80211_TX_CTL_NO_PS_BUFFER; return TX_CONTINUE; } -@@ -1282,7 +1282,7 @@ static struct txq_info *ieee80211_get_tx +@@ -1283,7 +1283,7 @@ static struct txq_info *ieee80211_get_tx if (!(info->flags & IEEE80211_TX_CTL_HW_80211_ENCAP) && unlikely(!ieee80211_is_data_present(hdr->frame_control))) { if ((!ieee80211_is_mgmt(hdr->frame_control) || diff --git a/package/kernel/mac80211/patches/subsys/348-wifi-mac80211-flush-queues-on-STA-removal.patch b/package/kernel/mac80211/patches/subsys/348-wifi-mac80211-flush-queues-on-STA-removal.patch index 3e148a9d7e..a5198c34fe 100644 --- a/package/kernel/mac80211/patches/subsys/348-wifi-mac80211-flush-queues-on-STA-removal.patch +++ b/package/kernel/mac80211/patches/subsys/348-wifi-mac80211-flush-queues-on-STA-removal.patch @@ -19,7 +19,7 @@ Reviewed-by: Greenman, Gregory --- a/net/mac80211/sta_info.c +++ b/net/mac80211/sta_info.c -@@ -1070,6 +1070,14 @@ static void __sta_info_destroy_part2(str +@@ -1071,6 +1071,14 @@ static void __sta_info_destroy_part2(str WARN_ON_ONCE(ret); } diff --git a/package/kernel/mac80211/patches/subsys/349-wifi-iwlwifi-mvm-support-flush-on-AP-interfaces.patch b/package/kernel/mac80211/patches/subsys/349-wifi-iwlwifi-mvm-support-flush-on-AP-interfaces.patch index 0b070b144e..446c5b8ee9 100644 --- a/package/kernel/mac80211/patches/subsys/349-wifi-iwlwifi-mvm-support-flush-on-AP-interfaces.patch +++ b/package/kernel/mac80211/patches/subsys/349-wifi-iwlwifi-mvm-support-flush-on-AP-interfaces.patch @@ -12,7 +12,7 @@ Reviewed-by: Greenman, Gregory --- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c -@@ -4817,9 +4817,6 @@ static void iwl_mvm_mac_flush(struct iee +@@ -4820,9 +4820,6 @@ static void iwl_mvm_mac_flush(struct iee return; } @@ -22,7 +22,7 @@ Reviewed-by: Greenman, Gregory /* Make sure we're done with the deferred traffic before flushing */ flush_work(&mvm->add_stream_wk); -@@ -4837,9 +4834,6 @@ static void iwl_mvm_mac_flush(struct iee +@@ -4840,9 +4837,6 @@ static void iwl_mvm_mac_flush(struct iee if (mvmsta->vif != vif) continue; diff --git a/package/kernel/mac80211/patches/subsys/350-wifi-mac80211-add-flush_sta-method.patch b/package/kernel/mac80211/patches/subsys/350-wifi-mac80211-add-flush_sta-method.patch index ae2ef8352e..1ab844363c 100644 --- a/package/kernel/mac80211/patches/subsys/350-wifi-mac80211-add-flush_sta-method.patch +++ b/package/kernel/mac80211/patches/subsys/350-wifi-mac80211-add-flush_sta-method.patch @@ -58,7 +58,7 @@ Reviewed-by: Greenman, Gregory struct ieee80211_channel_switch *ch_switch) --- a/net/mac80211/sta_info.c +++ b/net/mac80211/sta_info.c -@@ -1075,8 +1075,12 @@ static void __sta_info_destroy_part2(str +@@ -1076,8 +1076,12 @@ static void __sta_info_destroy_part2(str * frames sitting on hardware queues might be sent out without * any encryption at all. */ diff --git a/package/kernel/mac80211/patches/subsys/351-wifi-iwlwifi-mvm-support-new-flush_sta-method.patch b/package/kernel/mac80211/patches/subsys/351-wifi-iwlwifi-mvm-support-new-flush_sta-method.patch index 31f60ce024..a2b1819415 100644 --- a/package/kernel/mac80211/patches/subsys/351-wifi-iwlwifi-mvm-support-new-flush_sta-method.patch +++ b/package/kernel/mac80211/patches/subsys/351-wifi-iwlwifi-mvm-support-new-flush_sta-method.patch @@ -11,7 +11,7 @@ Reviewed-by: Greenman, Gregory --- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c -@@ -4853,6 +4853,31 @@ static void iwl_mvm_mac_flush(struct iee +@@ -4856,6 +4856,31 @@ static void iwl_mvm_mac_flush(struct iee iwl_trans_wait_tx_queues_empty(mvm->trans, msk); } @@ -43,7 +43,7 @@ Reviewed-by: Greenman, Gregory static int iwl_mvm_mac_get_survey(struct ieee80211_hw *hw, int idx, struct survey_info *survey) { -@@ -5366,6 +5391,7 @@ const struct ieee80211_ops iwl_mvm_hw_op +@@ -5369,6 +5394,7 @@ const struct ieee80211_ops iwl_mvm_hw_op .mgd_prepare_tx = iwl_mvm_mac_mgd_prepare_tx, .mgd_protect_tdls_discover = iwl_mvm_mac_mgd_protect_tdls_discover, .flush = iwl_mvm_mac_flush, diff --git a/package/kernel/mac80211/patches/subsys/352-wifi-mac80211-fix-invalid-drv_sta_pre_rcu_remove-cal.patch b/package/kernel/mac80211/patches/subsys/352-wifi-mac80211-fix-invalid-drv_sta_pre_rcu_remove-cal.patch deleted file mode 100644 index 01a6c51065..0000000000 --- a/package/kernel/mac80211/patches/subsys/352-wifi-mac80211-fix-invalid-drv_sta_pre_rcu_remove-cal.patch +++ /dev/null @@ -1,25 +0,0 @@ -From: Felix Fietkau -Date: Fri, 24 Mar 2023 13:04:17 +0100 -Subject: [PATCH] wifi: mac80211: fix invalid drv_sta_pre_rcu_remove calls for - non-uploaded sta - -Avoid potential data corruption issues caused by uninitialized driver -private data structures. - -Reported-by: Brian Coverstone -Fixes: 6a9d1b91f34d ("mac80211: add pre-RCU-sync sta removal driver operation") -Signed-off-by: Felix Fietkau ---- - ---- a/net/mac80211/sta_info.c -+++ b/net/mac80211/sta_info.c -@@ -1041,7 +1041,8 @@ static int __must_check __sta_info_destr - list_del_rcu(&sta->list); - sta->removed = true; - -- drv_sta_pre_rcu_remove(local, sta->sdata, sta); -+ if (sta->uploaded) -+ drv_sta_pre_rcu_remove(local, sta->sdata, sta); - - if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN && - rcu_access_pointer(sdata->u.vlan.sta) == sta) diff --git a/package/kernel/mac80211/patches/subsys/400-allow-ibss-mixed.patch b/package/kernel/mac80211/patches/subsys/400-allow-ibss-mixed.patch index f2ed528d23..9518cc50a3 100644 --- a/package/kernel/mac80211/patches/subsys/400-allow-ibss-mixed.patch +++ b/package/kernel/mac80211/patches/subsys/400-allow-ibss-mixed.patch @@ -5,7 +5,7 @@ and we should ignore this. --- a/net/wireless/core.c +++ b/net/wireless/core.c -@@ -625,21 +625,6 @@ static int wiphy_verify_combinations(str +@@ -627,21 +627,6 @@ static int wiphy_verify_combinations(str c->limits[j].max > 1)) return -EINVAL; diff --git a/package/kernel/mac80211/patches/subsys/500-mac80211_configure_antenna_gain.patch b/package/kernel/mac80211/patches/subsys/500-mac80211_configure_antenna_gain.patch index 962ae93cc7..0b28fb973d 100644 --- a/package/kernel/mac80211/patches/subsys/500-mac80211_configure_antenna_gain.patch +++ b/package/kernel/mac80211/patches/subsys/500-mac80211_configure_antenna_gain.patch @@ -1,6 +1,6 @@ --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h -@@ -3869,6 +3869,7 @@ struct mgmt_frame_regs { +@@ -3872,6 +3872,7 @@ struct mgmt_frame_regs { * (as advertised by the nl80211 feature flag.) * @get_tx_power: store the current TX power into the dbm variable; * return 0 if successful @@ -8,7 +8,7 @@ * * @rfkill_poll: polls the hw rfkill line, use cfg80211 reporting * functions to adjust rfkill hw state -@@ -4202,6 +4203,7 @@ struct cfg80211_ops { +@@ -4205,6 +4206,7 @@ struct cfg80211_ops { enum nl80211_tx_power_setting type, int mbm); int (*get_tx_power)(struct wiphy *wiphy, struct wireless_dev *wdev, int *dbm); @@ -57,7 +57,7 @@ __NL80211_ATTR_AFTER_LAST, --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c -@@ -2812,6 +2812,19 @@ static int ieee80211_get_tx_power(struct +@@ -2816,6 +2816,19 @@ static int ieee80211_get_tx_power(struct return 0; } @@ -77,7 +77,7 @@ static void ieee80211_rfkill_poll(struct wiphy *wiphy) { struct ieee80211_local *local = wiphy_priv(wiphy); -@@ -4513,6 +4526,7 @@ const struct cfg80211_ops mac80211_confi +@@ -4517,6 +4530,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, @@ -129,7 +129,7 @@ local->hw.max_mtu = IEEE80211_MAX_DATA_LEN; --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c -@@ -802,6 +802,7 @@ static const struct nla_policy nl80211_p +@@ -803,6 +803,7 @@ static const struct nla_policy nl80211_p NLA_POLICY_NESTED(nl80211_mbssid_config_policy), [NL80211_ATTR_MBSSID_ELEMS] = { .type = NLA_NESTED }, [NL80211_ATTR_RADAR_BACKGROUND] = { .type = NLA_FLAG }, @@ -137,7 +137,7 @@ }; /* policy for the key attributes */ -@@ -3391,6 +3392,22 @@ static int nl80211_set_wiphy(struct sk_b +@@ -3392,6 +3393,22 @@ static int nl80211_set_wiphy(struct sk_b if (result) goto out; } -- 2.30.2