aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/mesh.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211/mesh.c')
-rw-r--r--net/mac80211/mesh.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/net/mac80211/mesh.c b/net/mac80211/mesh.c
index 89df62b2b689..5a74b249ba35 100644
--- a/net/mac80211/mesh.c
+++ b/net/mac80211/mesh.c
@@ -259,6 +259,9 @@ int mesh_add_meshconf_ie(struct ieee80211_sub_if_data *sdata,
259 *pos++ = WLAN_EID_MESH_CONFIG; 259 *pos++ = WLAN_EID_MESH_CONFIG;
260 *pos++ = meshconf_len; 260 *pos++ = meshconf_len;
261 261
262 /* save a pointer for quick updates in pre-tbtt */
263 ifmsh->meshconf_offset = pos - skb->data;
264
262 /* Active path selection protocol ID */ 265 /* Active path selection protocol ID */
263 *pos++ = ifmsh->mesh_pp_id; 266 *pos++ = ifmsh->mesh_pp_id;
264 /* Active path selection metric ID */ 267 /* Active path selection metric ID */
@@ -723,6 +726,8 @@ ieee80211_mesh_build_beacon(struct ieee80211_if_mesh *ifmsh)
723 726
724 bcn->tail_len = skb->len; 727 bcn->tail_len = skb->len;
725 memcpy(bcn->tail, skb->data, bcn->tail_len); 728 memcpy(bcn->tail, skb->data, bcn->tail_len);
729 bcn->meshconf = (struct ieee80211_meshconf_ie *)
730 (bcn->tail + ifmsh->meshconf_offset);
726 731
727 dev_kfree_skb(skb); 732 dev_kfree_skb(skb);
728 rcu_assign_pointer(ifmsh->beacon, bcn); 733 rcu_assign_pointer(ifmsh->beacon, bcn);