diff options
Diffstat (limited to 'net/mac80211/mesh.c')
-rw-r--r-- | net/mac80211/mesh.c | 5 |
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); |