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

Yousong Zhou yszhou4tech at gmail.com
Sun Jul 13 19:39:11 EDT 2014


A WARN_ON_ONCE() dump was triggered on a MT7620A based device with
following config.  Ticket #17032 can be closed with this patch.

	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