diff options
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt2x00queue.c')
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00queue.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.c b/drivers/net/wireless/rt2x00/rt2x00queue.c index 19c10629c767..5cf4c2f59260 100644 --- a/drivers/net/wireless/rt2x00/rt2x00queue.c +++ b/drivers/net/wireless/rt2x00/rt2x00queue.c | |||
@@ -33,8 +33,10 @@ void rt2x00queue_create_tx_descriptor(struct queue_entry *entry, | |||
33 | struct txentry_desc *txdesc, | 33 | struct txentry_desc *txdesc, |
34 | struct ieee80211_tx_control *control) | 34 | struct ieee80211_tx_control *control) |
35 | { | 35 | { |
36 | struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev; | ||
36 | struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)entry->skb->data; | 37 | struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)entry->skb->data; |
37 | struct ieee80211_rate *rate = control->tx_rate; | 38 | struct ieee80211_rate *rate = |
39 | ieee80211_get_tx_rate(rt2x00dev->hw, control); | ||
38 | const struct rt2x00_rate *hwrate; | 40 | const struct rt2x00_rate *hwrate; |
39 | unsigned int data_length; | 41 | unsigned int data_length; |
40 | unsigned int duration; | 42 | unsigned int duration; |
@@ -77,8 +79,9 @@ void rt2x00queue_create_tx_descriptor(struct queue_entry *entry, | |||
77 | __set_bit(ENTRY_TXD_CTS_FRAME, &txdesc->flags); | 79 | __set_bit(ENTRY_TXD_CTS_FRAME, &txdesc->flags); |
78 | __clear_bit(ENTRY_TXD_ACK, &txdesc->flags); | 80 | __clear_bit(ENTRY_TXD_ACK, &txdesc->flags); |
79 | } | 81 | } |
80 | if (control->rts_cts_rate) | 82 | if (control->rts_cts_rate_idx >= 0) |
81 | rate = control->rts_cts_rate; | 83 | rate = |
84 | ieee80211_get_rts_cts_rate(rt2x00dev->hw, control); | ||
82 | } | 85 | } |
83 | 86 | ||
84 | /* | 87 | /* |