|
@@ -0,0 +1,84 @@
|
|
|
+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,
|