p54: completely ignore rx'd frames with bad FCS
authorChristian Lamparter <chunkeey@web.de>
Thu, 5 Mar 2009 20:28:57 +0000 (21:28 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 16 Mar 2009 22:09:35 +0000 (18:09 -0400)
Passing frames with a bad FCS to the user is an optional feature.
However it doesn't work reliable and strangely not in the native monitor mode?!

Signed-off-by: Christian Lamparter <chunkeey@web.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/p54/p54common.c

index b6905357a2e4339022d14e832299375a9d54231c..0a989834b70d38fec2bc5cbe1be70190f7f56b23 100644 (file)
@@ -738,10 +738,7 @@ static int p54_rx_data(struct ieee80211_hw *dev, struct sk_buff *skb)
                return 0;
 
        if (!(hdr->flags & cpu_to_le16(P54_HDR_FLAG_DATA_IN_FCS_GOOD))) {
-               if (priv->filter_flags & FIF_FCSFAIL)
-                       rx_status.flag |= RX_FLAG_FAILED_FCS_CRC;
-               else
-                       return 0;
+               return 0;
        }
 
        if (hdr->decrypt_status == P54_DECRYPT_OK)
@@ -2220,9 +2217,7 @@ static void p54_configure_filter(struct ieee80211_hw *dev,
        struct p54_common *priv = dev->priv;
 
        *total_flags &= FIF_PROMISC_IN_BSS |
-                       FIF_OTHER_BSS |
-                       (*total_flags & FIF_PROMISC_IN_BSS ?
-                               FIF_FCSFAIL : 0);
+                       FIF_OTHER_BSS;
 
        priv->filter_flags = *total_flags;