From: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: "John W. Linville" <linville@tuxdriver.com>,
<linux-wireless@vger.kernel.org>
Subject: Re: [RFC] cfg80211: Fix incompatible interfaces combination
Date: Tue, 5 Jun 2012 14:20:00 +0530 [thread overview]
Message-ID: <4FCDC838.9010209@qca.qualcomm.com> (raw)
In-Reply-To: <1338878939.4514.11.camel@jlt3.sipsolutions.net>
Hi Johannes,
>>> No, initialization was incorrect -- this is better:
>>> http://p.sipsolutions.net/e5ab0f3e38f90d6d.txt
>>>
>>
>> thanks a lot for the patch!
>> with the above patch ath9k seems be working fine with the single
>> incompatible adhoc interface.
>
> Ok, cool.
>
>> but i was just experimenting with ath9k(similar to iwlwifi having
>> hw->wiphy->n_iface_combinations> 1) with this patch.
>>
>> static const struct ieee80211_iface_limit a[] = {
>> { .max = 2, .types = BIT(NL80211_IFTYPE_STATION) },
>> };
>>
>> static const struct ieee80211_iface_limit b[] = {
>> { .max = 2, .types = BIT(NL80211_IFTYPE_MESH_POINT) },
>> };
>>
>> static const struct ieee80211_iface_combination if_comb[] = {
>> {.limits = a,
>> .n_limits = ARRAY_SIZE(a),
>> .max_interfaces = 2,
>> .num_different_channels = 1,
>> },
>> {.limits = b,
>> .n_limits = ARRAY_SIZE(b),
>> .max_interfaces = 2,
>> .num_different_channels = 1,
>> },
>>
>> };
>>
>> i could not add mesh interface if a managed interface is already there
>> and vice versa. if this is the expected behavior, then fine.
>
> No, that's not expected! Another bug!
>
> We should write some unit tests for this code I guess :-)
>
>> iteration 1: cfg80211_can_change_interface all_iftypes 4 and used_iftypes 84
>> iteration 2: cfg80211_can_change_interface all_iftypes 80 and used_iftypes 84
>
> Curious. Why did it accept it then? Where did you place the printk?
not sure whether i missed something, but it did not work for the above
case. printk just inside the condition check of your patch.
if ((all_iftypes & used_iftypes) != used_iftypes) {
+ printk("\nshafi %s all_iftypes %x and
used_iftypes %x", __func__, all_iftypes, used_iftypes);
+ goto cont;
+ }
i think we need to take 'all_iftypes' for all the
'n_interface_combinations' and then finally compare it with used_iftypes.
>
> I'm handling Linus's problem right now, so it'll be a bit until I can
> look at this in more detail again.
oh ok, sure.
--
thanks,
shafi
next prev parent reply other threads:[~2012-06-05 8:50 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-04 15:47 [RFC] cfg80211: Fix incompatible interfaces combination Mohammed Shafi Shajakhan
2012-06-04 15:52 ` Johannes Berg
2012-06-04 15:59 ` Mohammed Shafi Shajakhan
2012-06-04 16:13 ` Johannes Berg
2012-06-04 16:16 ` Mohammed Shafi Shajakhan
2012-06-04 16:18 ` Johannes Berg
2012-06-04 16:19 ` Johannes Berg
2012-06-05 6:36 ` Mohammed Shafi Shajakhan
2012-06-05 6:48 ` Johannes Berg
2012-06-05 8:50 ` Mohammed Shafi Shajakhan [this message]
2012-06-05 9:33 ` Johannes Berg
2012-06-05 9:54 ` Mohammed Shafi Shajakhan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4FCDC838.9010209@qca.qualcomm.com \
--to=mohammed@qca.qualcomm.com \
--cc=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.