[OpenWrt-Devel] [PATCH] mac80211: squelch WARN_ON_ONCE() caused by inbalanced set/clear of beacon enable it.

Yousong Zhou yszhou4tech at gmail.com
Thu Jul 17 00:06:20 EDT 2014


Hi,

On 14 July 2014 07:39, Yousong Zhou <yszhou4tech at gmail.com> wrote:
> A WARN_ON_ONCE() dump was triggered on a MT7620A based device with
> following config.  Ticket #17032 can be closed with this patch.

There are other flaws I'd like to report here.  With the same config,
station can see the SSID on the air, but it can only connect to
OpenWrt__TT successfully.  When trying to connect to OpenWrt__T, the
following message was read from logread.

        Sun Jul 13 23:41:17 2014 daemon.info hostapd: wlan0: STA
38:bc:1a:10:d8:8b IEEE 802.11: authenticated
        Sun Jul 13 23:41:17 2014 daemon.info hostapd: wlan0: STA
38:bc:1a:10:d8:8b IEEE 802.11: associated (aid 1)
        Sun Jul 13 23:41:19 2014 daemon.info hostapd: wlan0: STA
38:bc:1a:10:d8:8b IEEE 802.11: authenticated
        Sun Jul 13 23:41:20 2014 daemon.info hostapd: wlan0: STA
38:bc:1a:10:d8:8b IEEE 802.11: authenticated
        Sun Jul 13 23:41:20 2014 daemon.info hostapd: wlan0: STA
38:bc:1a:10:d8:8b IEEE 802.11: associated (aid 1)
        Sun Jul 13 23:41:21 2014 daemon.info hostapd: wlan0: STA
38:bc:1a:10:d8:8b IEEE 802.11: authenticated
        Sun Jul 13 23:41:21 2014 daemon.info hostapd: wlan0: STA
38:bc:1a:10:d8:8b IEEE 802.11: associated (aid 1)
        Sun Jul 13 23:41:21 2014 daemon.info hostapd: wlan0: STA
38:bc:1a:10:d8:8b IEEE 802.11: associated (aid 1)
        ...


Regards.

            yousong

>
>         config wifi-iface
>                 option device   radio0
>                 option network  lan
>                 option mode     ap
>                 option ssid     OpenWrt__T
>                 option encryption none
>
>         config wifi-iface
>                 option device   radio0
>                 option network  lan
>                 option mode     ap
>                 option ssid     OpenWrt__TT
>                 option encryption none
>
> The dumped warning message.
>
>         [   23.890000] ------------[ cut here ]------------
>         [   23.900000] WARNING: at /home/yousong/trunk-openwrt/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7620a/compat-wireless-2014-05-22/drivers/net/wireless/rt2x00/rt2800lib.c:1092 rt2800_conf_tx+0x3c8/0x494 [rt2800lib]()
>         [   23.940000] Modules linked in: rt2800soc rt2800pci rt2800mmio
>                 rt2800lib pppoe ppp_async iptable_nat rt2x00soc rt2x00pci rt2x00mmio
>                 rt2x00lib pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv4 mac80211
>                 ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_tcpmss xt_string
>                 xt_statistic xt_state xt_recent xt_nat xt_multiport xt_mark xt_mac
>                 xt_limit xt_length xt_hl xt_helper xt_ecn xt_dscp xt_conntrack
>                 xt_connmark xt_connlimit xt_connbytes xt_comment xt_TCPMSS xt_REDIRECT
>                 xt_LOG xt_HL xt_DSCP xt_CT xt_CLASSIFY ts_kmp ts_fsm ts_bm slhc
>                 nf_nat_irc nf_nat_ftp nf_nat nf_defrag_ipv4 nf_conntrack_irc
>                 nf_conntrack_ftp iptable_raw iptable_mangle iptable_filter ipt_REJECT
>                 ipt_ECN ip_tables crc_itu_t crc_ccitt compat act_connmark act_skbedit
>                 act_mirred em_u32 cls_u32 cls_tcindex cls_flow cls_route cls_fw sch_hfsc
>                 sch_ingress ledtrig_usbdev ip6t_REJECT ip6table_raw ip6table_mangle
>                 ip6table_filter ip6_tables x_tables nf_conntrack_ipv6 nf_conntrack
>                 nf_defrag_ipv6 ifb ipv6 eeprom_93cx6 arc4 crypto_blkcipher leds_gpio
>                 gpio_button_hotplug usbcore nls_base usb_common
>         [   24.130000] CPU: 0 PID: 1502 Comm: hostapd Not tainted 3.10.44 #17
>         [   24.140000] Stack : 00000000 00000000 00000000 00000000 80322eea 00000036 8390f818 83154140
>                   80282f60 802d31fb 000005de 80322694 8390f818 83154140 00000008 0000001c
>                   00000001 8001f00c 00000003 8001ca78 83173bd8 83154140 802847ec 82897794
>                   00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
>                   00000000 00000000 00000000 00000000 00000000 00000000 00000000 82897720
>                   ...
>         [   24.210000] Call Trace:
>         [   24.220000] [<800121b4>] show_stack+0x48/0x70
>         [   24.220000] [<8001cb74>] warn_slowpath_common+0x78/0xa8
>         [   24.240000] [<8001cc2c>] warn_slowpath_null+0x18/0x24
>         [   24.250000] [<83164078>] rt2800_conf_tx+0x3c8/0x494 [rt2800lib]
>         [   24.260000]
>         [   24.260000] ---[ end trace ff7bf97509953be2 ]---
> ---
>  .../911-rt2x00-rt2x00lib-fix-beacon-bit-balance.patch       |   11 +++++++++++
>  1 file changed, 11 insertions(+)
>  create mode 100644 package/kernel/mac80211/patches/911-rt2x00-rt2x00lib-fix-beacon-bit-balance.patch
>
> diff --git a/package/kernel/mac80211/patches/911-rt2x00-rt2x00lib-fix-beacon-bit-balance.patch b/package/kernel/mac80211/patches/911-rt2x00-rt2x00lib-fix-beacon-bit-balance.patch
> new file mode 100644
> index 0000000..9154bda
> --- /dev/null
> +++ b/package/kernel/mac80211/patches/911-rt2x00-rt2x00lib-fix-beacon-bit-balance.patch
> @@ -0,0 +1,11 @@
> +--- a/drivers/net/wireless/rt2x00/rt2x00mac.c
> ++++ b/drivers/net/wireless/rt2x00/rt2x00mac.c
> +@@ -651,7 +651,7 @@ void rt2x00mac_bss_info_changed(struct i
> +                        * Upload beacon to the H/W. This is only required on
> +                        * USB devices. PCI devices fetch beacons periodically.
> +                        */
> +-                      if (rt2x00_is_usb(rt2x00dev))
> ++                      if (!rt2x00_is_pci(rt2x00dev))
> +                               rt2x00queue_update_beacon(rt2x00dev, vif);
> +
> +                       if (rt2x00dev->intf_beaconing == 1) {
> --
> 1.7.10.4
>
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list