linux/drivers/net/wireless/iwlwifi
Daniel C Halperin b58ef214b7 iwlwifi: remove incorrect uses of ieee80211_get_tx_rate to prevent TX stall
Refactor and correct rate selection for outgoing transmitted
packets.

First, note that HT rates in the mac80211 rate table do not provide valid
indices when ieee80211_get_tx_rate is called; the check to see if we could to
abort a transmission early in iwl_tx_skb() would thus occasionally read invalid
memory and occasionally stall transmission (if the erroneous byte was 0xff).
We remove that code; the check wasn't valid anyway.

Second, iwl_tx_cmd_build_rate() also called ieee80211_get_tx_rate to be used
for sending management packets, which do not use the uCode station table.  This
patch refactors that function and adds comments to enhance legibility, replaces
the call to ieee80211_get_tx_rate() with a direct lookup, and adds error
handling in case the table entry is invalid.

Signed-off-by: Daniel C Halperin <daniel.c.halperin@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-08-31 14:42:09 -04:00
..
Kconfig iwlwifi: fix LED config option 2009-07-27 15:24:27 -04:00
Makefile iwlwifi: port to cfg80211 rfkill 2009-06-10 13:27:49 -04:00
iwl-1000.c iwlwifi: use station HT capabilities and BSS operating mode for Green-field 2009-08-20 11:33:12 -04:00
iwl-3945-fh.h iwlwifi: update copyright year to 2009 2009-01-29 16:00:15 -05:00
iwl-3945-hw.h iwlwifi: name changed from "fat" to "ht40" 2009-08-14 09:13:46 -04:00
iwl-3945-led.c iwlwifi: remove command callback return value 2009-07-27 15:24:22 -04:00
iwl-3945-led.h iwl3945: use iwl_led structure 2009-03-16 18:09:46 -04:00
iwl-3945-rs.c mac80211: add helper for management / no-ack frame rate decision 2009-07-24 15:05:16 -04:00
iwl-3945.c iwlwifi: fix erroneous use of iwl_rx_packet.len as a length 2009-08-20 11:33:13 -04:00
iwl-3945.h iwlwifi: fix up command sending 2009-07-27 15:24:21 -04:00
iwl-4965-hw.h iwlwifi: name changed from "fat" to "ht40" 2009-08-14 09:13:46 -04:00
iwl-4965.c iwlwifi: use station HT capabilities and BSS operating mode for Green-field 2009-08-20 11:33:12 -04:00
iwl-5000-hw.h iwlwifi: Temperature sensor voltage reading for 5150 2009-05-22 14:06:03 -04:00
iwl-5000.c iwlwifi: fix erroneous use of iwl_rx_packet.len as a length 2009-08-20 11:33:13 -04:00
iwl-6000-hw.h iwlwifi: add recognition of Intel WiFi Link 6000 and 6050 Series 2009-01-29 16:01:02 -05:00
iwl-6000.c iwlwifi: read enhanced tx power info from EEPROM image 2009-08-28 14:40:39 -04:00
iwl-agn-rs.c iwlwifi: remove 60 Mbps from sband bitrates table 2009-08-31 14:42:09 -04:00
iwl-agn-rs.h iwlwifi: remove 60 Mbps from sband bitrates table 2009-08-31 14:42:09 -04:00
iwl-agn.c iwlwifi: fix unloading driver while scanning 2009-08-28 14:40:39 -04:00
iwl-calib.c iwlwifi: automatically adjust sleep level 2009-08-14 09:13:50 -04:00
iwl-calib.h iwlwifi: update copyright year to 2009 2009-01-29 16:00:15 -05:00
iwl-commands.h iwlwifi: remove duplicated define 2009-08-28 14:40:38 -04:00
iwl-core.c iwlwifi: remove 60 Mbps from sband bitrates table 2009-08-31 14:42:09 -04:00
iwl-core.h mac80211: allow configure_filter callback to sleep 2009-08-20 11:35:58 -04:00
iwl-csr.h iwlwifi: Distinguish power amplifier for 6000 series 2009-08-04 16:44:22 -04:00
iwl-debug.h iwlwifi: show current tx power 2009-08-28 14:40:37 -04:00
iwl-debugfs.c iwlwifi: show current tx power 2009-08-28 14:40:37 -04:00
iwl-dev.h iwlwifi: fix ICT irq table endianness 2009-08-28 14:40:53 -04:00
iwl-eeprom.c iwlwifi: read enhanced tx power info from EEPROM image 2009-08-28 14:40:39 -04:00
iwl-eeprom.h iwlwifi: read enhanced tx power info from EEPROM image 2009-08-28 14:40:39 -04:00
iwl-fh.h iwlwifi: update copyright year to 2009 2009-01-29 16:00:15 -05:00
iwl-hcmd.c iwlwifi: Traffic type and counter for debugFs 2009-08-14 09:13:47 -04:00
iwl-helpers.h iwlwifi: change iwl_enable/disable_interrupts to "inline" 2009-07-24 15:05:26 -04:00
iwl-io.h iwlcore: register locks 2009-05-22 14:06:04 -04:00
iwl-led.c iwlwifi: Traffic type and counter for debugFs 2009-08-14 09:13:47 -04:00
iwl-led.h iwl3945: use iwl_led structure 2009-03-16 18:09:46 -04:00
iwl-power.c iwlwifi: automatically adjust sleep level 2009-08-14 09:13:50 -04:00
iwl-power.h iwlwifi: automatically adjust sleep level 2009-08-14 09:13:50 -04:00
iwl-prph.h iwlagn: modify digital SVR for 1000 2009-07-24 15:05:23 -04:00
iwl-rx.c iwlwifi: set HT flags in ieee80211_rx_status for received packets 2009-08-28 14:40:38 -04:00
iwl-scan.c iwlwifi: fix unloading driver while scanning 2009-08-28 14:40:39 -04:00
iwl-spectrum.c iwlwifi: don't use implicit priv in IWL_DEBUG 2009-02-09 15:03:34 -05:00
iwl-spectrum.h iwlwifi: update copyright year to 2009 2009-01-29 16:00:15 -05:00
iwl-sta.c iwlwifi: fix remove key error 2009-08-28 14:40:39 -04:00
iwl-sta.h iwlwifi: unify station management 2009-06-04 10:56:20 -04:00
iwl-tx.c iwlwifi: remove incorrect uses of ieee80211_get_tx_rate to prevent TX stall 2009-08-31 14:42:09 -04:00
iwl3945-base.c iwlwifi: Make injection of non-broadcast frames work again 2009-08-28 14:40:36 -04:00