Re: rt2x00: allow AP and mesh mode to operate simultaneously

From: Yeoh Chun-Yeow
Date: Wed Feb 27 2013 - 10:05:29 EST


Hi, Simon

Thanks for reporting. It seems that I have not done enough testing on this.

Anyway, Felix has submitted a patch on this:
http://www.spinics.net/lists/linux-wireless/msg104045.html

----
Chun-Yeow

On Wed, Feb 27, 2013 at 8:12 PM, Simon Arlott <simon@xxxxxxxxxxx> wrote:
> On 21/02/13 03:33, Linux Kernel Mailing List wrote:
>> Gitweb: http://git.kernel.org/linus/;a=commit;h=4a5fc6d7074de72dd836fbb9c5cd79f9a491871c
>> Commit: 4a5fc6d7074de72dd836fbb9c5cd79f9a491871c
>> Parent: 92941382e8b80c55a4ad06b88a3bf95110969693
>> Author: Chun-Yeow Yeoh <yeohchunyeow@xxxxxxxxx>
>> AuthorDate: Fri Jan 25 12:47:50 2013 +0800
>> Committer: John W. Linville <linville@xxxxxxxxxxxxx>
>> CommitDate: Wed Jan 30 15:06:44 2013 -0500
>>
>> rt2x00: allow AP and mesh mode to operate simultaneously
>>
>> Allow AP and Mesh mode to operate concurrently using
>> single radio. Verify this using fonera 2.0n featuring
>> RT3052 chipset and also TP-LINK TL-WN727N featuring
>> RT5370 chipset.
>
> This breaks the probe of my RT3071 device (Tenda W322UA):
> [ 4376.598444] phy0 -> rt2x00_set_chip: Info - Chipset detected - rt: 3071, rf: 0008, rev: 021c.
> [ 4376.598700] ------------[ cut here ]------------
> [ 4376.598717] WARNING: at net/wireless/core.c:443 wiphy_register+0x549/0x6c0 [cfg80211]()
> [ 4376.598719] Hardware name: empty
> [ 4376.598721] Modules linked in: rt2800usb(+) rt2800lib rt2x00usb rt2x00lib mac80211 cfg80211 8021q garp bnep rfcomm bridge stp ext4 jbd2 nf_conntrack_ipv6 ipt_REJECT nf_defrag_ipv6 iptable_filter xt_state iptable_mangle ip6t_REJECT iptable_nat xt_tcpudp nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat ip6table_filter xt_dscp xt_string xt_owner xt_NFQUEUE xt_multiport xt_mark xt_iprange xt_hashlimit xt_conntrack ip_tables xt_connmark nf_conntrack ip6_tables x_tables fuse btusb crc_ccitt kvm_amd bluetooth kvm zaurus cdc_ether usbnet crc16 [last unloaded: cfg80211]
> [ 4376.598758] Pid: 15052, comm: modprobe Tainted: G W 3.8.0+ #09507-g19cd6a2
> [ 4376.598760] Call Trace:
> [ 4376.598770] [<ffffffff8104912a>] warn_slowpath_common+0x7a/0xc0
> [ 4376.598773] [<ffffffff81049185>] warn_slowpath_null+0x15/0x20
> [ 4376.598779] [<ffffffffa0293a79>] wiphy_register+0x549/0x6c0 [cfg80211]
> [ 4376.598786] [<ffffffffa002c57f>] ? rt2x00lib_probe_dev+0x34f/0x770 [rt2x00lib]
> [ 4376.598801] [<ffffffffa02c75e7>] ieee80211_register_hw+0x3a7/0x830 [mac80211]
> [ 4376.598805] [<ffffffffa002c7c2>] rt2x00lib_probe_dev+0x592/0x770 [rt2x00lib]
> [ 4376.598809] [<ffffffffa001c320>] rt2x00usb_probe+0x160/0x220 [rt2x00usb]
> [ 4376.598818] [<ffffffffa00ef240>] rt2800usb_probe+0x10/0x20 [rt2800usb]
> [ 4376.598830] [<ffffffff814b6b78>] usb_probe_interface+0x1d8/0x2b0
> [ 4376.598835] [<ffffffff81411406>] driver_probe_device+0x76/0x230
> [ 4376.598838] [<ffffffff8141165b>] __driver_attach+0x9b/0xa0
> [ 4376.598842] [<ffffffff814115c0>] ? driver_probe_device+0x230/0x230
> [ 4376.598845] [<ffffffff8140f916>] bus_for_each_dev+0x56/0x90
> [ 4376.598849] [<ffffffff81410f59>] driver_attach+0x19/0x20
> [ 4376.598851] [<ffffffff81410a96>] bus_add_driver+0xf6/0x260
> [ 4376.598854] [<ffffffff81411b73>] driver_register+0x73/0x160
> [ 4376.598858] [<ffffffffa010a000>] ? 0xffffffffa0109fff
> [ 4376.598861] [<ffffffff814b587a>] usb_register_driver+0x9a/0x150
> [ 4376.598879] [<ffffffffa010a000>] ? 0xffffffffa0109fff
> [ 4376.598892] [<ffffffffa010a01e>] rt2800usb_driver_init+0x1e/0x1000 [rt2800usb]
> [ 4376.598906] [<ffffffff810002f6>] do_one_initcall+0x116/0x160
> [ 4376.598915] [<ffffffff810986a2>] load_module+0x1b52/0x22a0
> [ 4376.598918] [<ffffffff810947c0>] ? sys_getegid16+0x50/0x50
> [ 4376.598922] [<ffffffff81098e94>] sys_init_module+0xa4/0xd0
> [ 4376.598927] [<ffffffff817544d6>] system_call_fastpath+0x1a/0x1f
> [ 4376.598929] ---[ end trace 52dc8aa1355df590 ]---
> [ 4376.598932] interface_modes=0000007e types=00000088 <-- interface_modes does not contain NL80211_IFTYPE_MESH_POINT
> [ 4376.598934] phy0 -> rt2x00lib_probe_dev: Error - Failed to initialize hw.
> [ 4376.598958] rt2800usb: probe of 1-4.6:1.0 failed with error -22
>
>> Signed-off-by: Chun-Yeow Yeoh <yeohchunyeow@xxxxxxxxx>
>> Acked-by: Helmut Schaa <helmut.schaa@xxxxxxxxxxxxx>
>> Acked-by: Gertjan van Wingerde <gwingerde@xxxxxxxxx>
>> Signed-off-by: John W. Linville <linville@xxxxxxxxxxxxx>
>> ---
>> drivers/net/wireless/rt2x00/rt2x00dev.c | 3 ++-
>> 1 files changed, 2 insertions(+), 1 deletions(-)
>>
>> diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c
>> index 92a0aa5..1031db6 100644
>> --- a/drivers/net/wireless/rt2x00/rt2x00dev.c
>> +++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
>> @@ -1236,7 +1236,8 @@ static inline void rt2x00lib_set_if_combinations(struct rt2x00_dev *rt2x00dev)
>> */
>> if_limit = &rt2x00dev->if_limits_ap;
>> if_limit->max = rt2x00dev->ops->max_ap_intf;
>> - if_limit->types = BIT(NL80211_IFTYPE_AP);
>> + if_limit->types = BIT(NL80211_IFTYPE_AP) |
>> + BIT(NL80211_IFTYPE_MESH_POINT);
>>
>> /*
>> * Build up AP interface combinations structure.
>
> --
> Simon Arlott
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/