mac80211: make ieee80211_check_concurrent_iface netdev-independent
authorJohannes Berg <johannes.berg@intel.com>
Tue, 19 Jun 2012 13:54:05 +0000 (15:54 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 26 Jun 2012 07:37:25 +0000 (09:37 +0200)
ieee80211_check_concurrent_iface() need not use the
netdev. Remove the use of the netdev here to prepare
the function for P2P device addition.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/iface.c

index 5768803..58c2ab3 100644 (file)
@@ -97,15 +97,12 @@ static int ieee80211_check_concurrent_iface(struct ieee80211_sub_if_data *sdata,
 {
        struct ieee80211_local *local = sdata->local;
        struct ieee80211_sub_if_data *nsdata;
-       struct net_device *dev = sdata->dev;
 
        ASSERT_RTNL();
 
        /* we hold the RTNL here so can safely walk the list */
        list_for_each_entry(nsdata, &local->interfaces, list) {
-               struct net_device *ndev = nsdata->dev;
-
-               if (ndev != dev && ieee80211_sdata_running(nsdata)) {
+               if (nsdata != sdata && ieee80211_sdata_running(nsdata)) {
                        /*
                         * Allow only a single IBSS interface to be up at any
                         * time. This is restricted because beacon distribution
@@ -124,7 +121,8 @@ static int ieee80211_check_concurrent_iface(struct ieee80211_sub_if_data *sdata,
                         * The remaining checks are only performed for interfaces
                         * with the same MAC address.
                         */
-                       if (!ether_addr_equal(dev->dev_addr, ndev->dev_addr))
+                       if (!ether_addr_equal(sdata->vif.addr,
+                                             nsdata->vif.addr))
                                continue;
 
                        /*