e44aac5cba9787527b2888de14eb9cfe7b07b472
[openwrt/staging/dedeckeh.git] / package / kernel / mac80211 / patches / subsys / 347-mac80211-move-CRC-into-struct-ieee802_11_elems.patch
1 From: Johannes Berg <johannes.berg@intel.com>
2 Date: Mon, 20 Sep 2021 15:40:08 +0200
3 Subject: [PATCH] mac80211: move CRC into struct ieee802_11_elems
4
5 commit c6e37ed498f958254b5459253199e816b6bfc52f upstream.
6
7 We're currently returning this value, but to prepare for
8 returning the allocated structure, move it into there.
9
10 Link: https://lore.kernel.org/r/20210920154009.479b8ebf999d.If0d4ba75ee38998dc3eeae25058aa748efcb2fc9@changeid
11 Signed-off-by: Johannes Berg <johannes.berg@intel.com>
12 ---
13
14 --- a/net/mac80211/ieee80211_i.h
15 +++ b/net/mac80211/ieee80211_i.h
16 @@ -1530,6 +1530,7 @@ struct ieee80211_csa_ie {
17 struct ieee802_11_elems {
18 const u8 *ie_start;
19 size_t total_len;
20 + u32 crc;
21
22 /* pointers to IEs */
23 const struct ieee80211_tdls_lnkie *lnk_id;
24 @@ -2089,10 +2090,10 @@ static inline void ieee80211_tx_skb(stru
25 ieee80211_tx_skb_tid(sdata, skb, 7);
26 }
27
28 -u32 ieee802_11_parse_elems_crc(const u8 *start, size_t len, bool action,
29 - struct ieee802_11_elems *elems,
30 - u64 filter, u32 crc, u8 *transmitter_bssid,
31 - u8 *bss_bssid);
32 +void ieee802_11_parse_elems_crc(const u8 *start, size_t len, bool action,
33 + struct ieee802_11_elems *elems,
34 + u64 filter, u32 crc, u8 *transmitter_bssid,
35 + u8 *bss_bssid);
36 static inline void ieee802_11_parse_elems(const u8 *start, size_t len,
37 bool action,
38 struct ieee802_11_elems *elems,
39 --- a/net/mac80211/mlme.c
40 +++ b/net/mac80211/mlme.c
41 @@ -4102,10 +4102,11 @@ static void ieee80211_rx_mgmt_beacon(str
42 */
43 if (!ieee80211_is_s1g_beacon(hdr->frame_control))
44 ncrc = crc32_be(0, (void *)&mgmt->u.beacon.beacon_int, 4);
45 - ncrc = ieee802_11_parse_elems_crc(variable,
46 - len - baselen, false, &elems,
47 - care_about_ies, ncrc,
48 - mgmt->bssid, bssid);
49 + ieee802_11_parse_elems_crc(variable,
50 + len - baselen, false, &elems,
51 + care_about_ies, ncrc,
52 + mgmt->bssid, bssid);
53 + ncrc = elems.crc;
54
55 if (ieee80211_hw_check(&local->hw, PS_NULLFUNC_STACK) &&
56 ieee80211_check_tim(elems.tim, elems.tim_len, bss_conf->aid)) {
57 --- a/net/mac80211/util.c
58 +++ b/net/mac80211/util.c
59 @@ -1469,10 +1469,10 @@ static size_t ieee802_11_find_bssid_prof
60 return found ? profile_len : 0;
61 }
62
63 -u32 ieee802_11_parse_elems_crc(const u8 *start, size_t len, bool action,
64 - struct ieee802_11_elems *elems,
65 - u64 filter, u32 crc, u8 *transmitter_bssid,
66 - u8 *bss_bssid)
67 +void ieee802_11_parse_elems_crc(const u8 *start, size_t len, bool action,
68 + struct ieee802_11_elems *elems,
69 + u64 filter, u32 crc, u8 *transmitter_bssid,
70 + u8 *bss_bssid)
71 {
72 const struct element *non_inherit = NULL;
73 u8 *nontransmitted_profile;
74 @@ -1524,7 +1524,7 @@ u32 ieee802_11_parse_elems_crc(const u8
75
76 kfree(nontransmitted_profile);
77
78 - return crc;
79 + elems->crc = crc;
80 }
81
82 void ieee80211_regulatory_limit_wmm_params(struct ieee80211_sub_if_data *sdata,