linux/drivers/net/wireless
Zhu Yi 2f301227a1 iwlwifi: use paged Rx
This switches the iwlwifi driver to use paged skb from linear skb for Rx
buffer. So that it relieves some Rx buffer allocation pressure for the
memory subsystem. Currently iwlwifi (4K for 3945) requests 8K bytes for
Rx buffer. Due to the trailing skb_shared_info in the skb->data,
alloc_skb() will do the next order allocation, which is 16K bytes. This
is suboptimal and more likely to fail when the system is under memory
usage pressure. Switching to paged Rx skb lets us allocate the RXB
directly by alloc_pages(), so that only order 1 allocation is required.

It also adjusts the area spin_lock (with IRQ disabled) protected in the
tasklet because tasklet guarentees to run only on one CPU and the new
unprotected code can be preempted by the IRQ handler. This saves us from
spawning another workqueue to make skb_linearize/__pskb_pull_tail happy
(which cannot be called in hard irq context).

Finally, mac80211 doesn't support paged Rx yet. So we linearize the skb
for all the management frames and software decryption or defragmentation
required data frames before handed to mac80211. For all the other frames,
we __pskb_pull_tail 64 bytes in the linear area of the skb for mac80211
to handle them properly.

Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-10-27 16:48:06 -04:00
..
ath ath9k: Fix TX hang poll routine 2009-10-27 16:47:55 -04:00
b43 b43/legacy: Fix usage of host_pci pointer 2009-10-27 16:47:55 -04:00
b43legacy b43/legacy: Fix usage of host_pci pointer 2009-10-27 16:47:55 -04:00
hostap wext: refactor 2009-10-07 16:39:43 -04:00
ipw2x00 wireless: fix CFG80211_WEXT build problems 2009-10-07 16:39:49 -04:00
iwlwifi iwlwifi: use paged Rx 2009-10-27 16:48:06 -04:00
iwmc3200wifi iwmc3200wifi: select IWMC3200TOP in Kconfig 2009-10-19 23:22:51 -07:00
libertas libertas: Check return status of command functions 2009-10-27 16:47:55 -04:00
libertas_tf mac80211: allow configure_filter callback to sleep 2009-08-20 11:35:58 -04:00
orinoco orinoco: use cfg80211 ethtool ops 2009-10-27 16:47:47 -04:00
p54 p54usb: add Zcomax XG-705A usbid 2009-09-23 11:35:41 -04:00
prism54 wireless: convert drivers to netdev_tx_t 2009-09-01 01:14:04 -07:00
rt2x00 rt2x00: Thrustmaster FunAccess WIFI USB and rt73usb 2009-09-29 17:25:16 -04:00
rtl818x Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-09-02 00:32:56 -07:00
wl12xx wl1271: remove unnecessary joins and join only when the bssid changes 2009-10-27 16:48:06 -04:00
zd1211rw Merge branch 'master' of /home/davem/src/GIT/linux-2.6/ 2009-09-24 15:13:11 -07:00
adm8211.c mac80211: allow configure_filter callback to sleep 2009-08-20 11:35:58 -04:00
adm8211.h mac80211: fix ADM8211_SYNCTL_RFtype define 2009-10-07 16:33:51 -04:00
airo_cs.c
airo.c airo : allow supend with card without power management 2009-10-27 16:47:56 -04:00
airo.h
arlan-main.c wireless: convert drivers to netdev_tx_t 2009-09-01 01:14:04 -07:00
arlan-proc.c sysctl: remove "struct file *" argument of ->proc_handler 2009-09-24 07:21:04 -07:00
arlan.h
at76c50x-usb.c at76c50x-usb: set firmware and hardware version in wiphy 2009-10-07 16:39:46 -04:00
at76c50x-usb.h
atmel_cs.c
atmel_pci.c
atmel.c trivial: fix typos "man[ae]g?ment" -> "management" 2009-09-21 15:14:56 +02:00
atmel.h
i82586.h
i82593.h
Kconfig wireless: make wireless drivers select core 2009-10-09 16:23:35 -04:00
mac80211_hwsim.c mac80211_hwsim: Fix initial beacon timer configuration 2009-09-29 17:25:16 -04:00
Makefile
mwl8k.c mwl8k: separate driver and device info reporting during probe 2009-08-28 14:40:42 -04:00
netwave_cs.c wireless: convert drivers to netdev_tx_t 2009-09-01 01:14:04 -07:00
ray_cs.c wireless: convert drivers to netdev_tx_t 2009-09-01 01:14:04 -07:00
ray_cs.h
rayctl.h
rndis_wlan.c rndis_wlan: fix sparse endianess warnings 2009-09-01 12:48:22 -04:00
strip.c wireless: convert drivers to netdev_tx_t 2009-09-01 01:14:04 -07:00
wavelan_cs.c wireless: convert drivers to netdev_tx_t 2009-09-01 01:14:04 -07:00
wavelan_cs.h
wavelan_cs.p.h wireless: convert drivers to netdev_tx_t 2009-09-01 01:14:04 -07:00
wavelan.c wireless: convert drivers to netdev_tx_t 2009-09-01 01:14:04 -07:00
wavelan.h
wavelan.p.h wireless: convert drivers to netdev_tx_t 2009-09-01 01:14:04 -07:00
wl3501_cs.c wireless: convert drivers to netdev_tx_t 2009-09-01 01:14:04 -07:00
wl3501.h
zd1201.c wireless: convert drivers to netdev_tx_t 2009-09-01 01:14:04 -07:00
zd1201.h