batman-adv: Allow selecting BATMAN V if CFG80211 is not built

Message ID 20160920135917.24290-1-linus.luessing@c0d3.blue (mailing list archive)
State Accepted, archived
Commit aeb194c3a45fef9cc094e3509066bb2fa6627c05
Delegated to: Sven Eckelmann
Headers

Commit Message

Linus Lüssing Sept. 20, 2016, 1:59 p.m. UTC
  With the new stub for cfg80211_get_station(), we can now build the
BATMAN V protocol even with a kernel that was built without any
wireless support.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
---
 compat-include/net/cfg80211.h | 24 ++++++++++++++++++++++++
 net/batman-adv/Kconfig        |  2 +-
 2 files changed, 25 insertions(+), 1 deletion(-)
 create mode 100644 compat-include/net/cfg80211.h
  

Comments

Sven Eckelmann Sept. 20, 2016, 3:51 p.m. UTC | #1
On Dienstag, 20. September 2016 15:59:17 CEST Linus Lüssing wrote:
> With the new stub for cfg80211_get_station(), we can now build the
> BATMAN V protocol even with a kernel that was built without any
> wireless support.
> 
> Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
> ---

Haven't tested it yet but it looks good.

Reviewed-by: Sven Eckelmann <sven@narfation.org>

Kind regards,
	Sven
  
Sven Eckelmann Oct. 18, 2016, 11:31 a.m. UTC | #2
On Dienstag, 20. September 2016 15:59:17 CEST Linus Lüssing wrote:
> With the new stub for cfg80211_get_station(), we can now build the
> BATMAN V protocol even with a kernel that was built without any
> wireless support.
> 
> Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
> Reviewed-by: Sven Eckelmann <sven@narfation.org>
> ---
>  compat-include/net/cfg80211.h | 24 ++++++++++++++++++++++++
>  net/batman-adv/Kconfig        |  2 +-
>  2 files changed, 25 insertions(+), 1 deletion(-)
>  create mode 100644 compat-include/net/cfg80211.h

Applied in aeb194c3a45fef9cc094e3509066bb2fa6627c05 [1].

Kind regards,
	Sven

[1] https://git.open-mesh.org/batman-adv.git/commit/aeb194c3a45fef9cc094e3509066bb2fa6627c05
  

Patch

diff --git a/compat-include/net/cfg80211.h b/compat-include/net/cfg80211.h
new file mode 100644
index 0000000..8dbbf0e
--- /dev/null
+++ b/compat-include/net/cfg80211.h
@@ -0,0 +1,24 @@ 
+#ifndef _NET_BATMAN_ADV_COMPAT_NET_CFG80211_H_
+#define _NET_BATMAN_ADV_COMPAT_NET_CFG80211_H_
+
+#include <linux/version.h>
+#include_next <net/cfg80211.h>
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 8, 0)
+
+#if !IS_ENABLED(CONFIG_CFG80211)
+
+#define cfg80211_get_station(dev, mac_addr, sinfo) \
+	batadv_cfg80211_get_station(dev, mac_addr, sinfo)
+
+static inline int batadv_cfg80211_get_station(struct net_device *dev,
+					      const u8 *mac_addr,
+					      struct station_info *sinfo)
+{
+	return -ENOENT;
+}
+#endif
+
+#endif /* < KERNEL_VERSION(4, 8, 0) */
+
+#endif	/* _NET_BATMAN_ADV_COMPAT_NET_CFG80211_H_ */
diff --git a/net/batman-adv/Kconfig b/net/batman-adv/Kconfig
index f20742c..b73b96a 100644
--- a/net/batman-adv/Kconfig
+++ b/net/batman-adv/Kconfig
@@ -17,7 +17,7 @@  config BATMAN_ADV
 
 config BATMAN_ADV_BATMAN_V
 	bool "B.A.T.M.A.N. V protocol (experimental)"
-	depends on BATMAN_ADV && CFG80211=y || (CFG80211=m && BATMAN_ADV=m)
+	depends on BATMAN_ADV && !(CFG80211=m && BATMAN_ADV=y)
 	default n
 	help
 	  This option enables the B.A.T.M.A.N. V protocol, the successor