linux/drivers/net
Daniel Halperin ff27fabe62 iwlwifi: fix throughput degradation in aggregation mode
The following commit

	commit e4da8c37af
	Author: Johannes Berg <johannes@sipsolutions.net>
	Date:   Wed Dec 23 13:15:43 2009 +0100

	   mac80211: make off-channel work generic

triggered a bug in iwlwifi where HT parameters would not be correctly set in
some mac80211 pathways. The aggregation (and possibly other) station flags were
not being set, which limited the size of aggregation blocks and reduced
throughput at high rates.

>From Johannes:
"""
Due to Wey-Yi's patch to use the set-channel command when the channel changes
while associated, we don't get a full new RXON. Therefore, we don't re-set the
rxon-station either. However, under some circumstances that apparently have
gotten more likely mac80211 will first set up the BSS info, then add the
station and then switch to an HT channel type.

Therefore, the check for "priv->current_ht_config.is_ht" in
iwl_rxon_add_station() will hit false and not fill in the HT information.

However, that check can just be removed, which is the easiest fix for all this,
because the HT capa struct is always there, just could possibly have the
ht_supported member set to false.
"""

A sample good link in my 3x3 network improves by approximately 25% TCP
throughput. This fixes Bug 2144
(http://bugzilla.intellinuxwireless.org/show_bug.cgi?id=2144).

Signed-off-by: Daniel Halperin <dhalperi@cs.washington.edu>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2010-01-25 16:36:27 -05:00
..
appletalk drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
arcnet drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
arm Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-12-01 22:13:38 -08:00
atl1c atl1c:use common_task instead of reset_task and link_chg_task 2009-12-08 20:48:07 -08:00
atl1e atl1e: Remove non-implementation of ethtool set_msglevel() operation 2009-12-02 22:10:16 -08:00
atlx drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
benet be2net: Add support for ethtool self test 2009-12-03 16:15:52 -08:00
bonding drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
can drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
chelsio
cris
cxgb3 drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
e1000 drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
e1000e e1000e: only perform ESB2 MDIC workaround on certain configurations 2009-12-08 20:10:12 -08:00
ehea drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
enic
fs_enet
hamradio drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
ibm_newemac drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
igb drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
igbvf drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
irda drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
ixgb ixgb: remove use of skb_dma_map from ixgb 2009-12-02 19:57:11 -08:00
ixgbe ixgbe: add support for 82599 KR device 0x1517 2009-12-08 20:10:13 -08:00
ixp2000
mlx4
myri10ge myri10ge: use src+dst for rss hashing 2009-12-08 20:24:35 -08:00
netxen netxen: fix firmware type check 2009-12-08 20:37:46 -08:00
pcmcia Merge branch 'master' of /home/davem/src/GIT/linux-2.6/ 2009-12-05 15:22:26 -08:00
phy drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
qlge drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
sfc sfc: Update version, copyright dates, authors 2009-11-29 17:23:58 -08:00
skfp
stmmac drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
tokenring drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
tulip drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
usb usbnet & cdc-ether: Autosuspend for online devices 2009-12-03 15:31:18 -08:00
vmxnet3 drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
vxge drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
wan drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
wimax
wireless iwlwifi: fix throughput degradation in aggregation mode 2010-01-25 16:36:27 -05:00
3c59x.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
3c501.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
3c501.h
3c503.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
3c503.h
3c505.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
3c505.h
3c507.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
3c509.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
3c515.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
3c523.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
3c523.h
3c527.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
3c527.h
7990.c
7990.h
8139cp.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
8139too.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
8390.c
8390.h
8390p.c
82596.c
a2065.c
a2065.h
ac3200.c
acenic.c
acenic.h
amd8111e.c
amd8111e.h
apne.c
ariadne.c
ariadne.h
at1700.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
atarilance.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
atp.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
atp.h
au1000_eth.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-11-29 00:57:15 -08:00
au1000_eth.h
ax88796.c
b44.c b44 WOL setup: one-bit-off stack corruption kernel panic fix 2009-12-08 21:00:22 -08:00
b44.h
bcm63xx_enet.c
bcm63xx_enet.h
bfin_mac.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
bfin_mac.h
bmac.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
bmac.h
bnx2.c bnx2: Refine VPD logic. 2009-12-03 15:58:00 -08:00
bnx2.h bnx2: Dump some state during tx timeout. 2009-12-03 13:18:11 -08:00
bnx2_fw.h
bnx2x.h bnx2x: Handle Rx and Tx together in NAPI 2009-11-17 04:08:48 -08:00
bnx2x_dump.h
bnx2x_fw_defs.h
bnx2x_fw_file_hdr.h
bnx2x_hsi.h
bnx2x_init.h
bnx2x_init_ops.h
bnx2x_link.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
bnx2x_link.h
bnx2x_main.c bnx2x: Don't set netdev->trans_start 2009-11-18 05:03:14 -08:00
bnx2x_reg.h
bsd_comp.c
cassini.c
cassini.h
cnic.c cnic: Use dma_alloc_coherent(). 2009-12-02 19:57:22 -08:00
cnic.h
cnic_defs.h
cnic_if.h
cpmac.c
cs89x0.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
cs89x0.h
davinci_emac.c TI DaVinci EMAC: Minor macro related updates 2009-11-20 13:57:54 -08:00
de600.c
de600.h
de620.c
de620.h
declance.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
defxx.c
defxx.h
depca.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
depca.h
dl2k.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
dl2k.h
dm9000.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
dm9000.h DM9000: Wake on LAN support 2009-11-11 19:22:21 -08:00
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-12-01 22:13:38 -08:00
e2100.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
eepro.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
eexpress.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
eexpress.h
enc28j60.c
enc28j60_hw.h
epic100.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
eql.c
es3210.c
eth16i.c
ethoc.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-11-18 22:19:03 -08:00
ewrk3.c
ewrk3.h
fealnx.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
fec.c
fec.h
fec_mpc52xx.c net/mpc5200: Fix locking on fec_mpc52xx driver 2009-12-08 20:29:10 -08:00
fec_mpc52xx.h
fec_mpc52xx_phy.c
forcedeth.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
fsl_pq_mdio.c
fsl_pq_mdio.h
gianfar.c gianfar: Fix build with CONFIG_NET_POLL_CONTROLLER=y 2009-12-09 02:52:19 -08:00
gianfar.h
gianfar_ethtool.c
gianfar_sysfs.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
hamachi.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
hp-plus.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
hp.c
hp100.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
hp100.h
hplance.c
hplance.h
hydra.c
ibmlana.c
ibmlana.h
ibmveth.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
ibmveth.h
ifb.c net: rename skb->iif to skb->skb_iif 2009-11-20 15:35:04 -08:00
ioc3-eth.c
ipg.c drivers/net/ipg.c: remove exceptional & on function name 2009-11-18 10:48:39 -08:00
ipg.h
isa-skeleton.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
iseries_veth.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
jazzsonic.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
jme.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
jme.h
Kconfig ps3_gelic_wireless: Fix build failure due to missing WEXT_PRIV 2009-12-21 11:32:30 -05:00
korina.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
ks8842.c
ks8851.c net: Fix ks8851 snl NULL pointer dereference Oops 2009-12-03 16:04:25 -08:00
ks8851.h
ks8851_mll.c drivers/net: ks8851_mll ethernet network driver -resubmit 2009-11-20 13:53:36 -08:00
lance.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
lasi_82596.c
lib8390.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
lib82596.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
LICENSE.SRC
ll_temac.h
ll_temac_main.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
ll_temac_mdio.c
lne390.c
loopback.c net: Simplify loopback and improve batching. 2009-12-01 16:15:52 -08:00
lp486e.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
mac89x0.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
mac8390.c
macb.c
macb.h
mace.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
mace.h
macmace.c
macsonic.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
macvlan.c netdevice: provide common routine for macvlan and vlan operstate management 2009-12-03 15:59:22 -08:00
Makefile
mdio.c
meth.c
meth.h
mii.c
mipsnet.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
mv643xx_eth.c mv643xx_eth: check for valid hw address (resubmit) 2009-12-08 20:36:00 -08:00
mvme147.c
myri_sbus.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
myri_sbus.h
natsemi.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
ne-h8300.c
ne.c
ne2.c
ne2k-pci.c
ne3210.c
netconsole.c
netx-eth.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
ni52.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
ni52.h
ni65.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
ni65.h
ni5010.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
ni5010.h
niu.c niu.c: Use correct length in strncmp 2009-11-13 14:07:30 -08:00
niu.h
ns83820.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
pasemi_mac.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
pasemi_mac.h
pasemi_mac_ethtool.c
pci-skeleton.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
pcnet32.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
plip.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
ppp_async.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
ppp_deflate.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
ppp_generic.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
ppp_mppe.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
ppp_mppe.h
ppp_synctty.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
pppoe.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
pppol2tp.c net: Simplify pppol2tp pernet operations. 2009-12-01 16:15:57 -08:00
pppox.c
ps3_gelic_net.c net/ps3: Add support for gelic link negotiation 2009-12-02 00:52:31 -08:00
ps3_gelic_net.h net/ps3: Add support for gelic link negotiation 2009-12-02 00:52:31 -08:00
ps3_gelic_wireless.c
ps3_gelic_wireless.h
qla3xxx.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
qla3xxx.h
r6040.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
r8169.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
rionet.c
rrunner.c
rrunner.h
s2io-regs.h
s2io.c s2io: fixing a ethtool test that is broken 2009-11-13 19:56:53 -08:00
s2io.h
s6gmac.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
sb1000.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
sb1250-mac.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
sc92031.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
seeq8005.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
seeq8005.h
sgiseeq.c
sgiseeq.h
sh_eth.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
sh_eth.h
sis190.c
sis900.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
sis900.h
skge.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
skge.h
sky2.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
sky2.h
slhc.c
slip.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
slip.h
smc-mca.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
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-12-01 22:13:38 -08:00
smc91x.h drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
smc911x.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
smc911x.h
smc9194.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
smc9194.h
smsc911x.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
smsc911x.h
smsc9420.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-12-01 22:13:38 -08:00
smsc9420.h
sni_82596.c
sonic.c
sonic.h
Space.c
spider_net.c
spider_net.h
spider_net_ethtool.c
starfire.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
stnic.c
sun3_82586.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
sun3_82586.h
sun3lance.c
sunbmac.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
sunbmac.h
sundance.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
sungem.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-11-18 22:19:03 -08:00
sungem.h drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
sungem_phy.c
sungem_phy.h
sunhme.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
sunhme.h
sunlance.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
sunqe.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
sunqe.h
sunvnet.c
sunvnet.h
tc35815.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
tehuti.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
tehuti.h
tg3.c tg3: Update version to 3.105 2009-12-03 13:18:08 -08:00
tg3.h tg3: Add some VPD preprocessor constants 2009-12-03 13:18:04 -08:00
tlan.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
tlan.h
tsi108_eth.c
tsi108_eth.h
tun.c
typhoon.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
typhoon.h
ucc_geth.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
ucc_geth.h
ucc_geth_ethtool.c
veth.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-11-29 00:57:15 -08:00
via-rhine.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
via-velocity.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
via-velocity.h via-velocity: Bump version 2009-11-26 15:51:29 -08:00
virtio_net.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
wd.c
xen-netfront.c
xilinx_emaclite.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
xtsonic.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
yellowfin.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
znet.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
zorro8390.c