linux/drivers/net/wireless
Stanislaw Gruszka cfd9167af1 rt2x00: do not align payload on modern H/W
RT2800 and newer hardware require padding between header and payload if
header length is not multiple of 4.

For historical reasons we also align payload to to 4 bytes boundary, but
such alignment is not needed on modern H/W.

Patch fixes skb_under_panic problems reported from time to time:

https://bugzilla.kernel.org/show_bug.cgi?id=84911
https://bugzilla.kernel.org/show_bug.cgi?id=72471
http://marc.info/?l=linux-wireless&m=139108549530402&w=2
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1087591

Panic happened because we eat 4 bytes of skb headroom on each
(re)transmission when sending frame without the payload and the header
length not being multiple of 4 (i.e. QoS header has 26 bytes). On such
case because paylad_aling=2 is bigger than header_align=0 we increase
header_align by 4 bytes. To prevent that we could change the check to:

	if (payload_length && payload_align > header_align)
		header_align += 4;

but not aligning payload at all is more effective and alignment is not
really needed by H/W (that has been tested on OpenWrt project for few
years now).

Reported-and-tested-by: Antti S. Lankila <alankila@bel.fi>
Debugged-by: Antti S. Lankila <alankila@bel.fi>
Reported-by: Henrik Asp <solenskiner@gmail.com>
Originally-From: Helmut Schaa <helmut.schaa@googlemail.com>
Cc: stable@vger.kernel.org
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-11-11 16:12:44 -05:00
..
ath ath9k: fix some debugfs output 2014-10-30 15:00:22 -04:00
b43 b43: fix NULL pointer dereference in b43_phy_copy() 2014-11-10 13:10:24 -05:00
b43legacy
brcm80211 brcmfmac: dhd_sdio.c: Cleaning up missing null-terminate in conjunction with strncpy 2014-10-23 14:02:06 -04:00
cw1200 cw1200: Introduce the use of devm_kzalloc 2014-08-25 16:00:43 -04:00
hostap wireless: hostap: proc: print properly escaped SSID 2014-10-14 02:18:27 +02:00
ipw2x00 wireless: ipw2x00: print SSID via %*pE 2014-10-14 02:18:27 +02:00
iwlegacy This time, I have some rate minstrel improvements, support for a very 2014-09-15 14:51:23 -04:00
iwlwifi iwlwifi: pcie: fix prph dump length 2014-11-11 07:24:57 +02:00
libertas wireless: libertas: print esaped string via %*pE 2014-10-14 02:18:26 +02:00
libertas_tf treewide: Fix typo in printk 2014-08-26 09:35:54 +02:00
mwifiex mwifiex: restart rxreorder timer correctly 2014-10-30 15:00:22 -04:00
orinoco drivers/net: Convert remaining uses of pr_warning to pr_warn 2014-09-09 20:37:08 -07:00
p54 mac80211: extend set_coverage_class signature 2014-09-05 13:54:07 +02:00
prism54 PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
rsi rsi: fix memory leaks and error handling in rsi_91x_usb 2014-07-01 14:26:26 -04:00
rt2x00 rt2x00: do not align payload on modern H/W 2014-11-11 16:12:44 -05:00
rtl818x rtl818x_pci: fix response rate may be incorrect. 2014-10-07 14:48:37 -04:00
rtlwifi rtlwifi: rtl8192se: Fix connection problems 2014-11-10 13:10:23 -05:00
ti drivers/net: Convert remaining uses of pr_warning to pr_warn 2014-09-09 20:37:08 -07:00
zd1211rw wireless: zd1211rw: new url for fw, remove experimental 2014-07-15 16:00:17 -04:00
adm8211.c PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
adm8211.h
airo_cs.c airo_cs: Remove typedef local_info_t 2014-08-11 12:19:53 -07:00
airo.c PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
airo.h
at76c50x-usb.c at76c50x-usb: fix use after free on failure path in at76_probe() 2014-08-25 15:39:23 -04:00
at76c50x-usb.h
atmel_cs.c atmel_cs: Remove typedef local_info_t 2014-08-25 16:17:41 -04:00
atmel_pci.c PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
atmel.c atmel: Remove typedef atmel_priv_ioctl 2014-08-11 12:19:53 -07:00
atmel.h
Kconfig net: fix USB network driver config option. 2014-08-06 16:00:20 -07:00
mac80211_hwsim.c mac80211_hwsim: release driver when ieee80211_register_hw fails 2014-10-29 16:31:06 +01:00
mac80211_hwsim.h
Makefile
mwl8k.c PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
ray_cs.c
ray_cs.h ray_cs: Add include guards 2014-08-28 14:41:56 -04:00
rayctl.h ray_cs: Add include guards 2014-08-28 14:41:56 -04:00
rndis_wlan.c cfg80211: allow passing frame type to cfg80211_inform_bss() 2014-08-26 11:16:02 +02:00
wl3501_cs.c
wl3501.h
zd1201.c
zd1201.h