On Friday 01 June 2012 12:43 PM, Johannes Berg wrote:
On Fri, 2012-06-01 at 12:39 +0530, Mohammed Shafi Shajakhan wrote:
Hi Johannes,

On Friday 01 June 2012 12:14 PM, Johannes Berg wrote:
On Fri, 2012-06-01 at 12:09 +0530, Mohammed Shafi Shajakhan wrote:
From: Mohammed Shafi Shajakhan<[email protected]>

In ath9k we make sure the following two things
*if the first interface is ADHOC we cannot have any other interface.
*we cannot add an ADHOC interface if there is already an interface
is present.

-       if ((ah->opmode == NL80211_IFTYPE_ADHOC) ||
-           ((vif->type == NL80211_IFTYPE_ADHOC)&&
-            sc->nvifs>   0)) {
-               ath_err(common, "Cannot create ADHOC interface when other"
-                       " interfaces already exist.\n");
+       if ((ah->opmode == NL80211_IFTYPE_ADHOC)&&   (sc->nvifs>   0)) {
+               ath_err(common, "Cannot create any other interface when an ADHOC 
interface already exists.\n");
+               ret = -EINVAL;
+               goto out;
+       }
+
+       if ((vif->type == NL80211_IFTYPE_ADHOC)&&   (sc->nvifs>   0)) {
+               ath_err(common, "Cannot create ADHOC interface when other interfaces 
already exist.\n");

You could just remove the entire check since the interface combinations
you advertise don't allow it, I think? Or just fix those
combinations :-)

i did not check this before, thanks a lot for your inputs. will send a
proper v2 after checking this out.

If this is needed for stable, you might want to keep this patch&  send
another one to remove it.

thanks Johannes.
i was looking at how to fix this properly in iface combination advertised to mac80211. got few doubts regarding this

*if an interface type is not all advertised in the ieee80211_iface_combination then it cannot it be co-existing with any other interfaces ?
please let me know is there some other way do that.

if we advertise something like this

static const struct ieee80211_iface_limit if_limits[] = {
        {set1
        .... },
        {set 2
        .... },
};

then interface types in set1 and set2 co-exist as per the logic in cfg80211_can_change_interface. is there already a way we can make
set1 and set2 interface types mutually exclusive ? thanks!



--
thanks,
shafi
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to