]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ath5k: drop warning on jumbo frames
authorLuis R. Rodriguez <lrodriguez@atheros.com>
Mon, 10 May 2010 19:26:27 +0000 (15:26 -0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 2 Aug 2010 17:20:45 +0000 (10:20 -0700)
commit 9637e516d16a58b13f6098cfe899e22963132be3 upstream.

Jumbo frames are not supported, and if they are seen it is likely
a bogus frame so just silently discard them instead of warning on
them all time. Also, instead of dropping them immediately though
move the check *after* we check for all sort of frame errors. This
should enable us to discard these frames if the hardware picks
other bogus items first. Lets see if we still get those jumbo
counters increasing still with this.

Jumbo frames would happen if we tell hardware we can support
a small 802.11 chunks of DMA'd frame, hardware would split RX'd
frames into parts and we'd have to reconstruct them in software.
This is done with USB due to the bulk size but with ath5k we
already provide a good limit to hardware and this should not be
happening.

This is reported quite often and if it fills the logs then this
needs to be addressed and to avoid spurious reports.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/net/wireless/ath/ath5k/base.c

index cefbfb9764797bd8670a58f6135118ce970d76e1..7ee61d426dbb5dedb31c9e3effa6057c898490e9 100644 (file)
@@ -1818,11 +1818,6 @@ ath5k_tasklet_rx(unsigned long data)
                        return;
                }
 
-               if (unlikely(rs.rs_more)) {
-                       ATH5K_WARN(sc, "unsupported jumbo\n");
-                       goto next;
-               }
-
                if (unlikely(rs.rs_status)) {
                        if (rs.rs_status & AR5K_RXERR_PHY)
                                goto next;
@@ -1852,6 +1847,8 @@ ath5k_tasklet_rx(unsigned long data)
                                        sc->opmode != NL80211_IFTYPE_MONITOR)
                                goto next;
                }
+               if (unlikely(rs.rs_more))
+                       goto next;
 accept:
                next_skb = ath5k_rx_skb_alloc(sc, &next_skb_addr);