aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2012-05-07 23:35:40 -0400
committerDavid S. Miller <davem@davemloft.net>2012-05-07 23:35:40 -0400
commit0d6c4a2e4641bbc556dd74d3aa158c413a972492 (patch)
treeda944af17682659bb433dc2282dcb48380c14cd1 /net/mac80211
parent6e06c0e2347ec79d0bd5702b2438fe883f784545 (diff)
parent1c430a727fa512500a422ffe4712166c550ea06a (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts: drivers/net/ethernet/intel/e1000e/param.c drivers/net/wireless/iwlwifi/iwl-agn-rx.c drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c drivers/net/wireless/iwlwifi/iwl-trans.h Resolved the iwlwifi conflict with mainline using 3-way diff posted by John Linville and Stephen Rothwell. In 'net' we added a bug fix to make iwlwifi report a more accurate skb->truesize but this conflicted with RX path changes that happened meanwhile in net-next. In e1000e a conflict arose in the validation code for settings of adapter->itr. 'net-next' had more sophisticated logic so that logic was used. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/mac80211')
-rw-r--r--net/mac80211/ieee80211_i.h2
-rw-r--r--net/mac80211/iface.c4
-rw-r--r--net/mac80211/mlme.c2
-rw-r--r--net/mac80211/tx.c3
4 files changed, 6 insertions, 5 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index 851fb7dc893c..6cd89d414f22 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -1234,7 +1234,7 @@ void ieee80211_sta_rx_queued_mgmt(struct ieee80211_sub_if_data *sdata,
1234 struct sk_buff *skb); 1234 struct sk_buff *skb);
1235void ieee80211_sta_reset_beacon_monitor(struct ieee80211_sub_if_data *sdata); 1235void ieee80211_sta_reset_beacon_monitor(struct ieee80211_sub_if_data *sdata);
1236void ieee80211_sta_reset_conn_monitor(struct ieee80211_sub_if_data *sdata); 1236void ieee80211_sta_reset_conn_monitor(struct ieee80211_sub_if_data *sdata);
1237void ieee80211_mgd_teardown(struct ieee80211_sub_if_data *sdata); 1237void ieee80211_mgd_stop(struct ieee80211_sub_if_data *sdata);
1238 1238
1239/* IBSS code */ 1239/* IBSS code */
1240void ieee80211_ibss_notify_scan_completed(struct ieee80211_local *local); 1240void ieee80211_ibss_notify_scan_completed(struct ieee80211_local *local);
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
index ba86978dd561..3e05a8bfddf0 100644
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -606,6 +606,8 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
606 /* free all potentially still buffered bcast frames */ 606 /* free all potentially still buffered bcast frames */
607 local->total_ps_buffered -= skb_queue_len(&sdata->u.ap.ps_bc_buf); 607 local->total_ps_buffered -= skb_queue_len(&sdata->u.ap.ps_bc_buf);
608 skb_queue_purge(&sdata->u.ap.ps_bc_buf); 608 skb_queue_purge(&sdata->u.ap.ps_bc_buf);
609 } else if (sdata->vif.type == NL80211_IFTYPE_STATION) {
610 ieee80211_mgd_stop(sdata);
609 } 611 }
610 612
611 if (going_down) 613 if (going_down)
@@ -768,8 +770,6 @@ static void ieee80211_teardown_sdata(struct net_device *dev)
768 770
769 if (ieee80211_vif_is_mesh(&sdata->vif)) 771 if (ieee80211_vif_is_mesh(&sdata->vif))
770 mesh_rmc_free(sdata); 772 mesh_rmc_free(sdata);
771 else if (sdata->vif.type == NL80211_IFTYPE_STATION)
772 ieee80211_mgd_teardown(sdata);
773 773
774 flushed = sta_info_flush(local, sdata); 774 flushed = sta_info_flush(local, sdata);
775 WARN_ON(flushed); 775 WARN_ON(flushed);
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index c8836fa7d627..03f93f958fa4 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -3523,7 +3523,7 @@ int ieee80211_mgd_disassoc(struct ieee80211_sub_if_data *sdata,
3523 return 0; 3523 return 0;
3524} 3524}
3525 3525
3526void ieee80211_mgd_teardown(struct ieee80211_sub_if_data *sdata) 3526void ieee80211_mgd_stop(struct ieee80211_sub_if_data *sdata)
3527{ 3527{
3528 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; 3528 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
3529 3529
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 44001c7e0e58..d67d36f57d78 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -1159,7 +1159,8 @@ ieee80211_tx_prepare(struct ieee80211_sub_if_data *sdata,
1159 tx->sta = rcu_dereference(sdata->u.vlan.sta); 1159 tx->sta = rcu_dereference(sdata->u.vlan.sta);
1160 if (!tx->sta && sdata->dev->ieee80211_ptr->use_4addr) 1160 if (!tx->sta && sdata->dev->ieee80211_ptr->use_4addr)
1161 return TX_DROP; 1161 return TX_DROP;
1162 } else if (info->flags & IEEE80211_TX_CTL_INJECTED) { 1162 } else if (info->flags & IEEE80211_TX_CTL_INJECTED ||
1163 tx->sdata->control_port_protocol == tx->skb->protocol) {
1163 tx->sta = sta_info_get_bss(sdata, hdr->addr1); 1164 tx->sta = sta_info_get_bss(sdata, hdr->addr1);
1164 } 1165 }
1165 if (!tx->sta) 1166 if (!tx->sta)