diff options
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r-- | drivers/net/wireless/b43/b43.h | 3 | ||||
-rw-r--r-- | drivers/net/wireless/b43/dma.c | 1 | ||||
-rw-r--r-- | drivers/net/wireless/b43/xmit.c | 17 |
3 files changed, 13 insertions, 8 deletions
diff --git a/drivers/net/wireless/b43/b43.h b/drivers/net/wireless/b43/b43.h index b45731012782..beaf18d6e8a7 100644 --- a/drivers/net/wireless/b43/b43.h +++ b/drivers/net/wireless/b43/b43.h | |||
@@ -550,9 +550,6 @@ struct b43_noise_calculation { | |||
550 | 550 | ||
551 | struct b43_stats { | 551 | struct b43_stats { |
552 | u8 link_noise; | 552 | u8 link_noise; |
553 | /* Store the last TX/RX times here for updating the leds. */ | ||
554 | unsigned long last_tx; | ||
555 | unsigned long last_rx; | ||
556 | }; | 553 | }; |
557 | 554 | ||
558 | struct b43_key { | 555 | struct b43_key { |
diff --git a/drivers/net/wireless/b43/dma.c b/drivers/net/wireless/b43/dma.c index 92e1c0189a65..0cc804d0a214 100644 --- a/drivers/net/wireless/b43/dma.c +++ b/drivers/net/wireless/b43/dma.c | |||
@@ -1425,7 +1425,6 @@ void b43_dma_handle_txstatus(struct b43_wldev *dev, | |||
1425 | break; | 1425 | break; |
1426 | slot = next_slot(ring, slot); | 1426 | slot = next_slot(ring, slot); |
1427 | } | 1427 | } |
1428 | dev->stats.last_tx = jiffies; | ||
1429 | if (ring->stopped) { | 1428 | if (ring->stopped) { |
1430 | B43_WARN_ON(free_slots(ring) < TX_SLOTS_PER_FRAME); | 1429 | B43_WARN_ON(free_slots(ring) < TX_SLOTS_PER_FRAME); |
1431 | ieee80211_wake_queue(dev->wl->hw, ring->queue_prio); | 1430 | ieee80211_wake_queue(dev->wl->hw, ring->queue_prio); |
diff --git a/drivers/net/wireless/b43/xmit.c b/drivers/net/wireless/b43/xmit.c index eae9b8052658..0f53c7e5e01e 100644 --- a/drivers/net/wireless/b43/xmit.c +++ b/drivers/net/wireless/b43/xmit.c | |||
@@ -538,8 +538,14 @@ void b43_rx(struct b43_wldev *dev, struct sk_buff *skb, const void *_rxhdr) | |||
538 | chanstat = le16_to_cpu(rxhdr->channel); | 538 | chanstat = le16_to_cpu(rxhdr->channel); |
539 | phytype = chanstat & B43_RX_CHAN_PHYTYPE; | 539 | phytype = chanstat & B43_RX_CHAN_PHYTYPE; |
540 | 540 | ||
541 | if (macstat & B43_RX_MAC_FCSERR) | 541 | if (unlikely(macstat & B43_RX_MAC_FCSERR)) { |
542 | dev->wl->ieee_stats.dot11FCSErrorCount++; | 542 | dev->wl->ieee_stats.dot11FCSErrorCount++; |
543 | status.flag |= RX_FLAG_FAILED_FCS_CRC; | ||
544 | } | ||
545 | if (unlikely(phystat0 & (B43_RX_PHYST0_PLCPHCF | B43_RX_PHYST0_PLCPFV))) | ||
546 | status.flag |= RX_FLAG_FAILED_PLCP_CRC; | ||
547 | if (phystat0 & B43_RX_PHYST0_SHORTPRMBL) | ||
548 | status.flag |= RX_FLAG_SHORTPRE; | ||
543 | if (macstat & B43_RX_MAC_DECERR) { | 549 | if (macstat & B43_RX_MAC_DECERR) { |
544 | /* Decryption with the given key failed. | 550 | /* Decryption with the given key failed. |
545 | * Drop the packet. We also won't be able to decrypt it with | 551 | * Drop the packet. We also won't be able to decrypt it with |
@@ -606,8 +612,12 @@ void b43_rx(struct b43_wldev *dev, struct sk_buff *skb, const void *_rxhdr) | |||
606 | phytype == B43_PHYTYPE_A); | 612 | phytype == B43_PHYTYPE_A); |
607 | else | 613 | else |
608 | status.rate_idx = b43_plcp_get_bitrate_idx_cck(plcp); | 614 | status.rate_idx = b43_plcp_get_bitrate_idx_cck(plcp); |
609 | if (unlikely(status.rate_idx == -1)) | 615 | if (unlikely(status.rate_idx == -1)) { |
610 | goto drop; | 616 | /* PLCP seems to be corrupted. |
617 | * Drop the frame, if we are not interested in corrupted frames. */ | ||
618 | if (!(dev->wl->filter_flags & FIF_PLCPFAIL)) | ||
619 | goto drop; | ||
620 | } | ||
611 | status.antenna = !!(phystat0 & B43_RX_PHYST0_ANT); | 621 | status.antenna = !!(phystat0 & B43_RX_PHYST0_ANT); |
612 | 622 | ||
613 | /* | 623 | /* |
@@ -661,7 +671,6 @@ void b43_rx(struct b43_wldev *dev, struct sk_buff *skb, const void *_rxhdr) | |||
661 | goto drop; | 671 | goto drop; |
662 | } | 672 | } |
663 | 673 | ||
664 | dev->stats.last_rx = jiffies; | ||
665 | ieee80211_rx_irqsafe(dev->wl->hw, skb, &status); | 674 | ieee80211_rx_irqsafe(dev->wl->hw, skb, &status); |
666 | 675 | ||
667 | return; | 676 | return; |