Skip to contentSkip to conversation

d80211: create net/wireless/Kconfig and make nl80211 optional

PATCH In review James Ketrenos 3 participants 9 messages Feb 23, 2007

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 d80211: create net/wireless/Kconfig and make nl80211 optional

Move the wireless Kconfig options into their own wireless/Kconfig and add a CONFIG_CFG80211_NL80211 configuration option to allow nl80211 support to be optionally included (default =y)

This also adds Johannes' stub functions for nl80211_init and nl80211_exit when CONFIG_CFG80211_NL80211 is not defined.

---
 net/wireless/Kconfig  |   42 ++++++++++++++++++++++++++++++++++++++++++
 net/wireless/Makefile |    3 ++-
 3 files changed, 45 insertions(+), 17 deletions(-)

---

net/wireless/Kconfig new file +42 -0
new file mode 100644
index 0000000..89308d0
@@ -0,0 +1,42 @@
+config CFG80211
+        tristate "Improved wireless configuration API"
+        select WIRELESS_EXT
+
+config CFG80211_WEXT_COMPAT
+        bool "cfg80211 Wireless Extensions compatibility"
+        depends CFG80211
+        default y
+        ---help---
+        This option allows using devices whose drivers have been
+        converted to use the new cfg80211 with wireless extensions,
+        providing WE-20 compatibility.
+	
+        Note that cfg80211's "native" interface is nl80211 using
+        generic netlink. The wireless extensions are being
+        deprecated, but userspace tools may still be using them.
+
+        NOTE: wireless extension support (WIRELESS_EXT) is currently a
+        built-in based on 'Wireless Extension' support (selected
+        when CFG80211 is enabled).
+
+        If unsure, say Y.
+
+config CFG80211_NL80211
+	tristate "nl80211 new netlink interface support"
+	depends CFG80211
+	default y
+	---help---
+        This option turns on the new netlink interface
+        (nl80211) support in cfg80211.
+	
+        If =n, drivers using d80211 will be configured via
+        wireless extension support provided by that subsystem.
+
+        If =m, the module will be called nl80211.ko
+
+        NOTE: wireless extension support (WIRELESS_EXT) is currently a
+        built-in based on 'Wireless Extension' support (selected
+        when CFG80211 is enabled).
+
+        If unsure, say Y.
+
net/wireless/Makefile +2 -1
index c52c251..1f47511 100644
@@ -1,6 +1,7 @@
 obj-$(CONFIG_CFG80211) += cfg80211.o
 
-cfg80211-y += core.o sysfs.o nl80211.o
+cfg80211-y += core.o sysfs.o
+cfg80211-$(CONFIG_NL80211) += nl80211.o
 cfg80211-$(CONFIG_CFG80211_WEXT_COMPAT) += wext-compat.o
 
 ifeq ($(CONFIG_CFG80211),m)
net/wireless/nl80211.h +10 -0
@@ -1,7 +1,17 @@
 #ifndef __NET_WIRELESS_NL80211_H
 #define __NET_WIRELESS_NL80211_H
 
+#ifdef CONFIG_CFG80211_NL80211
 extern int nl80211_init(void);
 extern void nl80211_exit(void);
+#else
+static inline int nl80211_init(void)
+{
+	return 0;
+}
+static inline void nl80211_exit(void)
+{
+}
+#endif /* CONFIG_CFG80211_NL80211 */
 
 #endif /* __NET_WIRELESS_NL80211_H */
maintainer
#1 lore raw
Quoted 3 lines · James Ketrenos

Move the wireless Kconfig options into their own wireless/Kconfig and add a CONFIG_CFG80211_NL80211 configuration option to allow nl80211 support to be optionally included (default =y)

I think this one is missing the changes in net/Kconfig.

And I should have looked closer before, sorry.

+config CFG80211
+ tristate "Improved wireless configuration API"
+ select WIRELESS_EXT

Why is that select WIRELESS_EXT? CFG80211 doesn't need that, d80211 does and correctly selects it.

johannes

#2 lore raw
Quoted 13 lines · Johannes Berg
Quoted 3 lines · James Ketrenos

