diff options
author | David S. Miller <davem@davemloft.net> | 2012-05-07 23:35:40 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-05-07 23:35:40 -0400 |
commit | 0d6c4a2e4641bbc556dd74d3aa158c413a972492 (patch) | |
tree | da944af17682659bb433dc2282dcb48380c14cd1 /net/mac80211 | |
parent | 6e06c0e2347ec79d0bd5702b2438fe883f784545 (diff) | |
parent | 1c430a727fa512500a422ffe4712166c550ea06a (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.h | 2 | ||||
-rw-r--r-- | net/mac80211/iface.c | 4 | ||||
-rw-r--r-- | net/mac80211/mlme.c | 2 | ||||
-rw-r--r-- | net/mac80211/tx.c | 3 |
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); |
1235 | void ieee80211_sta_reset_beacon_monitor(struct ieee80211_sub_if_data *sdata); | 1235 | void ieee80211_sta_reset_beacon_monitor(struct ieee80211_sub_if_data *sdata); |
1236 | void ieee80211_sta_reset_conn_monitor(struct ieee80211_sub_if_data *sdata); | 1236 | void ieee80211_sta_reset_conn_monitor(struct ieee80211_sub_if_data *sdata); |
1237 | void ieee80211_mgd_teardown(struct ieee80211_sub_if_data *sdata); | 1237 | void ieee80211_mgd_stop(struct ieee80211_sub_if_data *sdata); |
1238 | 1238 | ||
1239 | /* IBSS code */ | 1239 | /* IBSS code */ |
1240 | void ieee80211_ibss_notify_scan_completed(struct ieee80211_local *local); | 1240 | void 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 | ||
3526 | void ieee80211_mgd_teardown(struct ieee80211_sub_if_data *sdata) | 3526 | void 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) |