mac80211: update to wireless-testing 2017-11-01
[openwrt/openwrt.git] / package / kernel / mac80211 / patches / 308-mac80211-add-NEED_ALIGNED4_SKBS-hw-flag.patch
index 762458ba789831188c200217930d0cbbaed1c255..a9f01b368de3cf82d48d045e274b18423cb91f61 100644 (file)
@@ -23,9 +23,9 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
 
 --- a/include/net/mac80211.h
 +++ b/include/net/mac80211.h
-@@ -2056,6 +2056,9 @@ struct ieee80211_txq {
-  *    The stack will not do fragmentation.
-  *    The callback for @set_frag_threshold should be set as well.
+@@ -2059,6 +2059,9 @@ struct ieee80211_txq {
+  * @IEEE80211_HW_SUPPORTS_TDLS_BUFFER_STA: Hardware supports buffer STA on
+  *    TDLS links.
   *
 + * @IEEE80211_HW_NEEDS_ALIGNED4_SKBS: Driver need aligned skbs to four-byte.
 + *    Padding will be added after ieee80211_hdr, before IV/LLC.
@@ -33,27 +33,27 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
   * @NUM_IEEE80211_HW_FLAGS: number of hardware flags, used for sizing arrays
   */
  enum ieee80211_hw_flags {
-@@ -2098,6 +2101,7 @@ enum ieee80211_hw_flags {
-       IEEE80211_HW_TX_FRAG_LIST,
+@@ -2102,6 +2105,7 @@ enum ieee80211_hw_flags {
        IEEE80211_HW_REPORTS_LOW_ACK,
        IEEE80211_HW_SUPPORTS_TX_FRAG,
+       IEEE80211_HW_SUPPORTS_TDLS_BUFFER_STA,
 +      IEEE80211_HW_NEEDS_ALIGNED4_SKBS,
  
        /* keep last, obviously */
        NUM_IEEE80211_HW_FLAGS
 --- a/net/mac80211/debugfs.c
 +++ b/net/mac80211/debugfs.c
-@@ -211,6 +211,7 @@ static const char *hw_flag_names[] = {
-       FLAG(TX_FRAG_LIST),
+@@ -212,6 +212,7 @@ static const char *hw_flag_names[] = {
        FLAG(REPORTS_LOW_ACK),
        FLAG(SUPPORTS_TX_FRAG),
+       FLAG(SUPPORTS_TDLS_BUFFER_STA),
 +      FLAG(NEEDS_ALIGNED4_SKBS),
  #undef FLAG
  };
  
 --- a/net/mac80211/ieee80211_i.h
 +++ b/net/mac80211/ieee80211_i.h
-@@ -1547,6 +1547,29 @@ ieee80211_vif_get_num_mcast_if(struct ie
+@@ -1548,6 +1548,29 @@ ieee80211_vif_get_num_mcast_if(struct ie
        return -1;
  }
  
@@ -85,7 +85,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
                                     unsigned int mpdu_len,
 --- a/net/mac80211/sta_info.h
 +++ b/net/mac80211/sta_info.h
-@@ -290,7 +290,7 @@ struct ieee80211_fast_tx {
+@@ -300,7 +300,7 @@ struct ieee80211_fast_tx {
        u8 hdr_len;
        u8 sa_offs, da_offs, pn_offs;
        u8 band;
@@ -147,7 +147,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
  
        if (likely(sta)) {
                if (!IS_ERR(sta))
-@@ -2150,7 +2149,7 @@ netdev_tx_t ieee80211_monitor_start_xmit
+@@ -2184,7 +2183,7 @@ netdev_tx_t ieee80211_monitor_start_xmit
                goto fail;
  
        hdr = (struct ieee80211_hdr *)(skb->data + len_rthdr);
@@ -156,7 +156,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
  
        if (skb->len < len_rthdr + hdrlen)
                goto fail;
-@@ -2368,7 +2367,7 @@ static struct sk_buff *ieee80211_build_h
+@@ -2402,7 +2401,7 @@ static struct sk_buff *ieee80211_build_h
        struct ieee80211_chanctx_conf *chanctx_conf;
        struct ieee80211_sub_if_data *ap_sdata;
        enum nl80211_band band;
@@ -165,7 +165,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
  
        if (IS_ERR(sta))
                sta = NULL;
-@@ -2588,6 +2587,9 @@ static struct sk_buff *ieee80211_build_h
+@@ -2622,6 +2621,9 @@ static struct sk_buff *ieee80211_build_h
                hdrlen += 2;
        }
  
@@ -175,7 +175,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
        /*
         * Drop unicast frames to unauthorised stations unless they are
         * EAPOL frames from the local station.
-@@ -2668,6 +2670,7 @@ static struct sk_buff *ieee80211_build_h
+@@ -2702,6 +2704,7 @@ static struct sk_buff *ieee80211_build_h
  
        skb_pull(skb, skip_header_bytes);
        head_need = hdrlen + encaps_len + meshhdrlen - skb_headroom(skb);
@@ -183,7 +183,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
  
        /*
         * So we need to modify the skb header and hence need a copy of
-@@ -2700,6 +2703,9 @@ static struct sk_buff *ieee80211_build_h
+@@ -2734,6 +2737,9 @@ static struct sk_buff *ieee80211_build_h
                memcpy(skb_push(skb, meshhdrlen), &mesh_hdr, meshhdrlen);
  #endif
  
@@ -193,7 +193,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
        if (ieee80211_is_data_qos(fc)) {
                __le16 *qos_control;
  
-@@ -2875,6 +2881,9 @@ void ieee80211_check_fast_xmit(struct st
+@@ -2909,6 +2915,9 @@ void ieee80211_check_fast_xmit(struct st
                fc |= cpu_to_le16(IEEE80211_STYPE_QOS_DATA);
        }
  
@@ -203,7 +203,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
        /* We store the key here so there's no point in using rcu_dereference()
         * but that's fine because the code that changes the pointers will call
         * this function after doing so. For a single CPU that would be enough,
-@@ -3461,7 +3470,7 @@ begin:
+@@ -3495,7 +3504,7 @@ begin:
  
                if (tx.key &&
                    (tx.key->conf.flags & IEEE80211_KEY_FLAG_GENERATE_IV))