All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] create net/wireless/Kconfig and make nl80211 optional
@ 2007-02-22 19:42 James Ketrenos
  2007-02-23 11:25 ` Johannes Berg
  0 siblings, 1 reply; 6+ messages in thread
From: James Ketrenos @ 2007-02-22 19:42 UTC (permalink / raw)
  To: linux-wireless

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)

Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
---
  net/Kconfig           |   17 +----------------
  net/wireless/Kconfig  |   42 ++++++++++++++++++++++++++++++++++++++++++
  net/wireless/Makefile |    3 ++-
  3 files changed, 45 insertions(+), 17 deletions(-)
---
diff --git a/net/Kconfig b/net/Kconfig
index 969754f..218570b 100644
--- a/net/Kconfig
+++ b/net/Kconfig
@@ -227,22 +227,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
diff --git a/net/wireless/Kconfig b/net/wireless/Kconfig
new file mode 100644
index 0000000..89308d0
--- /dev/null
+++ b/net/wireless/Kconfig
@@ -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.
+
diff --git a/net/wireless/Makefile b/net/wireless/Makefile
index c52c251..1f47511 100644
--- a/net/wireless/Makefile
+++ b/net/wireless/Makefile
@@ -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)

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] create net/wireless/Kconfig and make nl80211 optional
  2007-02-22 19:42 [PATCH] create net/wireless/Kconfig and make nl80211 optional James Ketrenos
@ 2007-02-23 11:25 ` Johannes Berg
  2007-02-23 16:33   ` James Ketrenos
  0 siblings, 1 reply; 6+ messages in thread
From: Johannes Berg @ 2007-02-23 11:25 UTC (permalink / raw)
  To: James Ketrenos; +Cc: linux-wireless

[-- Attachment #1: Type: text/plain, Size: 511 bytes --]

On Thu, 2007-02-22 at 11:42 -0800, James Ketrenos wrote:
> 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)

Ack, but we'll need to modify core.h to stub out nl80211_init() and
nl80211_exit() in case nl80211 isn't compiled in. The reason this worked
for you is that I forgot to hook up nl80211 completely ;)

Do you want me to take care of that?`

Thanks,
johannes


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 190 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] create net/wireless/Kconfig and make nl80211 optional
  2007-02-23 11:25 ` Johannes Berg
@ 2007-02-23 16:33   ` James Ketrenos
  2007-02-23 20:11     ` Johannes Berg
  0 siblings, 1 reply; 6+ messages in thread
From: James Ketrenos @ 2007-02-23 16:33 UTC (permalink / raw)
  To: Johannes Berg; +Cc: linux-wireless

Johannes Berg wrote:
> On Thu, 2007-02-22 at 11:42 -0800, James Ketrenos wrote:
>> 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)
> 
> Ack, but we'll need to modify core.h to stub out nl80211_init() and
> nl80211_exit() in case nl80211 isn't compiled in. The reason this worked
> for you is that I forgot to hook up nl80211 completely ;)
> 
> Do you want me to take care of that?`

Something like this?

James
--------------

[PATCH] Make nl80211_init and nl80211_exit depend on NL80211 config

This applies after Johannes patch 'hook up nl80211 again' and wraps
nl80211_init and nl80211_exit usage in CONFIG_CFG80211_NL80211.

Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
---
  net/wireless/core.c |    6 ++++++
  1 file changed, 6 insertions(+)
---
diff --git a/net/wireless/core.c b/net/wireless/core.c
index abf0f78..8c1e914 100644
--- a/net/wireless/core.c
+++ b/net/wireless/core.c
@@ -249,16 +249,20 @@ static int cfg80211_init(void)
         if (err)
                 goto out_exit_sysfs;

+#ifdef CONFIG_CFG80211_NL80211
         err = nl80211_init();
         if (err)
                 goto out_nl80211;
+#endif

         ieee80211_debugfs_dir = debugfs_create_dir("ieee80211", NULL);

         return 0;

+#ifdef CONFIG_CFG80211_NL80211
   out_nl80211:
         cfg80211_wext_exit();
+#endif
   out_exit_sysfs:
         wiphy_sysfs_exit();

@@ -269,7 +273,9 @@ module_init(cfg80211_init);
  static void cfg80211_exit(void)
  {
         debugfs_remove(ieee80211_debugfs_dir);
+#ifdef CONFIG_CFG80211_NL80211
         nl80211_exit();
+#endif
         cfg80211_wext_exit();
         wiphy_sysfs_exit();
  }