Move the wireless Kconfig options into their own wireless/Kconfig and add a CONFIG_CFG80211_NL80211 configuration option to allow nl80211 support to be optionally included (default =y)

I think this one is missing the changes in net/Kconfig.

And I should have looked closer before, sorry.

net/wireless/Kconfig new file +3 -0
+config CFG80211
+        tristate "Improved wireless configuration API"
+        select WIRELESS_EXT
Quoted 2 lines

Why is that select WIRELESS_EXT? CFG80211 doesn't need that, d80211 does and correctly selects it.

Confusion mostly...

I've removed it.

James

author Acked-by Johannes Berg
#3 lore raw
In reply to Johannes Berg

Ok... this time for sure. Maybe :) At least its Friday.

James

----

[PATCH] create net/wireless/Kconfig and make nl80211 optional

Move the wireless Kconfig options into their own wireless/Kconfig and add a CONFIG_NL80211 configuration option to allow nl80211 support to be optionally included (default =y)

This also implements stub functions for nl80211_init and nl80211_exit when CONFIG_NL80211 is not defined.

---
 net/Kconfig            |   17 +----------------
 net/wireless/Kconfig   |   33 +++++++++++++++++++++++++++++++++
 net/wireless/Makefile  |    3 ++-
 net/wireless/nl80211.h |   10 ++++++++++
 4 files changed, 46 insertions(+), 17 deletions(-)

---

net/Kconfig +1 -16
index 3bff36e..6fa4d68 100644
@@ -228,22 +228,7 @@ config WIRELESS_EXT
 config FIB_RULES
 	bool
 
-config CFG80211
-	tristate "Improved wireless configuration API"
-
-config CFG80211_WEXT_COMPAT
-	bool "cfg80211 Wireless Extensions compatibility"
-	depends CFG80211
-	default y
-	---help---
-	This option allows using devices whose drivers have been
-	converted to use the new cfg80211 with wireless extensions,
-	providing WE-20 compatibility. Note that cfg80211's "native"
-	interface is nl80211 using generic netlink. The wireless
-	extensions are being deprecated, but userspace tools may still
-	be using them.
-
-	If unsure, say Y.
+source "net/wireless/Kconfig"
 
 endif   # if NET
 endmenu # Networking
net/wireless/Kconfig new file +33 -0
new file mode 100644
index 0000000..7e83504
@@ -0,0 +1,33 @@
+config CFG80211
+        tristate "Improved wireless configuration API"
+
+config CFG80211_WEXT_COMPAT
+        bool "cfg80211 Wireless Extensions compatibility"
+        depends CFG80211
+        default y
+        ---help---
+        This option allows using devices whose drivers have been
+        converted to use the new cfg80211 with wireless extensions,
+        providing WE-20 compatibility.
+	
+        Note that cfg80211's "native" interface is nl80211 using
+        generic netlink. The wireless extensions are being
+        deprecated, but userspace tools may still be using them.
+
+        If unsure, say Y.
+
+config NL80211
+	tristate "nl80211 new netlink interface support"
+	depends CFG80211
+	default y
+	---help---
+        This option turns on the new netlink interface
+        (nl80211) support in cfg80211.
+	
+        If =n, drivers using d80211 will be configured via
+        wireless extension support provided by that subsystem.
+
+        If =m, the module will be called nl80211.ko
+
+        If unsure, say Y.
+
net/wireless/Makefile +2 -1
index c52c251..1f47511 100644
@@ -1,6 +1,7 @@
 obj-$(CONFIG_CFG80211) += cfg80211.o
 
-cfg80211-y += core.o sysfs.o nl80211.o
+cfg80211-y += core.o sysfs.o
+cfg80211-$(CONFIG_NL80211) += nl80211.o
 cfg80211-$(CONFIG_CFG80211_WEXT_COMPAT) += wext-compat.o
 
 ifeq ($(CONFIG_CFG80211),m)
net/wireless/nl80211.h +10 -0
index 0edc7a4..31524c7 100644
@@ -1,7 +1,17 @@
 #ifndef __NET_WIRELESS_NL80211_H
 #define __NET_WIRELESS_NL80211_H
 
