linux/drivers/net
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
..
appletalk
arcnet
arm Add support for w90p910 mac driver 2009-08-13 16:26:13 -07:00
atl1c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
atl1e atl1e: return PCI_ERS_RESULT_DISCONNECT on permanent failure 2009-08-01 23:11:44 -07:00
atlx atlx: strncpy does not null terminate string 2009-08-09 21:45:31 -07:00
benet be2net: destroy mcc queue before tx queues 2009-08-17 17:48:29 -07:00
bonding bonding: Have bond_check_dev_link examine netif_running 2009-08-28 23:01:20 -07:00
can Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-13 19:59:44 -07:00
chelsio
cris
cxgb3 cxgb3: fix 2 ports 1G regression 2009-08-05 20:28:27 -07:00
e1000 e1000: Remove unused function e1000_mta_set. 2009-08-26 15:36:51 -07:00
e1000e e1000e: fix potential NVM corruption on ICH9 with 8K bank size 2009-08-09 21:45:38 -07:00
ehea ehea: Fix napi list corruption on ifconfig down 2009-08-04 11:48:39 -07:00
enic
fs_enet Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-07-23 19:03:51 -07:00
hamradio Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
ibm_newemac Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-07-23 19:03:51 -07:00
igb igb/ixgbe: add IPV6_CSUM support to vlan_features 2009-08-26 15:36:50 -07:00
igbvf Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
irda Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
ixgb ixgb: return PCI_ERS_RESULT_DISCONNECT on permanent failure 2009-08-01 23:11:59 -07:00
ixgbe igb/ixgbe: add IPV6_CSUM support to vlan_features 2009-08-26 15:36:50 -07:00
ixp2000
mlx4 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
myri10ge myri10ge: improve parity error detection and recovery 2009-08-12 21:54:59 -07:00
netxen netxen: bridged mode optimizations 2009-08-26 15:29:21 -07:00
pcmcia net: pcmcia/axnet_cs: includecheck fix axnet_cs.c 2009-08-12 21:54:57 -07:00
phy broadcom: Make the 57780 IEEE compliant 2009-08-26 15:48:06 -07:00
qlge qlge: Move TX completions from workqueue to NAPI. 2009-08-28 23:22:34 -07:00
sfc sfc: Improve reliability of RX queue flushing 2009-08-26 17:38:59 -07:00
skfp
tokenring drivers/net/tokenring: Use status field rather than state field 2009-08-12 21:54:54 -07:00
tulip Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
usb usbnet: add rx queue pausing 2009-08-14 09:14:04 -04:00
vxge vxge: Version update 2009-08-05 13:10:46 -07:00
wan WAN: bit and/or confusion 2009-08-30 22:02:26 -07:00
wimax imwc3200: move iwmc3200 SDIO ids to sdio_ids.h 2009-07-26 19:25:47 -07:00
wireless iwlwifi: remove incorrect uses of ieee80211_get_tx_rate to prevent TX stall 2009-08-31 14:42:09 -04:00
3c59x.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
3c501.c
3c501.h
3c503.c
3c503.h
3c505.c
3c505.h
3c507.c
3c509.c
3c515.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-07-30 19:22:43 -07:00
3c523.c
3c523.h
3c527.c
3c527.h
7990.c
7990.h
8139cp.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-13 19:59:44 -07:00
8139too.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-07-16 20:21:24 -07:00
8390.c
8390.h
8390p.c
82596.c
a2065.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
a2065.h
ac3200.c
acenic.c
acenic.h
amd8111e.c
amd8111e.h
apne.c
ariadne.c
ariadne.h
at1700.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-07-30 19:22:43 -07:00
atarilance.c
atp.c
atp.h
au1000_eth.c
au1000_eth.h
ax88796.c
b44.c drivers/net: Use DIV_ROUND_CLOSEST 2009-08-02 12:54:18 -07:00
b44.h
bfin_mac.c
bfin_mac.h
bmac.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
bmac.h
bnx2.c bnx2: Update firmware to 5.0.0.j3. 2009-08-29 00:02:46 -07:00
bnx2.h bnx2: Use const on flash_table structure. 2009-08-22 17:48:54 -07:00
bnx2_fw.h
bnx2x.h bnx2x: Whitespaces and comments 2009-08-12 23:03:01 -07:00
bnx2x_dump.h bnx2x: Beautify bnx2x_dump.h 2009-08-12 23:03:00 -07:00
bnx2x_fw_defs.h bnx2x: Using the new FW 2009-08-12 22:53:28 -07:00
bnx2x_fw_file_hdr.h
bnx2x_hsi.h bnx2x: Supporting Device Control Channel 2009-08-12 23:02:12 -07:00
bnx2x_init.h bnx2x: Re-factor the initialization code 2009-08-12 23:02:59 -07:00
bnx2x_init_ops.h bnx2x: Re-factor the initialization code 2009-08-12 23:02:59 -07:00
bnx2x_link.c bnx2x: Whitespaces and comments 2009-08-12 23:03:01 -07:00
bnx2x_link.h bnx2x: Using macro for phy address 2009-08-12 23:02:57 -07:00
bnx2x_main.c bnx2x: update version to 1.52.1 2009-08-12 23:03:02 -07:00
bnx2x_reg.h bnx2x: Whitespaces and comments 2009-08-12 23:03:01 -07:00
bsd_comp.c
cassini.c
cassini.h
cnic.c cnic: Put uio init in separate function. 2009-08-28 23:47:12 -07:00
cnic.h
cnic_defs.h
cnic_if.h
cpmac.c cpmac: bump version to 0.5.1 2009-08-05 12:22:11 -07:00
cs89x0.c net: cs89x0: includecheck fix for cs89x0.c 2009-08-12 21:54:56 -07:00
cs89x0.h
davinci_emac.c TI DaVinci EMAC: delay DaVinci EMAC initialization 2009-08-29 00:19:33 -07:00
de600.c
de600.h
de620.c
de620.h
declance.c
defxx.c
defxx.h
depca.c
depca.h
dl2k.c
dl2k.h
dm9000.c dm9000: switch to dev_pm_ops 2009-07-23 18:01:01 -07:00
dm9000.h
dnet.c
dnet.h
dummy.c
e100.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-07-16 20:21:24 -07:00
e2100.c
eepro.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-07-30 19:22:43 -07:00
eexpress.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-07-30 19:22:43 -07:00
eexpress.h
enc28j60.c
enc28j60_hw.h
epic100.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
eql.c
es3210.c
eth16i.c
ethoc.c drivers/net: Correct redundant test 2009-07-27 11:35:28 -07:00
ewrk3.c
ewrk3.h
fealnx.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
fec.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
fec.h
fec_mpc52xx.c
fec_mpc52xx.h
fec_mpc52xx_phy.c
forcedeth.c
fsl_pq_mdio.c
fsl_pq_mdio.h
gianfar.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
gianfar.h
gianfar_ethtool.c gianfar: fix coalescing setup in ethtool support 2009-07-30 14:20:42 -07:00
gianfar_sysfs.c
hamachi.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
hp-plus.c
hp.c
hp100.c
hp100.h
hplance.c
hplance.h
hydra.c
ibmlana.c
ibmlana.h
ibmveth.c
ibmveth.h
ifb.c
ioc3-eth.c
ipg.c
ipg.h
isa-skeleton.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-07-16 20:21:24 -07:00
iseries_veth.c
jazzsonic.c drivers/net: Correct use of request_region/request_mem_region 2009-08-12 21:54:57 -07:00
jme.c
jme.h
Kconfig ucc_geth: Remove UGETH_MAGIC_PACKET Kconfig symbol and code 2009-08-30 21:51:43 -07:00
korina.c korina: add error-handling to korina_alloc_ring 2009-08-13 16:26:12 -07:00
ks8842.c
ks8851.c net: Micrel KS8851 SPI network driver 2009-07-20 08:23:26 -07:00
ks8851.h net: Micrel KS8851 SPI network driver 2009-07-20 08:23:26 -07:00
lance.c
lasi_82596.c
lib8390.c
lib82596.c
LICENSE.SRC
ll_temac.h
ll_temac_main.c
ll_temac_mdio.c
lne390.c
loopback.c
lp486e.c
mac89x0.c
mac8390.c
macb.c
macb.h
mace.c
mace.h
macmace.c
macsonic.c net: move macsonic's probe function to .devinit.text 2009-07-23 18:01:09 -07:00
macvlan.c
Makefile net: add Xilinx emac lite device driver 2009-08-20 02:52:16 -07:00
mdio.c mdio: Check MDIO_STAT1_FAULT in mdio45_links_ok() 2009-08-26 17:38:53 -07:00
meth.c net: move meth's probe function to .devinit.text 2009-07-23 18:01:06 -07:00
meth.h
mii.c
mipsnet.c
mv643xx_eth.c
mvme147.c
myri_sbus.c
myri_sbus.h
natsemi.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
ne-h8300.c
ne.c
ne2.c
ne2k-pci.c
ne3210.c
netconsole.c
netx-eth.c
ni52.c
ni52.h
ni65.c
ni65.h
ni5010.c
ni5010.h
niu.c drivres/net: Change constant name 2009-08-12 21:54:53 -07:00
niu.h
ns83820.c
pasemi_mac.c
pasemi_mac.h
pasemi_mac_ethtool.c
pci-skeleton.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
pcnet32.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
plip.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-07-16 20:21:24 -07:00
ppp_async.c Revert "ppp: Fix throttling bugs" 2009-07-16 09:14:23 -07:00
ppp_deflate.c
ppp_generic.c ppp_generic: Help GCC see that 'flen' is always initialized. 2009-08-19 13:55:55 -07:00
ppp_mppe.c
ppp_mppe.h
ppp_synctty.c Revert "ppp: Fix throttling bugs" 2009-07-16 09:14:23 -07:00
pppoe.c net,pppoe: fixup module init/exit subsequent calls 2009-08-12 16:39:16 -07:00
pppol2tp.c pppol2tp: calls unregister_pernet_gen_device() at unload time 2009-08-02 12:20:34 -07:00
pppox.c
ps3_gelic_net.c netdev: restore MAC address set and validate operations 2009-07-12 14:20:02 -07:00
ps3_gelic_net.h
ps3_gelic_wireless.c netdev: restore MAC address set and validate operations 2009-07-12 14:20:02 -07:00
ps3_gelic_wireless.h
qla3xxx.c
qla3xxx.h
r6040.c r6040: bump to version 0.25 and 20 August 2009 release date 2009-08-23 19:16:32 -07:00
r8169.c r8169: phy init for the 8102e 2009-08-12 22:13:23 -07:00
rionet.c
rrunner.c
rrunner.h
s2io-regs.h
s2io.c s2io: Generate complete messages using single line DBG_PRINTs 2009-08-30 22:35:11 -07:00
s2io.h s2io: Generate complete messages using single line DBG_PRINTs 2009-08-30 22:35:11 -07:00
s6gmac.c s6gmac: Read buffer overflow 2009-08-02 12:20:40 -07:00
sb1000.c
sb1250-mac.c net: move sb1250-mac's probe function to .devinit.text 2009-07-23 18:01:07 -07:00
sc92031.c New device ID for sc92031 [1088:2031] 2009-07-20 08:27:02 -07:00
seeq8005.c
seeq8005.h
sgiseeq.c net: move sgiseeq's probe function to .devinit.text 2009-07-23 18:01:04 -07:00
sgiseeq.h
sh_eth.c net: sh_eth: add value of ether_link pin in platform_data 2009-08-29 00:19:35 -07:00
sh_eth.h net: sh_eth: add value of ether_link pin in platform_data 2009-08-29 00:19:35 -07:00
sis190.c
sis900.c
sis900.h
skge.c skge: Enable WoL by default if supported 2009-07-22 11:24:26 -07:00
skge.h
sky2.c sky2: version 1.25 2009-08-18 20:26:54 -07:00
sky2.h sky2: no recycling 2009-08-18 20:26:53 -07:00
slhc.c
slip.c
slip.h
smc-mca.c
smc-ultra.c
smc-ultra32.c
smc91x.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-07-16 20:21:24 -07:00
smc91x.h smc91x.h: add config for Nomadik evaluation kit 2009-07-26 19:15:07 -07:00
smc911x.c
smc911x.h net: smc911x: includecheck fix for smc911x.h 2009-08-12 22:13:16 -07:00
smc9194.c
smc9194.h
smsc911x.c net: smsc911x: switch to new dev_pm_ops 2009-08-06 13:25:31 -07:00
smsc911x.h
smsc9420.c
smsc9420.h
sni_82596.c
sonic.c
sonic.h
Space.c
spider_net.c
spider_net.h
spider_net_ethtool.c
starfire.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
stnic.c
sun3_82586.c
sun3_82586.h
sun3lance.c
sunbmac.c
sunbmac.h
sundance.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
sungem.c
sungem.h
sungem_phy.c
sungem_phy.h
sunhme.c
sunhme.h
sunlance.c
sunqe.c
sunqe.h
sunvnet.c netdev: restore MTU change operation 2009-07-12 14:20:04 -07:00
sunvnet.h
tc35815.c tc35815: Use 0 RxFragSize.MinFrag value for non-packing mode 2009-08-06 13:14:25 -07:00
tehuti.c
tehuti.h
tg3.c tg3: Update version to 3.101 2009-08-29 15:43:06 -07:00
tg3.h tg3: Move per-int tx members to a per-int struct 2009-08-29 15:43:04 -07:00
tlan.c
tlan.h
tsi108_eth.c
tsi108_eth.h
tun.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
typhoon.c
typhoon.h
ucc_geth.c ucc_geth: Implement suspend/resume and Wake-On-LAN support 2009-08-30 21:51:47 -07:00
ucc_geth.h ucc_geth: Implement suspend/resume and Wake-On-LAN support 2009-08-30 21:51:47 -07:00
ucc_geth_ethtool.c ucc_geth: Implement suspend/resume and Wake-On-LAN support 2009-08-30 21:51:47 -07:00
veth.c veth: Zero timestamp in xmit path. 2009-07-23 18:01:02 -07:00
via-rhine.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-07-16 20:21:24 -07:00
via-velocity.c Remove unnecessary forward declarations from velocity NIC driver. 2009-07-23 18:11:12 -07:00
via-velocity.h Fix typos in comments in via-velocity header. 2009-07-23 18:11:28 -07:00
virtio_net.c virtio-net: Allow UFO feature to be set and advertised. 2009-07-17 10:10:58 -07:00
wd.c
xen-netfront.c
xilinx_emaclite.c net: add Xilinx emac lite device driver 2009-08-20 02:52:16 -07:00
xtsonic.c net: move xtsonic's probe function to .devinit.text 2009-07-23 18:01:08 -07:00
yellowfin.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
znet.c
zorro8390.c zorro8390: Fix read buffer overflow in zorro8390_init_one() 2009-08-09 21:46:53 -07:00