^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] create net/wireless/Kconfig and make nl80211 optional
  2007-02-23 16:33   ` James Ketrenos
@ 2007-02-23 20:11     ` Johannes Berg
  2007-02-23 20:23       ` James Ketrenos
  0 siblings, 1 reply; 6+ messages in thread
From: Johannes Berg @ 2007-02-23 20:11 UTC (permalink / raw)
  To: James Ketrenos; +Cc: linux-wireless

On Fri, 2007-02-23 at 08:33 -0800, James Ketrenos wrote:
> Johannes Berg wrote:
> > On Thu, 2007-02-22 at 11:42 -0800, James Ketrenos wrote:
> >> 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)
> > 
> > Ack, but we'll need to modify core.h to stub out nl80211_init() and
> > nl80211_exit() in case nl80211 isn't compiled in. The reason this worked
> > for you is that I forgot to hook up nl80211 completely ;)
> > 
> > Do you want me to take care of that?`
> 
> Something like this?

Yup. I'd prefer this instead, and then rolled into your original patch
so it applies after my hookup patch.

johannes

--- wireless-dev.orig/net/wireless/nl80211.h	2007-02-23 21:08:45.353476868 +0100
+++ wireless-dev/net/wireless/nl80211.h	2007-02-23 21:09:58.543476868 +0100
@@ -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 */



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] create net/wireless/Kconfig and make nl80211 optional
  2007-02-23 20:11     ` Johannes Berg
@ 2007-02-23 20:23       ` James Ketrenos
  2007-02-23 20:35         ` Johannes Berg
  0 siblings, 1 reply; 6+ messages in thread
From: James Ketrenos @ 2007-02-23 20:23 UTC (permalink / raw)
  To: Johannes Berg; +Cc: linux-wireless

Johannes Berg wrote:
> On Fri, 2007-02-23 at 08:33 -0800, James Ketrenos wrote:
>> Johannes Berg wrote:
>>> On Thu, 2007-02-22 at 11:42 -0800, James Ketrenos wrote:
>>>> 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)
>>> Ack, but we'll need to modify core.h to stub out nl80211_init() and
>>> nl80211_exit() in case nl80211 isn't compiled in. The reason this worked
>>> for you is that I forgot to hook up nl80211 completely ;)
>>>
>>> Do you want me to take care of that?`
>> Something like this?
> 
> Yup. I'd prefer this instead, and then rolled into your original patch
> so it applies after my hookup patch.

Ya, I guess that follows standard kernel guidelines more... I tend to 
find it a lot easier in resolving problems with short spanning ifdef's 
sprinkled in code vs. hidden functionality in header files that changes 
based on CONFIG options.  But alas, I think I am in the minority on that.

I'll resend my prior 'make nl80211 optional' patch adding below to it.

Thanks,
James

> 
> johannes
> 
> --- wireless-dev.orig/net/wireless/nl80211.h	2007-02-23 21:08:45.353476868 +0100
> +++ wireless-dev/net/wireless/nl80211.h	2007-02-23 21:09:58.543476868 +0100
> @@ -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 */

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] create net/wireless/Kconfig and make nl80211 optional
  2007-02-23 20:23       ` James Ketrenos
@ 2007-02-23 20:35         ` Johannes Berg
  0 siblings, 0 replies; 6+ messages in thread
From: Johannes Berg @ 2007-02-23 20:35 UTC (permalink / raw)
  To: James Ketrenos; +Cc: linux-wireless

[-- Attachment #1: Type: text/plain, Size: 702 bytes --]

On Fri, 2007-02-23 at 12:23 -0800, James Ketrenos wrote:

> Ya, I guess that follows standard kernel guidelines more... I tend to 
> find it a lot easier in resolving problems with short spanning ifdef's 
> sprinkled in code vs. hidden functionality in header files that changes 
> based on CONFIG options.  But alas, I think I am in the minority on that.

Yeah, I guess you can argue about that. I tend to not care about what
the functions do (unless I want to follow them anyway) so it's more
readable that way.

> I'll resend my prior 'make nl80211 optional' patch adding below to it.

Great, thanks. That has my
Acked-by: Johannes Berg <johannes@sipsolutions.net>
then.

johannes

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 190 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2007-02-23 20:35 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-02-22 19:42 [PATCH] create net/wireless/Kconfig and make nl80211 optional James Ketrenos
2007-02-23 11:25 ` Johannes Berg
2007-02-23 16:33   ` James Ketrenos
2007-02-23 20:11     ` Johannes Berg
2007-02-23 20:23       ` James Ketrenos
2007-02-23 20:35         ` Johannes Berg

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.