OpenCloudOS-Kernel/drivers/net/wireless/rt2x00
Gabor Juhos 028014c81e rt2x00: zero-out rx_status
In commit 'mac80211: support radiotap vendor namespace RX data'
new fields were added to 'struct ieee80211_rx_status' and those
fileds must be zeroed. However the rt2x00 driver stores driver
specific data in the cb array of the rx skbs, so the fields
might contain garbage and this can cause unexpected behaviour.

The rt2x00 driver from the compat-wireless-2012-12-01
tarball caused the following warning:

  WARNING: at
  /devel/ramips/build_dir/target-mipsel_r2_uClibc-0.9.33.2/linux-ramips_rt305x/
  compat-wireless-2012-12-01/net/mac80211/rx.c:115 ieee80211_rx_irqsafe+0x274/0xbcc
  [mac80211]()
  Modules linked in: dwc_otg ledtrig_usbdev nf_nat_irc
  nf_nat_ftp nf_conntrack_irc nf_conntrack_ftp ipt_MASQUERADE
  iptable_nat nf_nat pppoe xt_conntrack xt_CT xt_NOTRACK iptable_raw
  xt_state nf_conntrack_ipv4 nf_defrag_ipv4 nf_conntrack pppox
  ipt_REJECT xt_TCPMSS xt_comment xt_multiport xt_mac xt_limit
  iptable_mangle iptable_filter ip_tables xt_tcpudp x_tables ppp_async
  ppp_generic slhc rt2800pci(O) rt2800lib(O) rt2x00soc(O) rt2x00pci(O)
  rt2x00lib(O) mac80211(O) usbcore usb_common nls_base crc_itu_t
  crc_ccitt eeprom_93cx6 cfg80211(O) compat(O) arc4 aes_generic
  crypto_blkcipher cryptomgr aead crypto_hash crypto_algapi leds_gpio
  button_hotplug(O) gpio_keys_polled input_polldev input_core
  Call Trace:
  [<801e96b4>] dump_stack+0x8/0x34
  [<80010a9c>] warn_slowpath_common+0x78/0xa4
  [<80010ae0>] warn_slowpath_null+0x18/0x24
  [<80a9710c>] ieee80211_rx_irqsafe+0x274/0xbcc [mac80211]

The patch ensures that each field gets initialized with
zeroes.

Cc: <users@rt2x00.serialmonkey.com>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2012-12-17 15:45:17 -05:00
..
Kconfig rt2x00 : RT3290 chip support v4 2012-06-20 14:41:49 -04:00
Makefile
rt2x00.h rt2x00: Replace open coded interface checking with interface combinations. 2012-09-25 15:57:44 -04:00
rt2x00config.c mac80211: add time synchronisation with BSS for assoc 2012-07-12 12:10:46 +02:00
rt2x00crypto.c rt2x00: Don't use queue entry as parameter when creating TX descriptor. 2011-07-07 13:20:58 -04:00
rt2x00debug.c rt2x00: Add debugfs access for rfcsr register 2012-05-08 21:53:46 -04:00
rt2x00debug.h rt2x00: Add debugfs access for rfcsr register 2012-05-08 21:53:46 -04:00
rt2x00dev.c rt2x00: zero-out rx_status 2012-12-17 15:45:17 -05:00
rt2x00dump.h
rt2x00firmware.c
rt2x00leds.c rt2x00: increase led's name buffer length 2012-04-09 16:09:34 -04:00
rt2x00leds.h
rt2x00lib.h rt2x00: Use GFP_KERNEL for rx buffer allocation on USB devices 2012-04-23 15:35:29 -04:00
rt2x00link.c rt2x00:Add VCO recalibration 2012-02-27 14:05:44 -05:00
rt2x00mac.c mac80211: clarify interface iteration and make it configurable 2012-11-09 17:34:35 +01:00
rt2x00pci.c rt2x00 : RT3290 chip support v4 2012-06-20 14:41:49 -04:00
rt2x00pci.h
rt2x00queue.c mac80211: move TX station pointer and restructure TX 2012-07-31 16:18:39 +02:00
rt2x00queue.h rt2x00: remove unused argument 2012-07-11 15:38:27 -04:00
rt2x00reg.h
rt2x00soc.c
rt2x00soc.h
rt2x00usb.c rt2x00: remove unused argument 2012-07-11 15:38:27 -04:00
rt2x00usb.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem 2011-05-05 13:32:35 -04:00
rt61pci.c rt2x00: remove __dev* attributes 2012-12-06 15:04:58 -05:00
rt61pci.h rt2x00: Unify GPIO register field namings 2012-09-07 15:08:40 -04:00
rt73usb.c rt2x00: usb: fix reset resume 2012-10-24 13:18:07 -04:00
rt73usb.h rt2x00: Unify GPIO register field namings 2012-09-07 15:08:40 -04:00
rt2400pci.c rt2x00: remove __dev* attributes 2012-12-06 15:04:58 -05:00
rt2400pci.h rt2x00: Unify GPIO register field namings 2012-09-07 15:08:40 -04:00
rt2500pci.c rt2x00: remove __dev* attributes 2012-12-06 15:04:58 -05:00
rt2500pci.h rt2x00: Unify GPIO register field namings 2012-09-07 15:08:40 -04:00
rt2500usb.c rt2x00: usb: fix reset resume 2012-10-24 13:18:07 -04:00
rt2500usb.h rt2x00: Unify GPIO register field namings 2012-09-07 15:08:40 -04:00
rt2800.h rt2x00: rt2800lib: introduce RFCSR3_VCOCAL_EN 2012-12-03 13:52:01 -05:00
rt2800lib.c Merge branch 'for-john' of git://git.sipsolutions.net/mac80211-next 2012-12-11 16:04:03 -05:00
rt2800lib.h rt2x00: rt2800 - Make probe_hw function common between PCI and USB. 2012-09-07 15:08:40 -04:00
rt2800pci.c rt2x00: remove __dev* attributes 2012-12-06 15:04:58 -05:00
rt2800pci.h rt2x00 : RT3290 chip support v4 2012-06-20 14:41:49 -04:00
rt2800usb.c rt2800usb: reorganize 2001:3c1e in usb id table Wi-Fi adapter 2012-12-11 15:55:02 -05:00
rt2800usb.h