+#ifdef CONFIG_NL80211
 extern int nl80211_init(void);
 extern void nl80211_exit(void);
+#else
+static inline int nl80211_init(void)
+{
+	return 0;
+}
+static inline void nl80211_exit(void)
+{
+}
+#endif /* CONFIG_NL80211 */
 
 #endif /* __NET_WIRELESS_NL80211_H */
#4 lore raw
Quoted 1 line · On Fri, 23 Feb 2007 13:47:37 -0800 James Ketrenos wrote:

Ok... this time for sure. Maybe :) At least its Friday.

almost ....

Quoted 54 lines

James

----

[PATCH] create net/wireless/Kconfig and make nl80211 optional

---
  net/Kconfig            |   17 +----------------
  net/wireless/Kconfig   |   33 +++++++++++++++++++++++++++++++++
  net/wireless/Makefile  |    3 ++-
  net/wireless/nl80211.h |   10 ++++++++++
  4 files changed, 46 insertions(+), 17 deletions(-)

---

net/Kconfig +1 -16
index 3bff36e..6fa4d68 100644
@@ -228,22 +228,7 @@ config WIRELESS_EXT
  config FIB_RULES
  	bool
 
-config CFG80211
-	tristate "Improved wireless configuration API"
-
-config CFG80211_WEXT_COMPAT
-	bool "cfg80211 Wireless Extensions compatibility"
-	depends CFG80211
-	default y
-	---help---
-	This option allows using devices whose drivers have been
-	converted to use the new cfg80211 with wireless extensions,
-	providing WE-20 compatibility. Note that cfg80211's "native"
-	interface is nl80211 using generic netlink. The wireless
-	extensions are being deprecated, but userspace tools may still
-	be using them.
-
-	If unsure, say Y.
+source "net/wireless/Kconfig"
 
  endif   # if NET
  endmenu # Networking
net/wireless/Kconfig new file +7 -0
new file mode 100644
index 0000000..7e83504
@@ -0,0 +1,33 @@
+config CFG80211
+        tristate "Improved wireless configuration API"
+
+config CFG80211_WEXT_COMPAT
+        bool "cfg80211 Wireless Extensions compatibility"
+        depends CFG80211
+        default y

net/wireless/Kconfig line 17

Quoted 10 lines
net/wireless/Kconfig new file +10 -0
+        ---help---
+        This option allows using devices whose drivers have been
+        converted to use the new cfg80211 with wireless extensions,
+        providing WE-20 compatibility.
+	
+        Note that cfg80211's "native" interface is nl80211 using
+        generic netlink. The wireless extensions are being
+        deprecated, but userspace tools may still be using them.
+
+        If unsure, say Y.

