diff options
Diffstat (limited to 'net/mac80211')
-rw-r--r-- | net/mac80211/agg-tx.c | 14 | ||||
-rw-r--r-- | net/mac80211/ieee80211_i.h | 2 | ||||
-rw-r--r-- | net/mac80211/iface.c | 4 | ||||
-rw-r--r-- | net/mac80211/mesh_pathtbl.c | 2 | ||||
-rw-r--r-- | net/mac80211/rc80211_minstrel_ht.c | 2 | ||||
-rw-r--r-- | net/mac80211/rc80211_pid.h | 2 | ||||
-rw-r--r-- | net/mac80211/rx.c | 2 | ||||
-rw-r--r-- | net/mac80211/sta_info.c | 4 | ||||
-rw-r--r-- | net/mac80211/tx.c | 4 | ||||
-rw-r--r-- | net/mac80211/work.c | 10 |
10 files changed, 15 insertions, 31 deletions
diff --git a/net/mac80211/agg-tx.c b/net/mac80211/agg-tx.c index cd5125f77cc5..c8be8eff70da 100644 --- a/net/mac80211/agg-tx.c +++ b/net/mac80211/agg-tx.c | |||
@@ -144,14 +144,6 @@ void ieee80211_assign_tid_tx(struct sta_info *sta, int tid, | |||
144 | rcu_assign_pointer(sta->ampdu_mlme.tid_tx[tid], tid_tx); | 144 | rcu_assign_pointer(sta->ampdu_mlme.tid_tx[tid], tid_tx); |
145 | } | 145 | } |
146 | 146 | ||
147 | static void kfree_tid_tx(struct rcu_head *rcu_head) | ||
148 | { | ||
149 | struct tid_ampdu_tx *tid_tx = | ||
150 | container_of(rcu_head, struct tid_ampdu_tx, rcu_head); | ||
151 | |||
152 | kfree(tid_tx); | ||
153 | } | ||
154 | |||
155 | int ___ieee80211_stop_tx_ba_session(struct sta_info *sta, u16 tid, | 147 | int ___ieee80211_stop_tx_ba_session(struct sta_info *sta, u16 tid, |
156 | enum ieee80211_back_parties initiator, | 148 | enum ieee80211_back_parties initiator, |
157 | bool tx) | 149 | bool tx) |
@@ -174,7 +166,7 @@ int ___ieee80211_stop_tx_ba_session(struct sta_info *sta, u16 tid, | |||
174 | /* not even started yet! */ | 166 | /* not even started yet! */ |
175 | ieee80211_assign_tid_tx(sta, tid, NULL); | 167 | ieee80211_assign_tid_tx(sta, tid, NULL); |
176 | spin_unlock_bh(&sta->lock); | 168 | spin_unlock_bh(&sta->lock); |
177 | call_rcu(&tid_tx->rcu_head, kfree_tid_tx); | 169 | kfree_rcu(tid_tx, rcu_head); |
178 | return 0; | 170 | return 0; |
179 | } | 171 | } |
180 | 172 | ||
@@ -333,7 +325,7 @@ void ieee80211_tx_ba_session_handle_start(struct sta_info *sta, int tid) | |||
333 | spin_unlock_bh(&sta->lock); | 325 | spin_unlock_bh(&sta->lock); |
334 | 326 | ||
335 | ieee80211_wake_queue_agg(local, tid); | 327 | ieee80211_wake_queue_agg(local, tid); |
336 | call_rcu(&tid_tx->rcu_head, kfree_tid_tx); | 328 | kfree_rcu(tid_tx, rcu_head); |
337 | return; | 329 | return; |
338 | } | 330 | } |
339 | 331 | ||
@@ -718,7 +710,7 @@ void ieee80211_stop_tx_ba_cb(struct ieee80211_vif *vif, u8 *ra, u8 tid) | |||
718 | 710 | ||
719 | ieee80211_agg_splice_finish(local, tid); | 711 | ieee80211_agg_splice_finish(local, tid); |
720 | 712 | ||
721 | call_rcu(&tid_tx->rcu_head, kfree_tid_tx); | 713 | kfree_rcu(tid_tx, rcu_head); |
722 | 714 | ||
723 | unlock_sta: | 715 | unlock_sta: |
724 | spin_unlock_bh(&sta->lock); | 716 | spin_unlock_bh(&sta->lock); |
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h index ed755889645d..2025af52b195 100644 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h | |||
@@ -97,7 +97,7 @@ struct ieee80211_bss { | |||
97 | size_t supp_rates_len; | 97 | size_t supp_rates_len; |
98 | 98 | ||
99 | /* | 99 | /* |
100 | * During assocation, we save an ERP value from a probe response so | 100 | * During association, we save an ERP value from a probe response so |
101 | * that we can feed ERP info to the driver when handling the | 101 | * that we can feed ERP info to the driver when handling the |
102 | * association completes. these fields probably won't be up-to-date | 102 | * association completes. these fields probably won't be up-to-date |
103 | * otherwise, you probably don't want to use them. | 103 | * otherwise, you probably don't want to use them. |
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c index dee30aea9ab3..49d4f869e0bc 100644 --- a/net/mac80211/iface.c +++ b/net/mac80211/iface.c | |||
@@ -1145,10 +1145,6 @@ int ieee80211_if_add(struct ieee80211_local *local, const char *name, | |||
1145 | + IEEE80211_ENCRYPT_HEADROOM; | 1145 | + IEEE80211_ENCRYPT_HEADROOM; |
1146 | ndev->needed_tailroom = IEEE80211_ENCRYPT_TAILROOM; | 1146 | ndev->needed_tailroom = IEEE80211_ENCRYPT_TAILROOM; |
1147 | 1147 | ||
1148 | ret = dev_alloc_name(ndev, ndev->name); | ||
1149 | if (ret < 0) | ||
1150 | goto fail; | ||
1151 | |||
1152 | ieee80211_assign_perm_addr(local, ndev, type); | 1148 | ieee80211_assign_perm_addr(local, ndev, type); |
1153 | memcpy(ndev->dev_addr, ndev->perm_addr, ETH_ALEN); | 1149 | memcpy(ndev->dev_addr, ndev->perm_addr, ETH_ALEN); |
1154 | SET_NETDEV_DEV(ndev, wiphy_dev(local->hw.wiphy)); | 1150 | SET_NETDEV_DEV(ndev, wiphy_dev(local->hw.wiphy)); |
diff --git a/net/mac80211/mesh_pathtbl.c b/net/mac80211/mesh_pathtbl.c index 51f6fe86d890..0d2faacc3e87 100644 --- a/net/mac80211/mesh_pathtbl.c +++ b/net/mac80211/mesh_pathtbl.c | |||
@@ -722,7 +722,7 @@ void mesh_path_discard_frame(struct sk_buff *skb, | |||
722 | * | 722 | * |
723 | * @mpath: mesh path whose queue has to be freed | 723 | * @mpath: mesh path whose queue has to be freed |
724 | * | 724 | * |
725 | * Locking: the function must me called withing a rcu_read_lock region | 725 | * Locking: the function must me called within a rcu_read_lock region |
726 | */ | 726 | */ |
727 | void mesh_path_flush_pending(struct mesh_path *mpath) | 727 | void mesh_path_flush_pending(struct mesh_path *mpath) |
728 | { | 728 | { |
diff --git a/net/mac80211/rc80211_minstrel_ht.c b/net/mac80211/rc80211_minstrel_ht.c index 3d09c58938e2..333b5118be6d 100644 --- a/net/mac80211/rc80211_minstrel_ht.c +++ b/net/mac80211/rc80211_minstrel_ht.c | |||
@@ -259,7 +259,7 @@ minstrel_ht_update_stats(struct minstrel_priv *mp, struct minstrel_ht_sta *mi) | |||
259 | } | 259 | } |
260 | } | 260 | } |
261 | 261 | ||
262 | /* try to sample up to half of the availble rates during each interval */ | 262 | /* try to sample up to half of the available rates during each interval */ |
263 | mi->sample_count *= 4; | 263 | mi->sample_count *= 4; |
264 | 264 | ||
265 | cur_prob = 0; | 265 | cur_prob = 0; |
diff --git a/net/mac80211/rc80211_pid.h b/net/mac80211/rc80211_pid.h index 6510f8ee738e..19111c7bf454 100644 --- a/net/mac80211/rc80211_pid.h +++ b/net/mac80211/rc80211_pid.h | |||
@@ -77,7 +77,7 @@ union rc_pid_event_data { | |||
77 | }; | 77 | }; |
78 | 78 | ||
79 | struct rc_pid_event { | 79 | struct rc_pid_event { |
80 | /* The time when the event occured */ | 80 | /* The time when the event occurred */ |
81 | unsigned long timestamp; | 81 | unsigned long timestamp; |
82 | 82 | ||
83 | /* Event ID number */ | 83 | /* Event ID number */ |
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index 78c72a41d864..7fa8c6be7bf0 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c | |||
@@ -382,7 +382,7 @@ static void ieee80211_parse_qos(struct ieee80211_rx_data *rx) | |||
382 | * specs were sane enough this time around to require padding each A-MSDU | 382 | * specs were sane enough this time around to require padding each A-MSDU |
383 | * subframe to a length that is a multiple of four. | 383 | * subframe to a length that is a multiple of four. |
384 | * | 384 | * |
385 | * Padding like Atheros hardware adds which is inbetween the 802.11 header and | 385 | * Padding like Atheros hardware adds which is between the 802.11 header and |
386 | * the payload is not supported, the driver is required to move the 802.11 | 386 | * the payload is not supported, the driver is required to move the 802.11 |
387 | * header to be directly in front of the payload in that case. | 387 | * header to be directly in front of the payload in that case. |
388 | */ | 388 | */ |
diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c index 4a15f9603562..b83870bf60fa 100644 --- a/net/mac80211/sta_info.c +++ b/net/mac80211/sta_info.c | |||
@@ -47,9 +47,9 @@ | |||
47 | * Station entries are added by mac80211 when you establish a link with a | 47 | * Station entries are added by mac80211 when you establish a link with a |
48 | * peer. This means different things for the different type of interfaces | 48 | * peer. This means different things for the different type of interfaces |
49 | * we support. For a regular station this mean we add the AP sta when we | 49 | * we support. For a regular station this mean we add the AP sta when we |
50 | * receive an assocation response from the AP. For IBSS this occurs when | 50 | * receive an association response from the AP. For IBSS this occurs when |
51 | * get to know about a peer on the same IBSS. For WDS we add the sta for | 51 | * get to know about a peer on the same IBSS. For WDS we add the sta for |
52 | * the peer imediately upon device open. When using AP mode we add stations | 52 | * the peer immediately upon device open. When using AP mode we add stations |
53 | * for each respective station upon request from userspace through nl80211. | 53 | * for each respective station upon request from userspace through nl80211. |
54 | * | 54 | * |
55 | * In order to remove a STA info structure, various sta_info_destroy_*() | 55 | * In order to remove a STA info structure, various sta_info_destroy_*() |
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index 6eeaaa2bbafe..64e0f7587e6d 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c | |||
@@ -237,6 +237,10 @@ ieee80211_tx_h_dynamic_ps(struct ieee80211_tx_data *tx) | |||
237 | &local->dynamic_ps_disable_work); | 237 | &local->dynamic_ps_disable_work); |
238 | } | 238 | } |
239 | 239 | ||
240 | /* Don't restart the timer if we're not disassociated */ | ||
241 | if (!ifmgd->associated) | ||
242 | return TX_CONTINUE; | ||
243 | |||
240 | mod_timer(&local->dynamic_ps_timer, jiffies + | 244 | mod_timer(&local->dynamic_ps_timer, jiffies + |
241 | msecs_to_jiffies(local->hw.conf.dynamic_ps_timeout)); | 245 | msecs_to_jiffies(local->hw.conf.dynamic_ps_timeout)); |
242 | 246 | ||
diff --git a/net/mac80211/work.c b/net/mac80211/work.c index a94b312dbfac..d2e7f0e86677 100644 --- a/net/mac80211/work.c +++ b/net/mac80211/work.c | |||
@@ -65,17 +65,9 @@ static void run_again(struct ieee80211_local *local, | |||
65 | mod_timer(&local->work_timer, timeout); | 65 | mod_timer(&local->work_timer, timeout); |
66 | } | 66 | } |
67 | 67 | ||
68 | static void work_free_rcu(struct rcu_head *head) | ||
69 | { | ||
70 | struct ieee80211_work *wk = | ||
71 | container_of(head, struct ieee80211_work, rcu_head); | ||
72 | |||
73 | kfree(wk); | ||
74 | } | ||
75 | |||
76 | void free_work(struct ieee80211_work *wk) | 68 | void free_work(struct ieee80211_work *wk) |
77 | { | 69 | { |
78 | call_rcu(&wk->rcu_head, work_free_rcu); | 70 | kfree_rcu(wk, rcu_head); |
79 | } | 71 | } |
80 | 72 | ||
81 | static int ieee80211_compatible_rates(const u8 *supp_rates, int supp_rates_len, | 73 | static int ieee80211_compatible_rates(const u8 *supp_rates, int supp_rates_len, |