mac80211: Update to 5.15.153-1
authorHauke Mehrtens <hauke@hauke-m.de>
Tue, 2 Apr 2024 23:39:35 +0000 (01:39 +0200)
committerHauke Mehrtens <hauke@hauke-m.de>
Sun, 21 Apr 2024 15:29:57 +0000 (17:29 +0200)
Update mac80211 to version based on kernel 5.15.153.
This contains multiple bugfixes.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
29 files changed:
package/kernel/mac80211/Makefile
package/kernel/mac80211/patches/ath10k/974-ath10k_add-LED-and-GPIO-controlling-support-for-various-chipsets.patch
package/kernel/mac80211/patches/brcm/810-b43-gpio-mask-module-option.patch
package/kernel/mac80211/patches/brcm/812-b43-add-antenna-control.patch
package/kernel/mac80211/patches/brcm/814-b43-only-use-gpio-0-1-for-led.patch
package/kernel/mac80211/patches/build/060-no_local_ssb_bcma.patch
package/kernel/mac80211/patches/rt2x00/002-rt2x00-add-throughput-LED-trigger.patch
package/kernel/mac80211/patches/rt2x00/602-rt2x00-introduce-rt2x00eeprom.patch
package/kernel/mac80211/patches/rt2x00/606-rt2x00-allow_disabling_bands_through_platform_data.patch
package/kernel/mac80211/patches/rt2x00/607-rt2x00-add_platform_data_mac_addr.patch
package/kernel/mac80211/patches/rt2x00/608-rt2x00-allow_disabling_bands_through_dts.patch
package/kernel/mac80211/patches/rt2x00/611-rt2x00-add-AP+STA-support.patch
package/kernel/mac80211/patches/subsys/306-mac80211-use-coarse-boottime-for-airtime-fairness-co.patch
package/kernel/mac80211/patches/subsys/312-mac80211-split-beacon-retrieval-functions.patch
package/kernel/mac80211/patches/subsys/313-nl80211-MBSSID-and-EMA-support-in-AP-mode.patch
package/kernel/mac80211/patches/subsys/314-cfg80211-implement-APIs-for-dedicated-radar-detectio.patch
package/kernel/mac80211/patches/subsys/318-cfg80211-allow-continuous-radar-monitoring-on-offcha.patch
package/kernel/mac80211/patches/subsys/320-cfg80211-rename-offchannel_chain-structs-to-backgrou.patch
package/kernel/mac80211/patches/subsys/324-mac80211-MBSSID-beacon-handling-in-AP-mode.patch
package/kernel/mac80211/patches/subsys/330-mac80211-switch-airtime-fairness-back-to-deficit-rou.patch
package/kernel/mac80211/patches/subsys/331-mac80211-make-sta-airtime-deficit-field-s32-instead-.patch
package/kernel/mac80211/patches/subsys/332-mac80211-consider-aql_tx_pending-when-checking-airti.patch
package/kernel/mac80211/patches/subsys/333-mac80211-keep-recently-active-tx-queues-in-schedulin.patch
package/kernel/mac80211/patches/subsys/334-mac80211-add-a-per-PHY-AQL-limit-to-improve-fairness.patch
package/kernel/mac80211/patches/subsys/336-mac80211-only-accumulate-airtime-deficit-for-active-.patch
package/kernel/mac80211/patches/subsys/337-mac80211-increase-quantum-for-airtime-scheduler.patch
package/kernel/mac80211/patches/subsys/339-mac80211-exclude-multicast-packets-from-AQL-pending-.patch
package/kernel/mac80211/patches/subsys/348-wifi-mac80211-flush-queues-on-STA-removal.patch
package/kernel/mac80211/patches/subsys/350-wifi-mac80211-add-flush_sta-method.patch

index a562178a99b9f76729f938ff8635f617e8ea3dd4..0bcbd8d29491daeba46c7cc2b3d20061dcc26ed3 100644 (file)
@@ -10,10 +10,10 @@ include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=mac80211
 
-PKG_VERSION:=5.15.148-1
+PKG_VERSION:=5.15.153-1
 PKG_RELEASE:=1
-PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v5.15.148
-PKG_HASH:=3ec31964844cbb8f7c7af4da8ae765446572934a334926102ed2f3baebb87c06
+PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v5.15.153
+PKG_HASH:=eaa24df968c79385c57707068a209fb1ea43271b573f24885805ae96a58ee3a8
 
 PKG_SOURCE:=backports-$(PKG_VERSION).tar.xz
 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/backports-$(PKG_VERSION)