All of the text under ---help--- should be (should have been :) indented 2 spaces... (yes, I know it wasn't before, but should have been).

---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

maintainer
#5 lore raw
In reply to James Ketrenos

I guess this'll never end...

net/wireless/Makefile line 4

Quoted 3 lines
net/wireless/Makefile +2 -1
-cfg80211-y += core.o sysfs.o nl80211.o
+cfg80211-y += core.o sysfs.o
+cfg80211-$(CONFIG_NL80211) += nl80211.o

That won't work correctly. To build nl80211 as an extra module you'll need obj-m += nl80211.o, but to build it into cfg80211 when it's NL80211=y you need cfg80211-y += nl80211.o

Could you live with it not being a module itself so we can just make it a boolean and use the current way it's done in the Makefile?

johannes

author Acked-by Johannes Berg
#6 lore raw
Quoted 6 lines · Johannes Berg

I guess this'll never end...

Quoted 1 line

+cfg80211-$(CONFIG_NL80211) += nl80211.o

Could you live with it not being a module itself so we can just make it a boolean and use the current way it's done in the Makefile?

Yup. I set it to a bool.

New patch (with Randy's feedback to indent help text w/ two spaces) below...

Thanks,
James

-------------------------

[PATCH] create net/wireless/Kconfig and make nl80211 optional

Move the wireless Kconfig options into their own wireless/Kconfig and add a CONFIG_NL80211 configuration option to allow nl80211 support to be optionally included (default =y)

This also implements stub functions for nl80211_init and nl80211_exit when CONFIG_NL80211 is not defined.

---
 net/Kconfig            |   17 +----------------
 net/wireless/Kconfig   |   33 +++++++++++++++++++++++++++++++++
 net/wireless/Makefile  |    3 ++-
 net/wireless/nl80211.h |   10 ++++++++++
 4 files changed, 46 insertions(+), 17 deletions(-)

---

net/Kconfig +1 -16
index 3bff36e..6fa4d68 100644
@@ -228,22 +228,7 @@ config WIRELESS_EXT
 config FIB_RULES
 	bool
 
-config CFG80211
-	tristate "Improved wireless configuration API"
-
-config CFG80211_WEXT_COMPAT
-	bool "cfg80211 Wireless Extensions compatibility"
-	depends CFG80211
-	default y
-	---help---
-	This option allows using devices whose drivers have been
-	converted to use the new cfg80211 with wireless extensions,
-	providing WE-20 compatibility. Note that cfg80211's "native"
-	interface is nl80211 using generic netlink. The wireless
-	extensions are being deprecated, but userspace tools may still
-	be using them.
-
-	If unsure, say Y.
+source "net/wireless/Kconfig"
 
 endif   # if NET
 endmenu # Networking
net/wireless/Kconfig new file +31 -0
new file mode 100644
index 0000000..7e83504
@@ -0,0 +1,31 @@
+config CFG80211
+        tristate "Improved wireless configuration API"
+
+config CFG80211_WEXT_COMPAT
+        bool "cfg80211 Wireless Extensions compatibility"
+        depends CFG80211
+        default y
+        ---help---
+          This option allows using devices whose drivers have been
+          converted to use the new cfg80211 with wireless extensions,
+          providing WE-20 compatibility.
+	
+          Note that cfg80211's "native" interface is nl80211 using
+          generic netlink. The wireless extensions are being
+          deprecated, but userspace tools may still be using them.
+
+          If unsure, say Y.
+
+config NL80211
+	bool "nl80211 new netlink interface support"
+	depends CFG80211
+	default y
+	---help---
+         This option turns on the new netlink interface
+         (nl80211) support in cfg80211.
+	
+         If =n, drivers using d80211 will be configured via
+         wireless extension support provided by that subsystem.
+
+         If unsure, say Y.
+
net/wireless/Makefile +2 -1
index c52c251..1f47511 100644
@@ -1,6 +1,7 @@
 obj-$(CONFIG_CFG80211) += cfg80211.o
 
-cfg80211-y += core.o sysfs.o nl80211.o
+cfg80211-y += core.o sysfs.o
+cfg80211-$(CONFIG_NL80211) += nl80211.o
 cfg80211-$(CONFIG_CFG80211_WEXT_COMPAT) += wext-compat.o
 
 ifeq ($(CONFIG_CFG80211),m)
net/wireless/nl80211.h +10 -0
index 0edc7a4..31524c7 100644
@@ -1,7 +1,17 @@
 #ifndef __NET_WIRELESS_NL80211_H
 #define __NET_WIRELESS_NL80211_H
 
+#ifdef CONFIG_NL80211
 extern int nl80211_init(void);
 extern void nl80211_exit(void);
+#else
+static inline int nl80211_init(void)
+{
+	return 0;
+}
+static inline void nl80211_exit(void)
+{
+}
+#endif /* CONFIG_NL80211 */
 
 #endif /* __NET_WIRELESS_NL80211_H */
#7 lore raw
In reply to James Ketrenos

Hold on applying.

Quoted 1 line

+cfg80211-$(CONFIG_NL80211) += nl80211.o

Should have been

cfg80211-$(CONFIG_CFG80211_NL80211) += nl80211.o

Am looking at Johannes' email re: WIRELESS_EXT being selected as well. Will send a new version soon.

James

maintainer
#8 lore raw
Quoted 7 lines · James Ketrenos

Hold on applying.

Quoted 1 line

+cfg80211-$(CONFIG_NL80211) += nl80211.o

Should have been

cfg80211-$(CONFIG_CFG80211_NL80211) += nl80211.o

Or maybe just rename it if it's already confusing you ;)

johannes