85 lines
3.4 KiB
Diff
85 lines
3.4 KiB
Diff
|
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||
|
Date: Sat, 11 Mar 2017 06:15:18 +0100
|
||
|
Subject: mac80211: revert upstream change breaking AP+11s VIF combinations
|
||
|
|
||
|
Fixes FS#619.
|
||
|
|
||
|
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
|
||
|
|
||
|
diff --git a/package/kernel/mac80211/patches/323-Revert-mac80211-validate-new-interface-s-beacon-inte.patch b/package/kernel/mac80211/patches/323-Revert-mac80211-validate-new-interface-s-beacon-inte.patch
|
||
|
new file mode 100644
|
||
|
index 0000000000000000000000000000000000000000..60d0e9181ef34560613b6cdb88c87441fd16143f
|
||
|
--- /dev/null
|
||
|
+++ b/package/kernel/mac80211/patches/323-Revert-mac80211-validate-new-interface-s-beacon-inte.patch
|
||
|
@@ -0,0 +1,48 @@
|
||
|
+From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||
|
+Date: Sat, 11 Mar 2017 06:07:03 +0100
|
||
|
+Subject: [PATCH] Revert "mac80211: validate new interface's beacon intervals"
|
||
|
+
|
||
|
+This reverts commit ac668afe414b1d41366f92a33b4d32428335db54, as it
|
||
|
+prevents simultaneous operation of AP and mesh point VIFs.
|
||
|
+
|
||
|
+Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
|
||
|
+---
|
||
|
+
|
||
|
+--- a/net/mac80211/cfg.c
|
||
|
++++ b/net/mac80211/cfg.c
|
||
|
+@@ -864,8 +864,6 @@ static int ieee80211_start_ap(struct wip
|
||
|
+ }
|
||
|
+ sdata->needed_rx_chains = sdata->local->rx_chains;
|
||
|
+
|
||
|
+- sdata->vif.bss_conf.beacon_int = params->beacon_interval;
|
||
|
+-
|
||
|
+ mutex_lock(&local->mtx);
|
||
|
+ err = ieee80211_vif_use_channel(sdata, ¶ms->chandef,
|
||
|
+ IEEE80211_CHANCTX_SHARED);
|
||
|
+@@ -896,6 +894,7 @@ static int ieee80211_start_ap(struct wip
|
||
|
+ vlan->vif.type);
|
||
|
+ }
|
||
|
+
|
||
|
++ sdata->vif.bss_conf.beacon_int = params->beacon_interval;
|
||
|
+ sdata->vif.bss_conf.dtim_period = params->dtim_period;
|
||
|
+ sdata->vif.bss_conf.enable_beacon = true;
|
||
|
+ sdata->vif.bss_conf.allow_p2p_go_ps = sdata->vif.p2p;
|
||
|
+--- a/net/mac80211/util.c
|
||
|
++++ b/net/mac80211/util.c
|
||
|
+@@ -3330,16 +3330,6 @@ int ieee80211_check_combinations(struct
|
||
|
+ if (WARN_ON(iftype >= NUM_NL80211_IFTYPES))
|
||
|
+ return -EINVAL;
|
||
|
+
|
||
|
+- if (sdata->vif.type == NL80211_IFTYPE_AP ||
|
||
|
+- sdata->vif.type == NL80211_IFTYPE_MESH_POINT) {
|
||
|
+- /*
|
||
|
+- * always passing this is harmless, since it'll be the
|
||
|
+- * same value that cfg80211 finds if it finds the same
|
||
|
+- * interface ... and that's always allowed
|
||
|
+- */
|
||
|
+- params.new_beacon_int = sdata->vif.bss_conf.beacon_int;
|
||
|
+- }
|
||
|
+-
|
||
|
+ /* Always allow software iftypes */
|
||
|
+ if (local->hw.wiphy->software_iftypes & BIT(iftype)) {
|
||
|
+ if (radar_detect)
|
||
|
diff --git a/package/kernel/mac80211/patches/522-mac80211_configure_antenna_gain.patch b/package/kernel/mac80211/patches/522-mac80211_configure_antenna_gain.patch
|
||
|
index 9a0f6f5dbd9f669174d65133c427ecfba533f950..6856d6919d474e817596f972a8bb6cf4c898d795 100644
|
||
|
--- a/package/kernel/mac80211/patches/522-mac80211_configure_antenna_gain.patch
|
||
|
+++ b/package/kernel/mac80211/patches/522-mac80211_configure_antenna_gain.patch
|
||
|
@@ -57,7 +57,7 @@
|
||
|
__NL80211_ATTR_AFTER_LAST,
|
||
|
--- a/net/mac80211/cfg.c
|
||
|
+++ b/net/mac80211/cfg.c
|
||
|
-@@ -2396,6 +2396,19 @@ static int ieee80211_get_tx_power(struct
|
||
|
+@@ -2395,6 +2395,19 @@ static int ieee80211_get_tx_power(struct
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
@@ -77,7 +77,7 @@
|
||
|
static int ieee80211_set_wds_peer(struct wiphy *wiphy, struct net_device *dev,
|
||
|
const u8 *addr)
|
||
|
{
|
||
|
-@@ -3627,6 +3640,7 @@ const struct cfg80211_ops mac80211_confi
|
||
|
+@@ -3626,6 +3639,7 @@ const struct cfg80211_ops mac80211_confi
|
||
|
.set_wiphy_params = ieee80211_set_wiphy_params,
|
||
|
.set_tx_power = ieee80211_set_tx_power,
|
||
|
.get_tx_power = ieee80211_get_tx_power,
|