Skip to content

Commit 136a4e8

Browse files
ilanpeer2jmberg-intel
authored andcommitted
wifi: mac80211: Refactor adding association elements
Instead of always using 'sdata->u.mgd.assoc_data' have the association data be passed as an argument. This will later allow to use the same functionality for adding links to the current association. Signed-off-by: Ilan Peer <[email protected]> Reviewed-by: Johannes Berg <[email protected]> Signed-off-by: Miri Korenblit <[email protected]> Link: https://patch.msgid.link/20250102161730.191f58f2bba7.I6baa6e2989a39937234ff91d7db5ff1359a6bb30@changeid Signed-off-by: Johannes Berg <[email protected]>
1 parent 65c1c04 commit 136a4e8

File tree

1 file changed

+38
-35
lines changed

1 file changed

+38
-35
lines changed

net/mac80211/mlme.c

Lines changed: 38 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1511,23 +1511,25 @@ static size_t ieee80211_add_before_he_elems(struct sk_buff *skb,
15111511
#define PRESENT_ELEMS_MAX 8
15121512
#define PRESENT_ELEM_EXT_OFFS 0x100
15131513

1514-
static void ieee80211_assoc_add_ml_elem(struct ieee80211_sub_if_data *sdata,
1515-
struct sk_buff *skb, u16 capab,
1516-
const struct element *ext_capa,
1517-
const u16 *present_elems);
1518-
1519-
static size_t ieee80211_assoc_link_elems(struct ieee80211_sub_if_data *sdata,
1520-
struct sk_buff *skb, u16 *capab,
1521-
const struct element *ext_capa,
1522-
const u8 *extra_elems,
1523-
size_t extra_elems_len,
1524-
unsigned int link_id,
1525-
struct ieee80211_link_data *link,
1526-
u16 *present_elems)
1514+
static void
1515+
ieee80211_assoc_add_ml_elem(struct ieee80211_sub_if_data *sdata,
1516+
struct sk_buff *skb, u16 capab,
1517+
const struct element *ext_capa,
1518+
const u16 *present_elems,
1519+
struct ieee80211_mgd_assoc_data *assoc_data);
1520+
1521+
static size_t
1522+
ieee80211_add_link_elems(struct ieee80211_sub_if_data *sdata,
1523+
struct sk_buff *skb, u16 *capab,
1524+
const struct element *ext_capa,
1525+
const u8 *extra_elems,
1526+
size_t extra_elems_len,
1527+
unsigned int link_id,
1528+
struct ieee80211_link_data *link,
1529+
u16 *present_elems,
1530+
struct ieee80211_mgd_assoc_data *assoc_data)
15271531
{
15281532
enum nl80211_iftype iftype = ieee80211_vif_type_p2p(&sdata->vif);
1529-
struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
1530-
struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data;
15311533
struct cfg80211_bss *cbss = assoc_data->link[link_id].bss;
15321534
struct ieee80211_channel *chan = cbss->channel;
15331535
const struct ieee80211_sband_iftype_data *iftd;
@@ -1676,7 +1678,7 @@ static size_t ieee80211_assoc_link_elems(struct ieee80211_sub_if_data *sdata,
16761678

16771679
if (link_id == assoc_data->assoc_link_id)
16781680
ieee80211_assoc_add_ml_elem(sdata, skb, orig_capab, ext_capa,
1679-
present_elems);
1681+
present_elems, assoc_data);
16801682

16811683
/* crash if somebody gets it wrong */
16821684
present_elems = NULL;
@@ -1755,14 +1757,14 @@ static void ieee80211_add_non_inheritance_elem(struct sk_buff *skb,
17551757
*len = skb->len - skb_len - 2;
17561758
}
17571759

1758-
static void ieee80211_assoc_add_ml_elem(struct ieee80211_sub_if_data *sdata,
1759-
struct sk_buff *skb, u16 capab,
1760-
const struct element *ext_capa,
1761-
const u16 *outer_present_elems)
1760+
static void
1761+
ieee80211_assoc_add_ml_elem(struct ieee80211_sub_if_data *sdata,
1762+
struct sk_buff *skb, u16 capab,
1763+
const struct element *ext_capa,
1764+
const u16 *outer_present_elems,
1765+
struct ieee80211_mgd_assoc_data *assoc_data)
17621766
{
17631767
struct ieee80211_local *local = sdata->local;
1764-
struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
1765-
struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data;
17661768
struct ieee80211_multi_link_elem *ml_elem;
17671769
struct ieee80211_mle_basic_common_info *common;
17681770
const struct wiphy_iftype_ext_capab *ift_ext_capa;
@@ -1835,16 +1837,17 @@ static void ieee80211_assoc_add_ml_elem(struct ieee80211_sub_if_data *sdata,
18351837
* (if applicable) are skipped. So we only have
18361838
* the capability field (remember the position and fill
18371839
* later), followed by the elements added below by
1838-
* calling ieee80211_assoc_link_elems().
1840+
* calling ieee80211_add_link_elems().
18391841
*/
18401842
capab_pos = skb_put(skb, 2);
18411843

1842-
extra_used = ieee80211_assoc_link_elems(sdata, skb, &capab,
1843-
ext_capa,
1844-
extra_elems,
1845-
extra_elems_len,
1846-
link_id, NULL,
1847-
link_present_elems);
1844+
extra_used = ieee80211_add_link_elems(sdata, skb, &capab,
1845+
ext_capa,
1846+
extra_elems,
1847+
extra_elems_len,
1848+
link_id, NULL,
1849+
link_present_elems,
1850+
assoc_data);
18481851
if (extra_elems)
18491852
skb_put_data(skb, extra_elems + extra_used,
18501853
extra_elems_len - extra_used);
@@ -2031,12 +2034,12 @@ static int ieee80211_send_assoc(struct ieee80211_sub_if_data *sdata)
20312034

20322035
/* add the elements for the assoc (main) link */
20332036
link_capab = capab;
2034-
offset = ieee80211_assoc_link_elems(sdata, skb, &link_capab,
2035-
ext_capa,
2036-
assoc_data->ie,
2037-
assoc_data->ie_len,
2038-
assoc_data->assoc_link_id, link,
2039-
present_elems);
2037+
offset = ieee80211_add_link_elems(sdata, skb, &link_capab,
2038+
ext_capa,
2039+
assoc_data->ie,
2040+
assoc_data->ie_len,
2041+
assoc_data->assoc_link_id, link,
2042+
present_elems, assoc_data);
20402043
put_unaligned_le16(link_capab, capab_pos);
20412044

20422045
/* if present, add any custom non-vendor IEs */

0 commit comments

Comments
 (0)