mac80211: Update to version 5.9.12-1
[openwrt/staging/wigyori.git] / package / kernel / mac80211 / patches / subsys / 318-mac80211-rework-tx-encapsulation-offload-API.patch
index 7593c41da068a5476af97f3c198d60ef736dfd14..811c66499bbe0a8573efd43f35c2c99e5f3527ee 100644 (file)
@@ -26,7 +26,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/drivers/net/wireless/ath/ath11k/mac.c
 +++ b/drivers/net/wireless/ath/ath11k/mac.c
-@@ -4150,6 +4150,35 @@ static int ath11k_set_he_mu_sounding_mod
+@@ -4304,6 +4304,35 @@ static int ath11k_set_he_mu_sounding_mod
        return ret;
  }
  
@@ -62,7 +62,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  static int ath11k_mac_op_add_interface(struct ieee80211_hw *hw,
                                       struct ieee80211_vif *vif)
  {
-@@ -4159,7 +4188,6 @@ static int ath11k_mac_op_add_interface(s
+@@ -4313,7 +4342,6 @@ static int ath11k_mac_op_add_interface(s
        struct vdev_create_params vdev_param = {0};
        struct peer_create_params peer_param;
        u32 param_id, param_value;
@@ -70,7 +70,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        u16 nss;
        int i;
        int ret;
-@@ -4253,30 +4281,7 @@ static int ath11k_mac_op_add_interface(s
+@@ -4407,30 +4435,7 @@ static int ath11k_mac_op_add_interface(s
        list_add(&arvif->list, &ar->arvifs);
        spin_unlock_bh(&ar->data_lock);
  
@@ -102,7 +102,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
        nss = get_num_chains(ar->cfg_tx_chainmask) ? : 1;
        ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id,
-@@ -5599,6 +5604,7 @@ static const struct ieee80211_ops ath11k
+@@ -5753,6 +5758,7 @@ static const struct ieee80211_ops ath11k
        .reconfig_complete              = ath11k_mac_op_reconfig_complete,
        .add_interface                  = ath11k_mac_op_add_interface,
        .remove_interface               = ath11k_mac_op_remove_interface,
@@ -110,7 +110,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        .config                         = ath11k_mac_op_config,
        .bss_info_changed               = ath11k_mac_op_bss_info_changed,
        .configure_filter               = ath11k_mac_op_configure_filter,
-@@ -5852,6 +5858,7 @@ static int __ath11k_mac_register(struct
+@@ -6034,6 +6040,7 @@ static int __ath11k_mac_register(struct
        ieee80211_hw_set(ar->hw, QUEUE_CONTROL);
        ieee80211_hw_set(ar->hw, SUPPORTS_TX_FRAG);
        ieee80211_hw_set(ar->hw, REPORTS_LOW_ACK);
@@ -120,7 +120,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                ieee80211_hw_set(ar->hw, TX_AMPDU_SETUP_IN_HW);
 --- a/include/net/mac80211.h
 +++ b/include/net/mac80211.h
-@@ -1603,6 +1603,21 @@ enum ieee80211_vif_flags {
+@@ -1606,6 +1606,21 @@ enum ieee80211_vif_flags {
        IEEE80211_VIF_GET_NOA_UPDATE            = BIT(3),
  };
  
@@ -142,7 +142,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  /**
   * struct ieee80211_vif - per-interface data
   *
-@@ -1623,6 +1638,11 @@ enum ieee80211_vif_flags {
+@@ -1626,6 +1641,11 @@ enum ieee80211_vif_flags {
   *    these need to be set (or cleared) when the interface is added
   *    or, if supported by the driver, the interface type is changed
   *    at runtime, mac80211 will never touch this field
@@ -154,7 +154,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
   * @hw_queue: hardware queue for each AC
   * @cab_queue: content-after-beacon (DTIM beacon really) queue, AP mode only
   * @chanctx_conf: The channel context this interface is assigned to, or %NULL
-@@ -1659,6 +1679,7 @@ struct ieee80211_vif {
+@@ -1662,6 +1682,7 @@ struct ieee80211_vif {
        struct ieee80211_chanctx_conf __rcu *chanctx_conf;
  
        u32 driver_flags;
@@ -162,7 +162,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
  #ifdef CPTCFG_MAC80211_DEBUGFS
        struct dentry *debugfs_dir;
-@@ -2325,6 +2346,9 @@ struct ieee80211_txq {
+@@ -2328,6 +2349,9 @@ struct ieee80211_txq {
   *    aggregating MPDUs with the same keyid, allowing mac80211 to keep Tx
   *    A-MPDU sessions active while rekeying with Extended Key ID.
   *
@@ -172,7 +172,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
   * @NUM_IEEE80211_HW_FLAGS: number of hardware flags, used for sizing arrays
   */
  enum ieee80211_hw_flags {
-@@ -2377,6 +2401,7 @@ enum ieee80211_hw_flags {
+@@ -2380,6 +2404,7 @@ enum ieee80211_hw_flags {
        IEEE80211_HW_SUPPORTS_MULTI_BSSID,
        IEEE80211_HW_SUPPORTS_ONLY_HE_MULTI_BSSID,
        IEEE80211_HW_AMPDU_KEYBORDER_SUPPORT,
@@ -180,7 +180,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
        /* keep last, obviously */
        NUM_IEEE80211_HW_FLAGS
-@@ -3811,6 +3836,8 @@ enum ieee80211_reconfig_type {
+@@ -3814,6 +3839,8 @@ enum ieee80211_reconfig_type {
   * @set_tid_config: Apply TID specific configurations. This callback may sleep.
   * @reset_tid_config: Reset TID specific configuration for the peer.
   *    This callback may sleep.
@@ -189,7 +189,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
   */
  struct ieee80211_ops {
        void (*tx)(struct ieee80211_hw *hw,
-@@ -4122,6 +4149,8 @@ struct ieee80211_ops {
+@@ -4125,6 +4152,8 @@ struct ieee80211_ops {
        int (*reset_tid_config)(struct ieee80211_hw *hw,
                                struct ieee80211_vif *vif,
                                struct ieee80211_sta *sta, u8 tids);
@@ -210,7 +210,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
 --- a/net/mac80211/driver-ops.h
 +++ b/net/mac80211/driver-ops.h
-@@ -1385,4 +1385,19 @@ static inline int drv_reset_tid_config(s
+@@ -1384,4 +1384,19 @@ static inline int drv_reset_tid_config(s
  
        return ret;
  }
@@ -232,7 +232,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  #endif /* __MAC80211_DRIVER_OPS */
 --- a/net/mac80211/ieee80211_i.h
 +++ b/net/mac80211/ieee80211_i.h
-@@ -990,8 +990,6 @@ struct ieee80211_sub_if_data {
+@@ -993,8 +993,6 @@ struct ieee80211_sub_if_data {
        } debugfs;
  #endif
  
@@ -241,7 +241,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        /* must be last, dynamically sized area in this! */
        struct ieee80211_vif vif;
  };
-@@ -1769,6 +1767,7 @@ void ieee80211_del_virtual_monitor(struc
+@@ -1772,6 +1770,7 @@ void ieee80211_del_virtual_monitor(struc
  bool __ieee80211_recalc_txpower(struct ieee80211_sub_if_data *sdata);
  void ieee80211_recalc_txpower(struct ieee80211_sub_if_data *sdata,
                              bool update_bss);
@@ -375,7 +375,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                        res = ieee80211_check_queues(sdata,
                                ieee80211_vif_type_p2p(&sdata->vif));
                        if (res)
-@@ -1286,61 +1371,6 @@ static const struct net_device_ops ieee8
+@@ -1293,61 +1378,6 @@ static const struct net_device_ops ieee8
  
  };
  
@@ -437,7 +437,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  static void ieee80211_if_free(struct net_device *dev)
  {
        free_percpu(netdev_tstats(dev));
-@@ -1371,6 +1401,32 @@ static void ieee80211_if_setup_no_queue(
+@@ -1378,6 +1408,32 @@ static void ieee80211_if_setup_no_queue(
  #endif
  }
  
@@ -470,7 +470,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  static void ieee80211_iface_work(struct work_struct *work)
  {
        struct ieee80211_sub_if_data *sdata =
-@@ -1553,7 +1609,6 @@ static void ieee80211_setup_sdata(struct
+@@ -1560,7 +1616,6 @@ static void ieee80211_setup_sdata(struct
        sdata->vif.bss_conf.txpower = INT_MIN; /* unset */
  
        sdata->noack_map = 0;
@@ -478,7 +478,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
        /* only monitor/p2p-device differ */
        if (sdata->dev) {
-@@ -1688,6 +1743,7 @@ static int ieee80211_runtime_change_ifty
+@@ -1695,6 +1750,7 @@ static int ieee80211_runtime_change_ifty
  
        ieee80211_teardown_sdata(sdata);
  
@@ -486,7 +486,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        ret = drv_change_interface(local, sdata, internal_type, p2p);
        if (ret)
                type = ieee80211_vif_type_p2p(&sdata->vif);
-@@ -1700,6 +1756,7 @@ static int ieee80211_runtime_change_ifty
+@@ -1707,6 +1763,7 @@ static int ieee80211_runtime_change_ifty
        ieee80211_check_queues(sdata, type);
  
        ieee80211_setup_sdata(sdata, type);
@@ -520,14 +520,14 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 -               */
 -              if (sdata->hw_80211_encap)
 -                      return -EINVAL;
--              /* Fall through */
+-              fallthrough;
 -
        case WLAN_CIPHER_SUITE_AES_CMAC:
        case WLAN_CIPHER_SUITE_BIP_CMAC_256:
        case WLAN_CIPHER_SUITE_BIP_GMAC_128:
 --- a/net/mac80211/trace.h
 +++ b/net/mac80211/trace.h
-@@ -2733,6 +2733,12 @@ TRACE_EVENT(drv_get_ftm_responder_stats,
+@@ -2734,6 +2734,12 @@ TRACE_EVENT(drv_get_ftm_responder_stats,
        )
  );
  
@@ -542,7 +542,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  #undef TRACE_INCLUDE_PATH
 --- a/net/mac80211/tx.c
 +++ b/net/mac80211/tx.c
-@@ -4181,11 +4181,10 @@ static bool ieee80211_tx_8023(struct iee
+@@ -4178,11 +4178,10 @@ static bool ieee80211_tx_8023(struct iee
  
  static void ieee80211_8023_xmit(struct ieee80211_sub_if_data *sdata,
                                struct net_device *dev, struct sta_info *sta,
@@ -555,7 +555,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        struct tid_ampdu_tx *tid_tx;
        u8 tid;
  
-@@ -4234,7 +4233,6 @@ static void ieee80211_8023_xmit(struct i
+@@ -4231,7 +4230,6 @@ static void ieee80211_8023_xmit(struct i
        info->control.flags |= IEEE80211_TX_CTRL_HW_80211_ENCAP;
        info->control.vif = &sdata->vif;
  
@@ -563,7 +563,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (key)
                info->control.hw_key = &key->conf;
  
-@@ -4251,12 +4249,9 @@ netdev_tx_t ieee80211_subif_start_xmit_8
+@@ -4248,12 +4246,9 @@ netdev_tx_t ieee80211_subif_start_xmit_8
  {
        struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
        struct ethhdr *ehdr = (struct ethhdr *)skb->data;
@@ -578,7 +578,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
        if (unlikely(skb->len < ETH_HLEN)) {
                kfree_skb(skb);
-@@ -4265,15 +4260,26 @@ netdev_tx_t ieee80211_subif_start_xmit_8
+@@ -4262,15 +4257,26 @@ netdev_tx_t ieee80211_subif_start_xmit_8
  
        rcu_read_lock();