diff options
author | Thomas Pedersen <thomas@cozybit.com> | 2012-08-03 15:21:34 -0400 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2012-08-03 15:34:25 -0400 |
commit | e7570dfb635b0c89570852002c9f85dd1cf82ba1 (patch) | |
tree | 9a6948d49108dffc08953a862902f341d81b4f35 /net/mac80211/mesh_plink.c | |
parent | 3e17f2be31f354fe03e1732bc527a31ff3dd3bb9 (diff) |
mac80211: don't request ack for peering close
It doesn't make a lot of sense to wait for an ack in response to a
peering close frame since either peer in this exchange could be going
down.
Signed-off-by: Thomas Pedersen <thomas@cozybit.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/mesh_plink.c')
-rw-r--r-- | net/mac80211/mesh_plink.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/net/mac80211/mesh_plink.c b/net/mac80211/mesh_plink.c index 985b37f7455d..bad5126c8483 100644 --- a/net/mac80211/mesh_plink.c +++ b/net/mac80211/mesh_plink.c | |||
@@ -217,6 +217,7 @@ static int mesh_plink_frame_tx(struct ieee80211_sub_if_data *sdata, | |||
217 | u8 *da, __le16 llid, __le16 plid, __le16 reason) { | 217 | u8 *da, __le16 llid, __le16 plid, __le16 reason) { |
218 | struct ieee80211_local *local = sdata->local; | 218 | struct ieee80211_local *local = sdata->local; |
219 | struct sk_buff *skb; | 219 | struct sk_buff *skb; |
220 | struct ieee80211_tx_info *info; | ||
220 | struct ieee80211_mgmt *mgmt; | 221 | struct ieee80211_mgmt *mgmt; |
221 | bool include_plid = false; | 222 | bool include_plid = false; |
222 | u16 peering_proto = 0; | 223 | u16 peering_proto = 0; |
@@ -238,6 +239,7 @@ static int mesh_plink_frame_tx(struct ieee80211_sub_if_data *sdata, | |||
238 | sdata->u.mesh.ie_len); | 239 | sdata->u.mesh.ie_len); |
239 | if (!skb) | 240 | if (!skb) |
240 | return -1; | 241 | return -1; |
242 | info = IEEE80211_SKB_CB(skb); | ||
241 | skb_reserve(skb, local->tx_headroom); | 243 | skb_reserve(skb, local->tx_headroom); |
242 | mgmt = (struct ieee80211_mgmt *) skb_put(skb, hdr_len); | 244 | mgmt = (struct ieee80211_mgmt *) skb_put(skb, hdr_len); |
243 | memset(mgmt, 0, hdr_len); | 245 | memset(mgmt, 0, hdr_len); |
@@ -267,6 +269,7 @@ static int mesh_plink_frame_tx(struct ieee80211_sub_if_data *sdata, | |||
267 | mesh_add_meshconf_ie(skb, sdata)) | 269 | mesh_add_meshconf_ie(skb, sdata)) |
268 | return -1; | 270 | return -1; |
269 | } else { /* WLAN_SP_MESH_PEERING_CLOSE */ | 271 | } else { /* WLAN_SP_MESH_PEERING_CLOSE */ |
272 | info->flags |= IEEE80211_TX_CTL_NO_ACK; | ||
270 | if (mesh_add_meshid_ie(skb, sdata)) | 273 | if (mesh_add_meshid_ie(skb, sdata)) |
271 | return -1; | 274 | return -1; |
272 | } | 275 | } |