recv.c (ea51e5040e24eefe44d70bc654a237ca1f0225b0) | recv.c (f88373fa47f3ce6590fdfaa742d0ddacc2ae017f) |
---|---|
1/* 2 * Copyright (c) 2008-2011 Atheros Communications Inc. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES --- 808 unchanged lines hidden (view full) --- 817 is_mc = !!is_multicast_ether_addr(hdr->addr1); 818 is_valid_tkip = rx_stats->rs_keyix != ATH9K_RXKEYIX_INVALID && 819 test_bit(rx_stats->rs_keyix, common->tkip_keymap); 820 strip_mic = is_valid_tkip && ieee80211_is_data(fc) && 821 !(rx_stats->rs_status & 822 (ATH9K_RXERR_DECRYPT | ATH9K_RXERR_CRC | ATH9K_RXERR_MIC | 823 ATH9K_RXERR_KEYMISS)); 824 | 1/* 2 * Copyright (c) 2008-2011 Atheros Communications Inc. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES --- 808 unchanged lines hidden (view full) --- 817 is_mc = !!is_multicast_ether_addr(hdr->addr1); 818 is_valid_tkip = rx_stats->rs_keyix != ATH9K_RXKEYIX_INVALID && 819 test_bit(rx_stats->rs_keyix, common->tkip_keymap); 820 strip_mic = is_valid_tkip && ieee80211_is_data(fc) && 821 !(rx_stats->rs_status & 822 (ATH9K_RXERR_DECRYPT | ATH9K_RXERR_CRC | ATH9K_RXERR_MIC | 823 ATH9K_RXERR_KEYMISS)); 824 |
825 /* 826 * Key miss events are only relevant for pairwise keys where the 827 * descriptor does contain a valid key index. This has been observed 828 * mostly with CCMP encryption. 829 */ 830 if (rx_stats->rs_keyix == ATH9K_RXKEYIX_INVALID) 831 rx_stats->rs_status &= ~ATH9K_RXERR_KEYMISS; 832 |
|
825 if (!rx_stats->rs_datalen) 826 return false; 827 /* 828 * rs_status follows rs_datalen so if rs_datalen is too large 829 * we can take a hint that hardware corrupted it, so ignore 830 * those frames. 831 */ 832 if (rx_stats->rs_datalen > (common->rx_bufsize - rx_status_len)) --- 1151 unchanged lines hidden --- | 833 if (!rx_stats->rs_datalen) 834 return false; 835 /* 836 * rs_status follows rs_datalen so if rs_datalen is too large 837 * we can take a hint that hardware corrupted it, so ignore 838 * those frames. 839 */ 840 if (rx_stats->rs_datalen > (common->rx_bufsize - rx_status_len)) --- 1151 unchanged lines hidden --- |