[OpenWrt-Devel] [PATCH 2/3] mac80211: Allow ADHOC mode and different beacon intervals

Hauke Mehrtens hauke at hauke-m.de
Sat Nov 9 11:06:05 EST 2019


ath10k-ct supports the combination to select ADHOC (IBSS) mode and
different beacon intervals together. mac80211 does not like this
combination, but Ben says this is ok, so remove this check.

Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---

As an alternative we can also remove the beacon_int_min_gcd setting from ath10k-ct.


 ...ckports-pci-Include-linux-pci-aspm.h.patch |  6 ++--
 ..._disable_link_state-wrapper-with-ret.patch |  2 +-
 .../patches/subsys/400-allow-ibss-mixed.patch | 29 +++++++++++++++++++
 3 files changed, 33 insertions(+), 4 deletions(-)
 create mode 100644 package/kernel/mac80211/patches/subsys/400-allow-ibss-mixed.patch

diff --git a/package/kernel/mac80211/patches/build/100-backports-pci-Include-linux-pci-aspm.h.patch b/package/kernel/mac80211/patches/build/100-backports-pci-Include-linux-pci-aspm.h.patch
index 5faeb96748..91740a62b9 100644
--- a/package/kernel/mac80211/patches/build/100-backports-pci-Include-linux-pci-aspm.h.patch
+++ b/package/kernel/mac80211/patches/build/100-backports-pci-Include-linux-pci-aspm.h.patch
@@ -11,9 +11,9 @@ Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
 
 --- a/backport-include/linux/pci.h
 +++ b/backport-include/linux/pci.h
-@@ -3,6 +3,10 @@
- #include_next <linux/pci.h>
- #include <linux/version.h>
+@@ -7,6 +7,10 @@
+ #include <linux/pci-aspm.h>
+ #endif
  
 +#if LINUX_VERSION_IS_LESS(5,4,0)
 +#include <linux/pci-aspm.h>
diff --git a/package/kernel/mac80211/patches/build/101-backport-add-pci_disable_link_state-wrapper-with-ret.patch b/package/kernel/mac80211/patches/build/101-backport-add-pci_disable_link_state-wrapper-with-ret.patch
index a41879184b..7691522e73 100644
--- a/package/kernel/mac80211/patches/build/101-backport-add-pci_disable_link_state-wrapper-with-ret.patch
+++ b/package/kernel/mac80211/patches/build/101-backport-add-pci_disable_link_state-wrapper-with-ret.patch
@@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/backport-include/linux/pci.h
 +++ b/backport-include/linux/pci.h
-@@ -236,4 +236,29 @@ static inline struct pci_dev *pcie_find_
+@@ -240,4 +240,29 @@ static inline struct pci_dev *pcie_find_
  	(PCI_IRQ_LEGACY | PCI_IRQ_MSI | PCI_IRQ_MSIX)
  #endif
  
diff --git a/package/kernel/mac80211/patches/subsys/400-allow-ibss-mixed.patch b/package/kernel/mac80211/patches/subsys/400-allow-ibss-mixed.patch
new file mode 100644
index 0000000000..52200b6ecc
--- /dev/null
+++ b/package/kernel/mac80211/patches/subsys/400-allow-ibss-mixed.patch
@@ -0,0 +1,29 @@
+ath10k-ct starting with version 5.2 allows the combination of 
+NL80211_IFTYPE_ADHOC and beacon_int_min_gcd in ath10k_10x_ct_if_comb 
+which triggers this warning. Ben told me that this is not a big problem 
+and we should ignore this.
+
+--- a/net/wireless/core.c
++++ b/net/wireless/core.c
+@@ -613,21 +613,6 @@ static int wiphy_verify_combinations(str
+ 				    c->limits[j].max > 1))
+ 				return -EINVAL;
+ 
+-			/*
+-			 * This isn't well-defined right now. If you have an
+-			 * IBSS interface, then its beacon interval may change
+-			 * by joining other networks, and nothing prevents it
+-			 * from doing that.
+-			 * So technically we probably shouldn't even allow AP
+-			 * and IBSS in the same interface, but it seems that
+-			 * some drivers support that, possibly only with fixed
+-			 * beacon intervals for IBSS.
+-			 */
+-			if (WARN_ON(types & BIT(NL80211_IFTYPE_ADHOC) &&
+-				    c->beacon_int_min_gcd)) {
+-				return -EINVAL;
+-			}
+-
+ 			cnt += c->limits[j].max;
+ 			/*
+ 			 * Don't advertise an unsupported type
-- 
2.20.1


_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list