diff options
author | David S. Miller <davem@davemloft.net> | 2012-08-24 15:18:03 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-08-24 15:18:07 -0400 |
commit | 85c21049fc588e0a51b443fe2bad348d18f4992c (patch) | |
tree | 66d800593c25b6be792969152e2dd1fb64581206 /drivers/net/wireless/ath/carl9170/tx.c | |
parent | 2c33bb37cb69dc6d86d2ee8edd1d4814990a65fe (diff) | |
parent | f20b6213f193f455a62ef9299ceca11f5531dff8 (diff) |
Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next
John W. Linville says:
====================
This is a batch of updates intended for 3.7. The bulk of it is
mac80211 changes, including some mesh work from Thomas Pederson and
some multi-channel work from Johannes. A variety of driver updates
and other bits are scattered in there as well.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/wireless/ath/carl9170/tx.c')
-rw-r--r-- | drivers/net/wireless/ath/carl9170/tx.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/drivers/net/wireless/ath/carl9170/tx.c b/drivers/net/wireless/ath/carl9170/tx.c index 6a8681407a1d..84377cf580e0 100644 --- a/drivers/net/wireless/ath/carl9170/tx.c +++ b/drivers/net/wireless/ath/carl9170/tx.c | |||
@@ -867,14 +867,15 @@ static bool carl9170_tx_cts_check(struct ar9170 *ar, | |||
867 | return false; | 867 | return false; |
868 | } | 868 | } |
869 | 869 | ||
870 | static int carl9170_tx_prepare(struct ar9170 *ar, struct sk_buff *skb) | 870 | static int carl9170_tx_prepare(struct ar9170 *ar, |
871 | struct ieee80211_sta *sta, | ||
872 | struct sk_buff *skb) | ||
871 | { | 873 | { |
872 | struct ieee80211_hdr *hdr; | 874 | struct ieee80211_hdr *hdr; |
873 | struct _carl9170_tx_superframe *txc; | 875 | struct _carl9170_tx_superframe *txc; |
874 | struct carl9170_vif_info *cvif; | 876 | struct carl9170_vif_info *cvif; |
875 | struct ieee80211_tx_info *info; | 877 | struct ieee80211_tx_info *info; |
876 | struct ieee80211_tx_rate *txrate; | 878 | struct ieee80211_tx_rate *txrate; |
877 | struct ieee80211_sta *sta; | ||
878 | struct carl9170_tx_info *arinfo; | 879 | struct carl9170_tx_info *arinfo; |
879 | unsigned int hw_queue; | 880 | unsigned int hw_queue; |
880 | int i; | 881 | int i; |
@@ -910,8 +911,6 @@ static int carl9170_tx_prepare(struct ar9170 *ar, struct sk_buff *skb) | |||
910 | else | 911 | else |
911 | cvif = NULL; | 912 | cvif = NULL; |
912 | 913 | ||
913 | sta = info->control.sta; | ||
914 | |||
915 | txc = (void *)skb_push(skb, sizeof(*txc)); | 914 | txc = (void *)skb_push(skb, sizeof(*txc)); |
916 | memset(txc, 0, sizeof(*txc)); | 915 | memset(txc, 0, sizeof(*txc)); |
917 | 916 | ||
@@ -1457,20 +1456,21 @@ err_unlock_rcu: | |||
1457 | return false; | 1456 | return false; |
1458 | } | 1457 | } |
1459 | 1458 | ||
1460 | void carl9170_op_tx(struct ieee80211_hw *hw, struct sk_buff *skb) | 1459 | void carl9170_op_tx(struct ieee80211_hw *hw, |
1460 | struct ieee80211_tx_control *control, | ||
1461 | struct sk_buff *skb) | ||
1461 | { | 1462 | { |
1462 | struct ar9170 *ar = hw->priv; | 1463 | struct ar9170 *ar = hw->priv; |
1463 | struct ieee80211_tx_info *info; | 1464 | struct ieee80211_tx_info *info; |
1464 | struct ieee80211_sta *sta; | 1465 | struct ieee80211_sta *sta = control->sta; |
1465 | bool run; | 1466 | bool run; |
1466 | 1467 | ||
1467 | if (unlikely(!IS_STARTED(ar))) | 1468 | if (unlikely(!IS_STARTED(ar))) |
1468 | goto err_free; | 1469 | goto err_free; |
1469 | 1470 | ||
1470 | info = IEEE80211_SKB_CB(skb); | 1471 | info = IEEE80211_SKB_CB(skb); |
1471 | sta = info->control.sta; | ||
1472 | 1472 | ||
1473 | if (unlikely(carl9170_tx_prepare(ar, skb))) | 1473 | if (unlikely(carl9170_tx_prepare(ar, sta, skb))) |
1474 | goto err_free; | 1474 | goto err_free; |
1475 | 1475 | ||
1476 | carl9170_tx_accounting(ar, skb); | 1476 | carl9170_tx_accounting(ar, skb); |