• Gabor Juhos's avatar
    rt2x00: zero-out rx_status · 028014c8
    Gabor Juhos authored
    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: default avatarGabor Juhos <juhosg@openwrt.org>
    Acked-by: default avatarGertjan van Wingerde <gwingerde@gmail.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    028014c8
rt2x00dev.c 35.2 KB