2011-04-15 02:22:21 +03:00
|
|
|
--- a/drivers/net/wireless/ath/ath9k/main.c
|
|
|
|
+++ b/drivers/net/wireless/ath/ath9k/main.c
|
2012-05-30 04:01:06 +03:00
|
|
|
@@ -1443,15 +1443,6 @@ static int ath9k_add_interface(struct ie
|
2011-04-15 02:22:21 +03:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2011-04-20 21:14:35 +03:00
|
|
|
- if ((ah->opmode == NL80211_IFTYPE_ADHOC) ||
|
|
|
|
- ((vif->type == NL80211_IFTYPE_ADHOC) &&
|
|
|
|
- sc->nvifs > 0)) {
|
2011-04-15 02:22:21 +03:00
|
|
|
- ath_err(common, "Cannot create ADHOC interface when other"
|
|
|
|
- " interfaces already exist.\n");
|
|
|
|
- ret = -EINVAL;
|
|
|
|
- goto out;
|
|
|
|
- }
|
|
|
|
-
|
2012-02-07 13:28:11 +02:00
|
|
|
ath_dbg(common, CONFIG, "Attach a VIF of type: %d\n", vif->type);
|
2011-04-15 02:22:21 +03:00
|
|
|
|
2012-02-07 13:28:11 +02:00
|
|
|
sc->nvifs++;
|
2012-05-30 04:01:06 +03:00
|
|
|
@@ -1476,15 +1467,6 @@ static int ath9k_change_interface(struct
|
2011-04-20 21:14:35 +03:00
|
|
|
mutex_lock(&sc->mutex);
|
|
|
|
ath9k_ps_wakeup(sc);
|
|
|
|
|
|
|
|
- /* See if new interface type is valid. */
|
|
|
|
- if ((new_type == NL80211_IFTYPE_ADHOC) &&
|
|
|
|
- (sc->nvifs > 1)) {
|
|
|
|
- ath_err(common, "When using ADHOC, it must be the only"
|
|
|
|
- " interface.\n");
|
|
|
|
- ret = -EINVAL;
|
|
|
|
- goto out;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
if (ath9k_uses_beacons(new_type) &&
|
|
|
|
!ath9k_uses_beacons(vif->type)) {
|
|
|
|
if (sc->nbcnvifs >= ATH_BCBUF) {
|
2012-04-17 00:08:41 +03:00
|
|
|
--- a/drivers/net/wireless/ath/ath9k/init.c
|
|
|
|
+++ b/drivers/net/wireless/ath/ath9k/init.c
|
2012-05-30 04:01:06 +03:00
|
|
|
@@ -656,6 +656,7 @@ static const struct ieee80211_iface_limi
|
2012-04-17 03:05:41 +03:00
|
|
|
#ifdef CONFIG_MAC80211_MESH
|
|
|
|
BIT(NL80211_IFTYPE_MESH_POINT) |
|
|
|
|
#endif
|
2012-04-17 00:08:41 +03:00
|
|
|
+ BIT(NL80211_IFTYPE_ADHOC) |
|
2012-04-17 03:05:41 +03:00
|
|
|
BIT(NL80211_IFTYPE_AP) |
|
|
|
|
BIT(NL80211_IFTYPE_P2P_GO) },
|
2012-04-17 00:08:41 +03:00
|
|
|
};
|