linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dave <kilroyd@googlemail.com>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: John Linville <linville@tuxdriver.com>,
	Randy Dunlap <randy.dunlap@oracle.com>,
	linux-wireless <linux-wireless@vger.kernel.org>,
	Samuel Ortiz <samuel@sortiz.org>,
	Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
Subject: Re: [PATCH] cfg80211: fix Kconfig for users of cfg80211
Date: Wed, 03 Jun 2009 20:15:31 +0100	[thread overview]
Message-ID: <4A26CBD3.8050009@gmail.com> (raw)
In-Reply-To: <1244046631.4862.34.camel@johannes.local>

Johannes Berg wrote:
>  * iwm doesn't depend on cfg80211 or wireless extensions
>  * rndis wlan selects cfg80211 - needs to depend
>  * mac80211 selects cfg80211 - needs to depend

Hmm. Consider:

1. User using a rndis_wlan device on old kernel with cfg80211 unselected.
2. Upgrades kernel with make old_config

Result: the rndis_wlan driver is no longer configured to build.

I don't think it's a big issue, as you can reconfigure and rebuild as
soon as you realise. But you may have to 'realise' without google access.

The only reason I'm thinking of this is because orinoco may be in the
same boat shortly. Ditto other wireless drivers as they get converted.
So I had a play with Kconfig. How about something like the patch below
instead?

cfg80211 should just get autoselected in the most appropriate mode, and
drivers get the same restrictions as cfg80211. The option setting
appears to work fine, but I haven't done any build testing.

It might be possible to chain things like this, so mac80211 could be
done in the same way. But I guess we wouldn't want too much of this
going on...



Dave.

---
diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig
index a67d292..9038bd6 100644
--- a/drivers/net/wireless/Kconfig
+++ b/drivers/net/wireless/Kconfig
@@ -333,11 +333,12 @@ config USB_ZD1201
 config USB_NET_RNDIS_WLAN
        tristate "Wireless RNDIS USB support"
        depends on USB && WLAN_80211 && EXPERIMENTAL
+       depends on CFG80211_AS_MODULE
        select USB_USBNET
        select USB_NET_CDCETHER
        select USB_NET_RNDIS_HOST
        select WIRELESS_EXT
-       select CFG80211
+       select CFG80211_USED
        ---help---
          This is a driver for wireless RNDIS devices.
          These are USB based adapters found in devices such as:
diff --git a/net/mac80211/Kconfig b/net/mac80211/Kconfig
index 9cbf545..2de2bd8 100644
--- a/net/mac80211/Kconfig
+++ b/net/mac80211/Kconfig
@@ -1,12 +1,14 @@
+# If cfg80211 has to be configured as a module, so do we
 config MAC80211
        tristate "Generic IEEE 802.11 Networking Stack (mac80211)"
+       depends on CFG80211_AS_MODULE
        select CRYPTO
        select CRYPTO_ECB
        select CRYPTO_ARC4
        select CRYPTO_AES
        select CRC32
        select WIRELESS_EXT
-       select CFG80211
+       select CFG80211_USED
        ---help---
          This option enables the hardware independent IEEE 802.11
          networking stack.
diff --git a/net/wireless/Kconfig b/net/wireless/Kconfig
index 4428dd5..d3f08c4 100644
--- a/net/wireless/Kconfig
+++ b/net/wireless/Kconfig
@@ -1,6 +1,23 @@
-config CFG80211
-       tristate "Improved wireless configuration API"
+# Selected by drivers which use cfg80211
+config CFG80211_USED
+       tristate
+
+# Is cfg80211 restricted to being a module by its dependencies?
+# Drivers must depend on this so they inherit the restriction.
+#
+# Careful: m means that CFG80211 is restricted to being a module
+#          Both n and y mean there is no restriction
+config CFG80211_AS_MODULE
+       tristate
        depends on RFKILL || !RFKILL
+       default y
+
+# Avoid presenting a UI option so we inherit the value of CFG80211_USED
+# If one driver is set to m, and another to y, CFG80211_USED will be y.
+config CFG80211
+       tristate
+       depends on CFG80211_AS_MODULE
+       default CFG80211_USED

 config CFG80211_REG_DEBUG
        bool "cfg80211 regulatory debugging"


  parent reply	other threads:[~2009-06-03 19:48 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-03 16:30 [PATCH] cfg80211: fix Kconfig for users of cfg80211 Johannes Berg
2009-06-03 17:18 ` Randy Dunlap
2009-06-03 19:15 ` Dave [this message]
2009-06-03 19:24   ` John W. Linville
2009-06-04  6:19   ` Johannes Berg
2009-06-03 23:58 ` Samuel Ortiz
2009-06-04  0:41   ` John W. Linville

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4A26CBD3.8050009@gmail.com \
    --to=kilroyd@googlemail.com \
    --cc=johannes@sipsolutions.net \
    --cc=jussi.kivilinna@mbnet.fi \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linville@tuxdriver.com \
    --cc=randy.dunlap@oracle.com \
    --cc=samuel@sortiz.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).