index 35927e7850f9e243b2e25c34840707cd7376bdb6..603b309d979a6fed6203ba82433af0908d9a6ff8 100644 (file)
@@ -456,7 +456,7 @@ v13:
  {
 --- a/drivers/net/wireless/ath/ath10k/wmi-tlv.c
 +++ b/drivers/net/wireless/ath/ath10k/wmi-tlv.c
-@@ -4594,6 +4594,8 @@ static const struct wmi_ops wmi_tlv_ops
+@@ -4598,6 +4598,8 @@ static const struct wmi_ops wmi_tlv_ops
        .gen_echo = ath10k_wmi_tlv_op_gen_echo,
        .gen_vdev_spectral_conf = ath10k_wmi_tlv_op_gen_vdev_spectral_conf,
        .gen_vdev_spectral_enable = ath10k_wmi_tlv_op_gen_vdev_spectral_enable,
index 09ef50526fabd20d26639c1647fa965bc1c67939..295a4cca7389770eefa2f87cb776ed534d7b6d16 100644 (file)
@@ -22,7 +22,7 @@
  static int modparam_bad_frames_preempt;
  module_param_named(bad_frames_preempt, modparam_bad_frames_preempt, int, 0444);
  MODULE_PARM_DESC(bad_frames_preempt,
-@@ -2869,10 +2874,10 @@ static int b43_gpio_init(struct b43_wlde
+@@ -2870,10 +2875,10 @@ static int b43_gpio_init(struct b43_wlde
        u32 mask, set;
  
        b43_maskset32(dev, B43_MMIO_MACCTL, ~B43_MACCTL_GPOUTSMSK, 0);
index 5dc04ecc88e228f5eb5a848ade7ebe8e548df352..547b1f9c6c8ffed7b85613eadefd07737f9236df 100644 (file)
@@ -9,7 +9,7 @@
        antenna = b43_antenna_to_phyctl(antenna);
        ctl = b43_shm_read16(dev, B43_SHM_SHARED, B43_SHM_SH_BEACPHYCTL);
        /* We can't send beacons with short preamble. Would get PHY errors. */
-@@ -3284,8 +3284,8 @@ static int b43_chip_init(struct b43_wlde
+@@ -3285,8 +3285,8 @@ static int b43_chip_init(struct b43_wlde
  
        /* Select the antennae */
        if (phy->ops->set_rx_antenna)
@@ -20,7 +20,7 @@
  
        if (phy->type == B43_PHYTYPE_B) {
                value16 = b43_read16(dev, 0x005E);
-@@ -3985,7 +3985,6 @@ static int b43_op_config(struct ieee8021
+@@ -3987,7 +3987,6 @@ static int b43_op_config(struct ieee8021
        struct b43_wldev *dev = wl->current_dev;
        struct b43_phy *phy = &dev->phy;
        struct ieee80211_conf *conf = &hw->conf;
@@ -28,7 +28,7 @@
        int err = 0;
  
        mutex_lock(&wl->mutex);
-@@ -4028,11 +4027,9 @@ static int b43_op_config(struct ieee8021
+@@ -4030,11 +4029,9 @@ static int b43_op_config(struct ieee8021
        }
  
        /* Antennas for RX and management frame TX. */
@@ -42,7 +42,7 @@
  
        if (wl->radio_enabled != phy->radio_on) {
                if (wl->radio_enabled) {
-@@ -5175,6 +5172,47 @@ static int b43_op_get_survey(struct ieee
+@@ -5177,6 +5174,47 @@ static int b43_op_get_survey(struct ieee
        return 0;
  }
  
@@ -90,7 +90,7 @@
  static const struct ieee80211_ops b43_hw_ops = {
        .tx                     = b43_op_tx,
        .conf_tx                = b43_op_conf_tx,
-@@ -5196,6 +5234,8 @@ static const struct ieee80211_ops b43_hw
+@@ -5198,6 +5236,8 @@ static const struct ieee80211_ops b43_hw
        .sw_scan_complete       = b43_op_sw_scan_complete_notifier,
        .get_survey             = b43_op_get_survey,
        .rfkill_poll            = b43_rfkill_poll,
@@ -99,7 +99,7 @@
  };
  
  /* Hard-reset the chip. Do not call this directly.
-@@ -5497,6 +5537,8 @@ static int b43_one_core_attach(struct b4
+@@ -5499,6 +5539,8 @@ static int b43_one_core_attach(struct b4
        if (!wldev)
                goto out;
  
        wldev->use_pio = b43_modparam_pio;
        wldev->dev = dev;
        wldev->wl = wl;
-@@ -5588,6 +5630,9 @@ static struct b43_wl *b43_wireless_init(
+@@ -5590,6 +5632,9 @@ static struct b43_wl *b43_wireless_init(
  
        wiphy_ext_feature_set(hw->wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST);
  
index 9cb0a32fd406904174cad8714e08d77be8560c60..f7aa413208fad675e15e8fc9724ede85d277e9e2 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/broadcom/b43/main.c
 +++ b/drivers/net/wireless/broadcom/b43/main.c
-@@ -2886,6 +2886,14 @@ static int b43_gpio_init(struct b43_wlde
+@@ -2887,6 +2887,14 @@ static int b43_gpio_init(struct b43_wlde
        } else if (dev->dev->chip_id == 0x5354) {
                /* Don't allow overtaking buttons GPIOs */
                set &= 0x2; /* 0x2 is LED GPIO on BCM5354 */
index 089ff2117bd94f1485e7e454d955b003486c6215..6155484ddd219fad29664c77494570116a88f78e 100644 (file)
@@ -90,7 +90,7 @@
  config B43_PHY_G
 --- a/drivers/net/wireless/broadcom/b43/main.c
 +++ b/drivers/net/wireless/broadcom/b43/main.c
-@@ -2853,7 +2853,7 @@ static struct ssb_device *b43_ssb_gpio_d
+@@ -2854,7 +2854,7 @@ static struct ssb_device *b43_ssb_gpio_d
  {
        struct ssb_bus *bus = dev->dev->sdev->bus;
  
@@ -99,7 +99,7 @@
        return (bus->chipco.dev ? bus->chipco.dev : bus->pcicore.dev);
  #else
        return bus->chipco.dev;
-@@ -4870,7 +4870,7 @@ static int b43_wireless_core_init(struct
+@@ -4872,7 +4872,7 @@ static int b43_wireless_core_init(struct
        }
        if (sprom->boardflags_lo & B43_BFL_XTAL_NOSLOW)
                hf |= B43_HF_DSCRQ; /* Disable slowclock requests from ucode. */
index 9ba8ab1249996475af742654074a81f975c40f0b..6a4a7e9638da455f27f7b4a81be62ab84ae3459f 100644 (file)
@@ -42,7 +42,7 @@ Acked-by: Stanislaw Gruszka <stf_xl@wp.pl>
 
 --- a/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
 +++ b/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
-@@ -1094,6 +1094,19 @@ static void rt2x00lib_remove_hw(struct r
+@@ -1095,6 +1095,19 @@ static void rt2x00lib_remove_hw(struct r
        kfree(rt2x00dev->chan_survey);
  }
  
@@ -62,7 +62,7 @@ Acked-by: Stanislaw Gruszka <stf_xl@wp.pl>
  static int rt2x00lib_probe_hw(struct rt2x00_dev *rt2x00dev)
  {
        struct hw_mode_spec *spec = &rt2x00dev->spec;
-@@ -1175,6 +1188,11 @@ static int rt2x00lib_probe_hw(struct rt2
+@@ -1176,6 +1189,11 @@ static int rt2x00lib_probe_hw(struct rt2
  
  #undef RT2X00_TASKLET_INIT
  
index 4d7f49cb7ea0fdbf57bbc0ed74c0eadd78561436..4d5eb6aeb6fdb836d3579881188ee43e4077c530 100644 (file)
        DECLARE_KFIFO_PTR(txstatus_fifo, u32);
 --- a/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
 +++ b/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
-@@ -1420,6 +1420,10 @@ int rt2x00lib_probe_dev(struct rt2x00_de
+@@ -1423,6 +1423,10 @@ int rt2x00lib_probe_dev(struct rt2x00_de
        INIT_DELAYED_WORK(&rt2x00dev->autowakeup_work, rt2x00lib_autowakeup);
        INIT_WORK(&rt2x00dev->sleep_work, rt2x00lib_sleep);
  
        /*
         * Let the driver probe the device to detect the capabilities.
         */
-@@ -1560,6 +1564,11 @@ void rt2x00lib_remove_dev(struct rt2x00_
+@@ -1563,6 +1567,11 @@ void rt2x00lib_remove_dev(struct rt2x00_
         * Free the driver data.
         */
        kfree(rt2x00dev->drv_data);
index ffee2189d2d3b115cab9024ff1e4a54fe36b70e4..ab09a68297fdaa1dcd3c929de695bac8cdba82be 100644 (file)
@@ -12,7 +12,7 @@
  #endif /* _RT2X00_PLATFORM_H */
 --- a/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
 +++ b/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
-@@ -1007,6 +1007,22 @@ static int rt2x00lib_probe_hw_modes(stru
+@@ -1008,6 +1008,22 @@ static int rt2x00lib_probe_hw_modes(stru
        unsigned int num_rates;
        unsigned int i;
  
index 37553bb80a07c55cbaa77cad64fd8316125d6989..79f99ffdf4a23e6ba4751e15cd59747bc784ad52 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
 +++ b/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
-@@ -989,6 +989,12 @@ static void rt2x00lib_rate(struct ieee80
+@@ -990,6 +990,12 @@ static void rt2x00lib_rate(struct ieee80
  
  void rt2x00lib_set_mac_address(struct rt2x00_dev *rt2x00dev, u8 *eeprom_mac_addr)
  {
index 6211809c0a0c404c2bd96298ad3e377ae767360e..31f2f0261fd5e3d365b6c2fbbfcaee82d7a252a3 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
 +++ b/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
-@@ -1012,6 +1012,16 @@ static int rt2x00lib_probe_hw_modes(stru
+@@ -1013,6 +1013,16 @@ static int rt2x00lib_probe_hw_modes(stru
        struct ieee80211_rate *rates;
        unsigned int num_rates;
        unsigned int i;
index aa2b25ba7f5da5a539978ff3770e4ac4444fdaa7..9564f02eddec52f19ec092ed7405a21148ca496c 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
 +++ b/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
-@@ -1359,7 +1359,7 @@ static inline void rt2x00lib_set_if_comb
+@@ -1362,7 +1362,7 @@ static inline void rt2x00lib_set_if_comb
         */
        if_limit = &rt2x00dev->if_limits_ap;
        if_limit->max = rt2x00dev->ops->max_ap_intf;
index 68a55b1e862c68b578da54fffd04e7320a024d58..d58d467db4d8e1e7a479a76ca75b0b38a919b9a5 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/net/mac80211/tx.c
 +++ b/net/mac80211/tx.c
-@@ -3821,7 +3821,7 @@ struct ieee80211_txq *ieee80211_next_txq
+@@ -3822,7 +3822,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 <nbd@nbd.name>
        struct ieee80211_txq *ret = NULL;
        struct airtime_info *air_info;
        struct txq_info *txqi = NULL;
-@@ -3948,7 +3948,7 @@ void ieee80211_update_airtime_weight(str
+@@ -3949,7 +3949,7 @@ void ieee80211_update_airtime_weight(str
        u64 weight_sum = 0;
  
        if (unlikely(!now))
@@ -31,7 +31,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
        lockdep_assert_held(&air_sched->lock);
  
-@@ -3974,7 +3974,7 @@ void ieee80211_schedule_txq(struct ieee8
+@@ -3975,7 +3975,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 <nbd@nbd.name>
        struct airtime_info *air_info;
        u8 ac = txq->ac;
        bool was_active;
-@@ -4032,7 +4032,7 @@ static void __ieee80211_unschedule_txq(s
+@@ -4033,7 +4033,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 <nbd@nbd.name>
  
        rb_erase_cached(&txqi->schedule_order,
                        &air_sched->active_txqs);
-@@ -4120,7 +4120,7 @@ bool ieee80211_txq_may_transmit(struct i
+@@ -4121,7 +4121,7 @@ bool ieee80211_txq_may_transmit(struct i
        if (RB_EMPTY_NODE(&txqi->schedule_order))
                goto out;
  
index 36764db33622a906c4ee394c67c4dcc4ef10cd69..1113880bead07dee2d2b9549e9f9e79399fd56c7 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
 
 --- a/net/mac80211/tx.c
 +++ b/net/mac80211/tx.c
-@@ -4988,6 +4988,115 @@ static int ieee80211_beacon_protect(stru
+@@ -4989,6 +4989,115 @@ static int ieee80211_beacon_protect(stru
        return 0;
  }
  
@@ -130,7 +130,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  static struct sk_buff *
  __ieee80211_beacon_get(struct ieee80211_hw *hw,
                       struct ieee80211_vif *vif,
-@@ -4997,12 +5106,8 @@ __ieee80211_beacon_get(struct ieee80211_
+@@ -4998,12 +5107,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 <johannes.berg@intel.com>
  
        rcu_read_lock();
  
-@@ -5019,48 +5124,11 @@ __ieee80211_beacon_get(struct ieee80211_
+@@ -5020,48 +5125,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 <johannes.berg@intel.com>
        } else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) {
                struct ieee80211_if_ibss *ifibss = &sdata->u.ibss;
                struct ieee80211_hdr *hdr;
-@@ -5086,6 +5154,9 @@ __ieee80211_beacon_get(struct ieee80211_
+@@ -5087,6 +5155,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 <johannes.berg@intel.com>
        } else if (ieee80211_vif_is_mesh(&sdata->vif)) {
                struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh;
  
-@@ -5125,51 +5196,13 @@ __ieee80211_beacon_get(struct ieee80211_
+@@ -5126,51 +5197,13 @@ __ieee80211_beacon_get(struct ieee80211_
                }
  
                skb_put_data(skb, beacon->tail, beacon->tail_len);
index 052c7b708d5c5cb6cb01c94e629dcb7687ab287a..9302483c19a688311005cb35721ab18f2155d10e 100644 (file)
@@ -294,7 +294,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
                /* done */
                state->split_start = 0;
                break;
-@@ -5021,6 +5066,96 @@ static int validate_beacon_tx_rate(struc
+@@ -5024,6 +5069,96 @@ static int validate_beacon_tx_rate(struc
        return 0;
  }
  
@@ -391,7 +391,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  static int nl80211_parse_beacon(struct cfg80211_registered_device *rdev,
                                struct nlattr *attrs[],
                                struct cfg80211_beacon_data *bcn)
-@@ -5101,6 +5236,17 @@ static int nl80211_parse_beacon(struct c
+@@ -5104,6 +5239,17 @@ static int nl80211_parse_beacon(struct c
                bcn->ftm_responder = -1;
        }
  
@@ -409,7 +409,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
        return 0;
  }
  
-@@ -5557,6 +5703,17 @@ static int nl80211_start_ap(struct sk_bu
+@@ -5560,6 +5706,17 @@ static int nl80211_start_ap(struct sk_bu
                        goto out;
        }
  
@@ -427,7 +427,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
        nl80211_calculate_ap_params(&params);
  
        if (info->attrs[NL80211_ATTR_EXTERNAL_AUTH_SUPPORT])
-@@ -5578,6 +5735,11 @@ static int nl80211_start_ap(struct sk_bu
+@@ -5581,6 +5738,11 @@ static int nl80211_start_ap(struct sk_bu
  
  out:
        kfree(params.acl);
@@ -439,7 +439,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  
        return err;
  }
-@@ -5602,12 +5764,14 @@ static int nl80211_set_beacon(struct sk_
+@@ -5605,12 +5767,14 @@ static int nl80211_set_beacon(struct sk_
  
        err = nl80211_parse_beacon(rdev, info->attrs, &params);
        if (err)
@@ -455,7 +455,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
        return err;
  }
  
-@@ -9284,12 +9448,14 @@ static int nl80211_channel_switch(struct
+@@ -9287,12 +9451,14 @@ static int nl80211_channel_switch(struct
  
        err = nl80211_parse_beacon(rdev, info->attrs, &params.beacon_after);
        if (err)
@@ -473,7 +473,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  
        err = nla_parse_nested_deprecated(csa_attrs, NL80211_ATTR_MAX,
                                          info->attrs[NL80211_ATTR_CSA_IES],
-@@ -9408,6 +9574,8 @@ skip_beacons:
+@@ -9411,6 +9577,8 @@ skip_beacons:
        wdev_unlock(wdev);
  
  free:
@@ -482,7 +482,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
        kfree(csa_attrs);
        return err;
  }
-@@ -14960,6 +15128,8 @@ static int nl80211_color_change(struct s
+@@ -14963,6 +15131,8 @@ static int nl80211_color_change(struct s
        wdev_unlock(wdev);
  
  out:
index fe3fc51b74ff104ffb57a6db512f0721ff9d6abb..9a26fe0ec1cb24a8f4a11b3c2fda8773c87990d0 100644 (file)
@@ -294,7 +294,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  };
  
  /* policy for the key attributes */
-@@ -9288,12 +9289,6 @@ static int nl80211_start_radar_detection
+@@ -9291,12 +9292,6 @@ static int nl80211_start_radar_detection
        if (err)
                return err;
  
@@ -307,7 +307,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
        err = cfg80211_chandef_dfs_required(wiphy, &chandef, wdev->iftype);
        if (err < 0)
                return err;
-@@ -9304,6 +9299,16 @@ static int nl80211_start_radar_detection
+@@ -9307,6 +9302,16 @@ static int nl80211_start_radar_detection
        if (!cfg80211_chandef_dfs_usable(wiphy, &chandef))
                return -EINVAL;
  
index 9a0cade81c5043a6b65ca8f6ef8b45752c9b2020..988ebf09d5094d3c2ce11bbeb7728944e901781a 100644 (file)
@@ -118,7 +118,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
                                     NL80211_RADAR_CAC_ABORTED);
 --- a/net/wireless/nl80211.c
 +++ b/net/wireless/nl80211.c
-@@ -9279,42 +9279,60 @@ static int nl80211_start_radar_detection
+@@ -9282,42 +9282,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 <johannes.berg@intel.com>
  
        cac_time_ms = cfg80211_chandef_dfs_cac_time(&rdev->wiphy, &chandef);
        if (WARN_ON(!cac_time_ms))
-@@ -9327,6 +9345,9 @@ static int nl80211_start_radar_detection
+@@ -9330,6 +9348,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 <johannes.berg@intel.com>
        return err;
  }
  
-@@ -15962,7 +15983,8 @@ static const struct genl_small_ops nl802
+@@ -15965,7 +15986,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,
index d4d1894c189760415412cf3e239d8fe8cc9f4664..9358844500bd6f6e01ec03fcb83164859d255c1f 100644 (file)
@@ -481,7 +481,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  };
  
  /* policy for the key attributes */
-@@ -9307,9 +9307,9 @@ static int nl80211_start_radar_detection
+@@ -9310,9 +9310,9 @@ static int nl80211_start_radar_detection
                goto unlock;
        }
  
index be3aa5a619b2493deeec54483b074d481eb99783..3e89207101c8f7546f4d56cb18e17c23ff03ca6b 100644 (file)
@@ -269,7 +269,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
        IEEE80211_TX_STATUS_MSG = 2,
 --- a/net/mac80211/tx.c
 +++ b/net/mac80211/tx.c
-@@ -5042,6 +5042,19 @@ ieee80211_beacon_get_finish(struct ieee8
+@@ -5043,6 +5043,19 @@ ieee80211_beacon_get_finish(struct ieee8
                       IEEE80211_TX_CTL_FIRST_FRAGMENT;
  }
  
@@ -289,7 +289,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  static struct sk_buff *
  ieee80211_beacon_get_ap(struct ieee80211_hw *hw,
                        struct ieee80211_vif *vif,
-@@ -5055,6 +5068,7 @@ ieee80211_beacon_get_ap(struct ieee80211
+@@ -5056,6 +5069,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 <johannes.berg@intel.com>
  
        if (beacon->cntdwn_counter_offsets[0]) {
                if (!is_template)
-@@ -5064,11 +5078,12 @@ ieee80211_beacon_get_ap(struct ieee80211
+@@ -5065,11 +5079,12 @@ ieee80211_beacon_get_ap(struct ieee80211
        }
  
        /* headroom, head length,
@@ -312,7 +312,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
        if (!skb)
                return NULL;
  
-@@ -5082,6 +5097,11 @@ ieee80211_beacon_get_ap(struct ieee80211
+@@ -5083,6 +5098,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];
  
index 3b39701d2d7ed87a76c8d4f902b5ca1dee989619..03f6a932067ba34d49ac727e277dc069ccfd8502 100644 (file)
@@ -627,7 +627,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        }
  
        for (i = 0; i < IEEE80211_NUM_TIDS; i++)
-@@ -1890,59 +1894,24 @@ void ieee80211_sta_set_buffered(struct i
+@@ -1892,59 +1896,24 @@ void ieee80211_sta_set_buffered(struct i
  }
  EXPORT_SYMBOL(ieee80211_sta_set_buffered);
  
@@ -699,7 +699,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  }
  EXPORT_SYMBOL(ieee80211_sta_register_airtime);
  
-@@ -2386,7 +2355,7 @@ void sta_set_sinfo(struct sta_info *sta,
+@@ -2388,7 +2357,7 @@ void sta_set_sinfo(struct sta_info *sta,
        }
  
        if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_AIRTIME_WEIGHT))) {
@@ -811,7 +811,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  }
  
  void ieee80211_txq_set_params(struct ieee80211_local *local)
-@@ -3820,259 +3821,102 @@ EXPORT_SYMBOL(ieee80211_tx_dequeue);
+@@ -3821,259 +3822,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 <nbd@nbd.name>
        struct ieee80211_local *local = hw_to_local(hw);
  
        if (!wiphy_ext_feature_isset(local->hw.wiphy, NL80211_EXT_FEATURE_AQL))
-@@ -4087,12 +3931,15 @@ bool ieee80211_txq_airtime_check(struct
+@@ -4088,12 +3932,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 <nbd@nbd.name>
                return true;
  
        return false;
-@@ -4102,59 +3949,60 @@ EXPORT_SYMBOL(ieee80211_txq_airtime_chec
+@@ -4103,59 +3950,60 @@ EXPORT_SYMBOL(ieee80211_txq_airtime_chec
  bool ieee80211_txq_may_transmit(struct ieee80211_hw *hw,
                                struct ieee80211_txq *txq)
  {
index 1937060c77e5e7d0258e9fa1e25834d101565943..95465de9ed7fa5e264718f4a134c1b6e09920306 100644 (file)
@@ -41,7 +41,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        u32 aql_limit_high;
 --- a/net/mac80211/tx.c
 +++ b/net/mac80211/tx.c
-@@ -3848,7 +3848,7 @@ struct ieee80211_txq *ieee80211_next_txq
+@@ -3849,7 +3849,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);
index e13f399f39b71c1cfd697fcf61c691bbdd0c5872..4f5d1a4281e9b7d78fb00d6ad6ee42b7c9485f14 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/net/mac80211/tx.c
 +++ b/net/mac80211/tx.c
-@@ -3818,6 +3818,13 @@ out:
+@@ -3819,6 +3819,13 @@ out:
  }
  EXPORT_SYMBOL(ieee80211_tx_dequeue);
  
@@ -28,7 +28,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  struct ieee80211_txq *ieee80211_next_txq(struct ieee80211_hw *hw, u8 ac)
  {
        struct ieee80211_local *local = hw_to_local(hw);
-@@ -3848,7 +3855,7 @@ struct ieee80211_txq *ieee80211_next_txq
+@@ -3849,7 +3856,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 <nbd@nbd.name>
  
                if (aql_check)
                        found_eligible_txq = true;
-@@ -3973,7 +3980,7 @@ bool ieee80211_txq_may_transmit(struct i
+@@ -3974,7 +3981,7 @@ bool ieee80211_txq_may_transmit(struct i
                        continue;
                }
                sta = container_of(iter->txq.sta, struct sta_info, sta);
index 9ca3940276542b00fd12429f19b2af57cae89433..d36e103d5e9660ccf05530c06fc6a835971dc382 100644 (file)
@@ -37,7 +37,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        u32 aql_limit_low;
 --- a/net/mac80211/tx.c
 +++ b/net/mac80211/tx.c
-@@ -3825,6 +3825,36 @@ static inline s32 ieee80211_sta_deficit(
+@@ -3826,6 +3826,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 <nbd@nbd.name>
  struct ieee80211_txq *ieee80211_next_txq(struct ieee80211_hw *hw, u8 ac)
  {
        struct ieee80211_local *local = hw_to_local(hw);
-@@ -3871,7 +3901,6 @@ struct ieee80211_txq *ieee80211_next_txq
+@@ -3872,7 +3902,6 @@ struct ieee80211_txq *ieee80211_next_txq
                }
        }
  
@@ -82,7 +82,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (txqi->schedule_round == local->schedule_round[ac])
                goto out;
  
-@@ -3891,12 +3920,13 @@ void __ieee80211_schedule_txq(struct iee
+@@ -3892,12 +3921,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 <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
-@@ -3904,7 +3934,7 @@ void __ieee80211_schedule_txq(struct iee
+@@ -3905,7 +3935,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 <nbd@nbd.name>
                    wiphy_ext_feature_isset(local->hw.wiphy,
                                            NL80211_EXT_FEATURE_AIRTIME_FAIRNESS))
                        list_add(&txqi->schedule_order,
-@@ -3912,6 +3942,8 @@ void __ieee80211_schedule_txq(struct iee
+@@ -3913,6 +3943,8 @@ void __ieee80211_schedule_txq(struct iee
                else
                        list_add_tail(&txqi->schedule_order,
                                      &local->active_txqs[txq->ac]);
index 10a520a2a548f727ed6ec4ad68b6a36140aa5054..80eb8cfcf88c2e36574887da95f5d6068566f6bc 100644 (file)
@@ -35,7 +35,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        local->airtime_flags = AIRTIME_USE_TX | AIRTIME_USE_RX;
 --- a/net/mac80211/sta_info.c
 +++ b/net/mac80211/sta_info.c
-@@ -1930,6 +1930,7 @@ void ieee80211_sta_update_pending_airtim
+@@ -1932,6 +1932,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 <nbd@nbd.name>
                return;
        }
  
-@@ -1941,14 +1942,17 @@ void ieee80211_sta_update_pending_airtim
+@@ -1943,14 +1944,17 @@ void ieee80211_sta_update_pending_airtim
                                       tx_pending, 0);
        }
  
@@ -66,7 +66,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  int sta_info_move_state(struct sta_info *sta,
 --- a/net/mac80211/tx.c
 +++ b/net/mac80211/tx.c
-@@ -3864,6 +3864,9 @@ struct ieee80211_txq *ieee80211_next_txq
+@@ -3865,6 +3865,9 @@ struct ieee80211_txq *ieee80211_next_txq
  
        spin_lock_bh(&local->active_txq_lock[ac]);
  
@@ -76,7 +76,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
   begin:
        txqi = list_first_entry_or_null(&local->active_txqs[ac],
                                        struct txq_info,
-@@ -3985,6 +3988,25 @@ bool ieee80211_txq_airtime_check(struct
+@@ -3986,6 +3989,25 @@ bool ieee80211_txq_airtime_check(struct
  }
  EXPORT_SYMBOL(ieee80211_txq_airtime_check);
  
@@ -102,7 +102,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  bool ieee80211_txq_may_transmit(struct ieee80211_hw *hw,
                                struct ieee80211_txq *txq)
  {
-@@ -4001,6 +4023,9 @@ bool ieee80211_txq_may_transmit(struct i
+@@ -4002,6 +4024,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 <nbd@nbd.name>
        list_for_each_entry_safe(iter, tmp, &local->active_txqs[ac],
                                 schedule_order) {
                if (iter == txqi)
-@@ -4040,7 +4065,15 @@ void ieee80211_txq_schedule_start(struct
+@@ -4041,7 +4066,15 @@ void ieee80211_txq_schedule_start(struct
        struct ieee80211_local *local = hw_to_local(hw);
  
        spin_lock_bh(&local->active_txq_lock[ac]);
index 828ab09f8953afeeeb724d144bf03430244d9a53..dff936cc6fea2fa00d6b9a71b88e8f991745785f 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/net/mac80211/sta_info.c
 +++ b/net/mac80211/sta_info.c
-@@ -1901,6 +1901,7 @@ void ieee80211_sta_register_airtime(stru
+@@ -1903,6 +1903,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 <nbd@nbd.name>
  
        if (sta->local->airtime_flags & AIRTIME_USE_TX)
                airtime += tx_airtime;
-@@ -1910,7 +1911,11 @@ void ieee80211_sta_register_airtime(stru
+@@ -1912,7 +1913,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;
index 84b8821e52edbea7f6db81411fcc716f22e5c389..9f07ecc1d638d5c941b08d258055bd6d68c958f3 100644 (file)
@@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
 --- a/net/mac80211/tx.c
 +++ b/net/mac80211/tx.c
-@@ -3895,7 +3895,7 @@ struct ieee80211_txq *ieee80211_next_txq
+@@ -3896,7 +3896,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 <nbd@nbd.name>
  
                if (deficit < 0 || !aql_check) {
                        list_move_tail(&txqi->schedule_order,
-@@ -4038,7 +4038,8 @@ bool ieee80211_txq_may_transmit(struct i
+@@ -4039,7 +4039,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 <nbd@nbd.name>
                list_move_tail(&iter->schedule_order, &local->active_txqs[ac]);
        }
  
-@@ -4046,7 +4047,7 @@ bool ieee80211_txq_may_transmit(struct i
+@@ -4047,7 +4048,7 @@ bool ieee80211_txq_may_transmit(struct i
        if (sta->airtime[ac].deficit >= 0)
                goto out;
  
index 24bb16b593ed1a0fa436fae311b3eb01f3c7989e..61872c55cb9c039f65b294ab9d89bb77fb546549 100644 (file)
@@ -19,9 +19,9 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/net/mac80211/tx.c
 +++ b/net/mac80211/tx.c
-@@ -3793,7 +3793,7 @@ begin:
+@@ -3794,7 +3794,7 @@ begin:
  encap_out:
-       IEEE80211_SKB_CB(skb)->control.vif = vif;
+       info->control.vif = vif;
  
 -      if (vif &&
 +      if (tx.sta &&
index a5198c34fef9bfd46a409131ff991ecb6ca0f1d6..ad01f4701ea58ad84989d38a67b94ab2c4555333 100644 (file)
@@ -19,7 +19,7 @@ Reviewed-by: Greenman, Gregory <gregory.greenman@intel.com>
 
 --- a/net/mac80211/sta_info.c
 +++ b/net/mac80211/sta_info.c
-@@ -1071,6 +1071,14 @@ static void __sta_info_destroy_part2(str
+@@ -1073,6 +1073,14 @@ static void __sta_info_destroy_part2(str
                WARN_ON_ONCE(ret);
        }
  
index 1ab844363c483a849f18cf126aa13256cc7462da..1141abcda2baa671f7db28f6699b9ab69a653c69 100644 (file)
@@ -58,7 +58,7 @@ Reviewed-by: Greenman, Gregory <gregory.greenman@intel.com>
                                      struct ieee80211_channel_switch *ch_switch)
 --- a/net/mac80211/sta_info.c
 +++ b/net/mac80211/sta_info.c
-@@ -1076,8 +1076,12 @@ static void __sta_info_destroy_part2(str
+@@ -1078,8 +1078,12 @@ static void __sta_info_destroy_part2(str
         * frames sitting on hardware queues might be sent out without
         * any encryption at all.
         */