linux/drivers/net/wireless/intel/iwlwifi
Johannes Berg 92c4dca6f5 iwlwifi: mvm: fix deduplication start logic
If the first frame on a given TID is received with seqno 0 and needed
to be retransmitted, we erroneously drop it because the deduplication
data is initialized to zero, and then comparing

        if (unlikely(ieee80211_has_retry(hdr->frame_control) &&
                     dup_data->last_seq[tid] == hdr->seq_ctrl &&
                     dup_data->last_sub_frame[tid] >= sub_frame_idx))
                return true;

will return in iwl_mvm_is_dup() since last_sub_frame is also set to
zero, and sub_frame_idx is usually zero since this only covers the
relatively rare case of A-MSDU.

Fix this by initializing the last_seq array to 0xffff, which is an
impossible value for hdr->seq_ctrl to have here because the lower
four bits are the fragment number, and fragments aren't handled in
this code but go to mac80211 instead.

Fixes: a571f5f635 ("iwlwifi: mvm: add duplicate packet detection per rx queue")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
2017-06-29 13:26:26 +03:00
..
dvm iwlwifi: unify external & internal modparam names 2017-06-29 13:26:25 +03:00
mvm iwlwifi: mvm: fix deduplication start logic 2017-06-29 13:26:26 +03:00
pcie iwlwifi: pcie: warn if paging is already initialized during init 2017-06-29 13:26:26 +03:00
iwl-1000.c iwlwifi: make configuration structs smaller 2016-05-10 22:34:06 +03:00
iwl-2000.c iwlwifi: make configuration structs smaller 2016-05-10 22:34:06 +03:00
iwl-5000.c iwlwifi: make configuration structs smaller 2016-05-10 22:34:06 +03:00
iwl-6000.c iwlwifi: fix MODULE_FIRMWARE for 6030 2017-01-26 09:38:58 +02:00
iwl-7000.c iwlwifi: fix min API version for 7265D, 3168, 8000 and 8265 2017-06-05 21:47:10 +03:00
iwl-8000.c First batch of iwlwifi driver patches 4.13 2017-06-12 19:29:39 +03:00
iwl-9000.c iwlwifi: bump max FW API to 31 2017-06-05 23:34:31 +03:00
iwl-a000.c iwlwifi: add the new a000_2ax series 2017-06-29 13:26:24 +03:00
iwl-agn-hw.h
iwl-config.h iwlwifi: add the new a000_2ax series 2017-06-29 13:26:24 +03:00
iwl-context-info.h iwlwifi: pcie: add context information support 2017-04-11 15:19:34 +03:00
iwl-csr.h iwlwifi: pcie: fix 9000-series RF-kill interrupt propagation 2017-06-29 13:26:24 +03:00
iwl-debug.c
iwl-debug.h iwlwifi: add missing type declaration 2016-07-12 14:51:57 +03:00
iwl-devtrace-data.h iwlwifi: simplify data tracepoint 2017-06-23 11:57:20 +03:00
iwl-devtrace-io.h iwlwifi: centralize 64 bit HW registers write 2016-07-06 10:22:08 +03:00
iwl-devtrace-iwlwifi.h iwlwifi: fix TX tracing for non-linear SKBs 2017-06-23 11:57:48 +03:00
iwl-devtrace-msg.h
iwl-devtrace-ucode.h
iwl-devtrace.c iwlwifi: don't export trace points that are used in iwlwifi only 2016-09-19 10:09:41 +03:00
iwl-devtrace.h iwlwifi: tracing: decouple from mac80211 2016-07-06 10:08:56 +03:00
iwl-drv.c iwlwifi: unify external & internal modparam names 2017-06-29 13:26:25 +03:00
iwl-drv.h iwlwifi: cleanup references to 8000 family in NVM code 2017-06-05 23:25:21 +03:00
iwl-eeprom-parse.c iwlwifi: advertise maximal MPDU length when Rx MQ is supported 2016-07-01 16:51:22 +03:00
iwl-eeprom-parse.h iwlwifi: remove useless iwl_free_nvm_data() function 2017-06-23 12:02:58 +03:00
iwl-eeprom-read.c
iwl-eeprom-read.h
iwl-fh.h iwlwifi: document transmit buffer bits better 2017-06-23 12:01:19 +03:00
iwl-fw-api.h iwlwifi: mvm: add documentation for all command IDs 2017-06-29 13:26:24 +03:00
iwl-fw-error-dump.h iwlwifi: kernel-doc: make proper links 2017-06-02 14:10:44 +03:00
iwl-fw-file.h iwlwifi: mvm: support D0I3_END_CMD at the start of resume 2017-06-23 00:13:00 +03:00
iwl-fw.h iwlwifi: enlarge number of ucode sections 2017-01-26 09:38:57 +02:00
iwl-io.c iwlwifi: add 9000 and A000 device families 2017-06-05 23:29:37 +03:00
iwl-io.h iwlwifi: centralize 64 bit HW registers write 2016-07-06 10:22:08 +03:00
iwl-modparams.h iwlwifi: unify external & internal modparam names 2017-06-29 13:26:25 +03:00
iwl-notif-wait.c iwlwifi: split the handler and the wake parts of the notification infra 2017-04-19 22:21:49 +03:00
iwl-notif-wait.h iwlwifi: split the handler and the wake parts of the notification infra 2017-04-19 22:21:49 +03:00
iwl-nvm-parse.c iwlwifi: mvm: print base HW address during init 2017-06-23 12:20:16 +03:00
iwl-nvm-parse.h iwlwifi: adjust NVM parsing APIs for new a000 method 2017-04-25 23:08:32 +03:00
iwl-op-mode.h
iwl-phy-db.c iwlwifi: mvm: add documentation for all command IDs 2017-06-29 13:26:24 +03:00
iwl-phy-db.h iwlwifi: mvm: remove redundant alloc_ctx parameter 2016-05-10 22:34:03 +03:00
iwl-prph.h iwlwifi: use bitfield.h for some registers 2017-06-23 00:13:00 +03:00
iwl-scd.h
iwl-trans.c iwlwifi: pcie: don't report RF-kill enabled while shutting down 2017-06-23 00:13:01 +03:00
iwl-trans.h iwlwifi: add a W/A for a scheduler hardware bug 2017-06-23 12:07:04 +03:00
Kconfig iwlwifi: make RTPM depend on EXPERT 2017-02-08 17:54:20 +02:00
Makefile iwlwifi: pcie: introduce a000 TX queues management 2017-04-19 22:20:52 +03:00