Commit ffed7858 authored by Christian Lamparter's avatar Christian Lamparter Committed by John W. Linville

p54: minor fixes

This patch contains only contains a one-liner fixes and enhancements
Signed-off-by: default avatarChristian Lamparter <chunkeey@web.de>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent d131bb59
...@@ -530,6 +530,8 @@ static int p54_rx_data(struct ieee80211_hw *dev, struct sk_buff *skb) ...@@ -530,6 +530,8 @@ static int p54_rx_data(struct ieee80211_hw *dev, struct sk_buff *skb)
rx_status.noise = priv->noise; rx_status.noise = priv->noise;
/* XX correct? */ /* XX correct? */
rx_status.qual = (100 * hdr->rssi) / 127; rx_status.qual = (100 * hdr->rssi) / 127;
if (hdr->rate & 0x10)
rx_status.flag |= RX_FLAG_SHORTPRE;
rx_status.rate_idx = (dev->conf.channel->band == IEEE80211_BAND_2GHZ ? rx_status.rate_idx = (dev->conf.channel->band == IEEE80211_BAND_2GHZ ?
hdr->rate : (hdr->rate - 4)) & 0xf; hdr->rate : (hdr->rate - 4)) & 0xf;
rx_status.freq = freq; rx_status.freq = freq;
...@@ -576,7 +578,7 @@ void p54_free_skb(struct ieee80211_hw *dev, struct sk_buff *skb) ...@@ -576,7 +578,7 @@ void p54_free_skb(struct ieee80211_hw *dev, struct sk_buff *skb)
unsigned long flags; unsigned long flags;
u32 freed = 0, last_addr = priv->rx_start; u32 freed = 0, last_addr = priv->rx_start;
if (!skb || !dev) if (unlikely(!skb || !dev || !skb_queue_len(&priv->tx_queue)))
return; return;
spin_lock_irqsave(&priv->tx_queue.lock, flags); spin_lock_irqsave(&priv->tx_queue.lock, flags);
...@@ -1199,7 +1201,10 @@ static int p54_tx(struct ieee80211_hw *dev, struct sk_buff *skb) ...@@ -1199,7 +1201,10 @@ static int p54_tx(struct ieee80211_hw *dev, struct sk_buff *skb)
txhdr->key_type = 0; txhdr->key_type = 0;
txhdr->key_len = 0; txhdr->key_len = 0;
txhdr->hw_queue = queue; txhdr->hw_queue = queue;
txhdr->backlog = 32; if (current_queue)
txhdr->backlog = current_queue->len;
else
txhdr->backlog = 0;
memset(txhdr->durations, 0, sizeof(txhdr->durations)); memset(txhdr->durations, 0, sizeof(txhdr->durations));
txhdr->tx_antenna = (info->antenna_sel_tx == 0) ? txhdr->tx_antenna = (info->antenna_sel_tx == 0) ?
2 : info->antenna_sel_tx - 1; 2 : info->antenna_sel_tx - 1;
...@@ -1548,7 +1553,6 @@ static void p54_stop(struct ieee80211_hw *dev) ...@@ -1548,7 +1553,6 @@ static void p54_stop(struct ieee80211_hw *dev)
while ((skb = skb_dequeue(&priv->tx_queue))) while ((skb = skb_dequeue(&priv->tx_queue)))
kfree_skb(skb); kfree_skb(skb);
kfree(priv->cached_beacon);
priv->cached_beacon = NULL; priv->cached_beacon = NULL;
priv->stop(dev); priv->stop(dev);
priv->tsf_high32 = priv->tsf_low32 = 0; priv->tsf_high32 = priv->tsf_low32 = 0;
......
...@@ -259,7 +259,7 @@ enum p54_rx_decrypt_status { ...@@ -259,7 +259,7 @@ enum p54_rx_decrypt_status {
P54_DECRYPT_NOCKIPMIC, P54_DECRYPT_NOCKIPMIC,
P54_DECRYPT_FAIL_WEP, P54_DECRYPT_FAIL_WEP,
P54_DECRYPT_FAIL_TKIP, P54_DECRYPT_FAIL_TKIP,
P54_DECRYPT_FAIL_MICAHEL, P54_DECRYPT_FAIL_MICHAEL,
P54_DECRYPT_FAIL_CKIPKP, P54_DECRYPT_FAIL_CKIPKP,
P54_DECRYPT_FAIL_CKIPMIC, P54_DECRYPT_FAIL_CKIPMIC,
P54_DECRYPT_FAIL_AESCCMP P54_DECRYPT_FAIL_AESCCMP
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment