[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 02:53:06 EDT 2014


Hi,

On 17 July 2014 12:06, Yousong Zhou <yszhou4tech at gmail.com> wrote:
> 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)
>         ...
>

Played with macaddr option in wifi-iface,  looks like the above
failure was caused by duplicate BSSID in the air...  I used a EEPROM
file from a previous thread and extract MAC address from there.

There is another problem though that if I specify option macaddr for
only one of the two wifi-iface sections, hostapd cannot startup
correctly.  Below is the message from netifd/hostapd.

Sun Jul 13 22:29:31 2014 daemon.notice netifd: radio0 (3091):
Configuration file: /var/run/hostapd-phy0.conf
Sun Jul 13 22:29:31 2014 daemon.notice netifd: radio0 (3091): Using
interface wlan0 with hwaddr 02:0c:43:76:20:58 and ssid "OpenWrt__T"
Sun Jul 13 22:29:31 2014 daemon.notice netifd: radio0 (3091): Failed
to add BSS (BSSID=00:0c:43:76:20:58)
Sun Jul 13 22:29:31 2014 daemon.notice netifd: radio0 (3091):
Interface initialization failed
Sun Jul 13 22:29:31 2014 daemon.notice netifd: radio0 (3091): wlan0:
interface state UNINITIALIZED->DISABLED
Sun Jul 13 22:29:31 2014 daemon.notice netifd: radio0 (3091): wlan0: AP-DISABLED
Sun Jul 13 22:29:31 2014 daemon.notice netifd: radio0 (3091): wlan0:
Unable to setup interface.
Sun Jul 13 22:29:31 2014 daemon.notice netifd: radio0 (3091):
hostapd_free_hapd_data: Interface wlan0-1 wasn't started
Sun Jul 13 22:29:31 2014 daemon.notice netifd: radio0 (3091):
hostapd_free_hapd_data: Interface wlan0 wasn't started
Sun Jul 13 22:29:31 2014 daemon.notice netifd: radio0 (3091): Device
setup failed: HOSTAPD_START_FAILED


Regards.

                yousong


>
> 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