24 Feb, 2016

1 commit


14 Jan, 2016

1 commit


16 Oct, 2015

1 commit


08 Apr, 2015

1 commit

  • The change to only export WEXT symbols when required could break
    the build if CONFIG_CFG80211_WEXT was explicitly disabled while
    a driver like orinoco selected it.

    Fix this by hiding the symbol when it's required so it can't be
    disabled in that case.

    Fixes: 2afe38d15cee ("cfg80211-wext: export symbols only when needed")
    Reported-by: Randy Dunlap
    Reported-by: Jim Davis
    Signed-off-by: Johannes Berg

    Johannes Berg
     

01 Mar, 2015

1 commit

  • When a fully converted cfg80211 driver needs cfg80211-wext for
    userspace API purposes, the symbols need not be exported. When
    other drivers (orinoco/hermes or ipw2200) are enabled, they do
    need the symbols exported as they use them directly.

    Make those drivers select a new CFG80211_WEXT_EXPORT Kconfig
    symbol (instead of just CFG80211_WEXT) and export the functions
    only if requested - this saves about 1/2k due to the size of
    EXPORT_SYMBOL() itself.

    Signed-off-by: Johannes Berg

    Johannes Berg
     

31 Dec, 2014

1 commit

  • This reverts commit 24a0aa212ee2dbe44360288684478d76a8e20a0a.

    It's causing severe userspace breakage. Namely, all the utilities from
    wireless-utils which are relying on CONFIG_WEXT (which means tools like
    'iwconfig', 'iwlist', etc) are not working anymore. There is a 'iw'
    utility in newer wireless-tools, which is supposed to be a replacement
    for all the "deprecated" binaries, but it's far away from being
    massively adopted.

    Please see [1] for example of the userspace breakage this is causing.

    In addition to that, Larry Finger reports [2] that this patch is also
    causing ipw2200 driver being impossible to build.

    To me this clearly shows that CONFIG_WEXT is far, far away from being
    "deprecated enough" to be removed.

    [1] http://thread.gmane.org/gmane.linux.kernel/1857010
    [2] http://thread.gmane.org/gmane.linux.network/343688

    Signed-off-by: Jiri Kosina
    Signed-off-by: Linus Torvalds

    Jiri Kosina
     

28 Nov, 2014

1 commit

  • This option has been marked for deprecation and removal for
    a little more than two years, but it's not been very clearly
    signalled since it was always possible to just select it.

    Make it unselectable now to signal anyone who's still using
    it after all this time more clearly. They can still get it
    back, but only by patching the kernel.

    Signed-off-by: Johannes Berg

    Johannes Berg
     

21 Jul, 2014

1 commit

  • Since "wireless-regdb: remove antenna gain" was merged in the
    wireless-regdb tree, the awk script parser has been incompatible
    with the 'official' regulatory database. This fixes that up.
    Without this change the max EIRP is set to 0 making 802.11 devices
    useless.

    The fragile nature of the awk parser must be replaced, but ideas
    over how to do that in the most scalable way are being reviewed.
    In the meantime update the documentation for CFG80211_INTERNAL_REGDB
    so folks are aware of expectations for now.

    Reported-by: John Walker
    Reported-by: Krishna Chaitanya
    Signed-off-by: Luis R. Rodriguez
    Signed-off-by: Johannes Berg

    Luis R. Rodriguez
     

09 Apr, 2014

2 commits

  • Allow GO operation on a channel marked with IEEE80211_CHAN_GO_CONCURRENT
    iff there is an active station interface that is associated to
    an AP operating on the same channel in the 2 GHz band or the same UNII band
    (in the 5 GHz band). This relaxation is not allowed if the channel is
    marked with IEEE80211_CHAN_RADAR.

    Note that this is a permissive approach to the FCC definitions,
    that require a clear assessment that the device operating the AP is
    an authorized master, i.e., with radar detection and DFS capabilities.

    It is assumed that such restrictions are enforced by user space.
    Furthermore, it is assumed, that if the conditions that allowed for
    the operation of the GO on such a channel change, i.e., the station
    interface disconnected from the AP, it is the responsibility of user
    space to evacuate the GO from the channel.

    Signed-off-by: Ilan Peer
    Signed-off-by: Johannes Berg

    Ilan Peer
     
  • Move the regulatory cellular base station hints support under
    a specific configuration option and make the option depend
    on CFG80211_CERTIFICATION_ONUS.

    Signed-off-by: Ilan Peer
    Signed-off-by: Johannes Berg

    Ilan Peer
     

17 Nov, 2012

1 commit


17 Jul, 2012

1 commit

  • This adds CONFIG_CFG80211_CERTIFICATION_ONUS which is to
    be used for features / code which require a bit of work on
    the system integrator's part to ensure that the system will
    still pass 802.11 regulatory certification. This option is
    also usable for researchers and experimenters looking to add
    code in the kernel without impacting compliant code.

    We'd use CONFIG_EXPERT alone but it seems that most standard
    Linux distributions are enabling CONFIG_EXPERT already. This
    allows us to define 802.11 specific kernel features under a
    flag that is intended by design to be disabled by standard
    Linux distributions, and only enabled by system integrators
    or distributions that have done work to ensure regulatory
    certification on the system with the enabled features.

    Signed-off-by: Luis R. Rodriguez
    Signed-off-by: Johannes Berg

    Luis R. Rodriguez
     

06 Jun, 2012

2 commits

  • Almost all wireless tools have transitioned to
    or at least added compatibility with nl80211 so
    there's no real need for CONFIG_CFG80211_WEXT
    any more. Mark it for removal, and also change
    the default to not be enabled.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • The only user of this was hal prior to its 0.5.12
    release which happened over two years ago, so I'm
    sure this can be removed without issues.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     

08 Dec, 2011

1 commit

  • This code has been on the list to remove for a long
    time, so disable it by default, add a warning to its
    Kconfig, and schedule it for removal in 3.5.

    The only known dependency, hal, has not required it
    since its 0.5.12 release, which was in early 2009
    and hal has since been deprecated completely.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     

21 Jan, 2011

1 commit

  • The meaning of CONFIG_EMBEDDED has long since been obsoleted; the option
    is used to configure any non-standard kernel with a much larger scope than
    only small devices.

    This patch renames the option to CONFIG_EXPERT in init/Kconfig and fixes
    references to the option throughout the kernel. A new CONFIG_EMBEDDED
    option is added that automatically selects CONFIG_EXPERT when enabled and
    can be used in the future to isolate options that should only be
    considered for embedded systems (RISC architectures, SLOB, etc).

    Calling the option "EXPERT" more accurately represents its intention: only
    expert users who understand the impact of the configuration changes they
    are making should enable it.

    Reviewed-by: Ingo Molnar
    Acked-by: David Woodhouse
    Signed-off-by: David Rientjes
    Cc: Greg KH
    Cc: "David S. Miller"
    Cc: Jens Axboe
    Cc: Arnd Bergmann
    Cc: Robin Holt
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Rientjes
     

29 Dec, 2009

1 commit


22 Dec, 2009

1 commit

  • This patch provides infrastructure for machine translation of the
    regulatory rules database used by CRDA into a C data structure.
    It includes code for searching that database as an alternative
    to dynamic regulatory rules updates via CRDA. Most people should
    use CRDA instead of this infrastructure, but it provides a better
    alternative than the WIRELESS_OLD_REGULATORY infrastructure (which
    can now be removed).

    Signed-off-by: John W. Linville

    John W. Linville
     

20 Nov, 2009

1 commit


08 Oct, 2009

1 commit

  • Refactor wext to
    * split out iwpriv handling
    * split out iwspy handling
    * split out procfs support
    * allow cfg80211 to have wireless extensions compat code
    w/o CONFIG_WIRELESS_EXT

    After this, drivers need to
    - select WIRELESS_EXT - for wext support
    - select WEXT_PRIV - for iwpriv support
    - select WEXT_SPY - for iwspy support

    except cfg80211 -- which gets new hooks in wext-core.c
    and can then get wext handlers without CONFIG_WIRELESS_EXT.

    Wireless extensions procfs support is auto-selected
    based on PROC_FS and anything that requires the wext core
    (i.e. WIRELESS_EXT or CFG80211_WEXT).

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     

09 Sep, 2009

1 commit


03 Sep, 2009

1 commit


29 Aug, 2009

1 commit

  • Bob reported that he got warnings in IBSS mode about
    the ssid_len being zero on a joined event, but only
    when kmemcheck was enabled. This appears to be due
    to a race condition between drivers and userspace,
    when the driver reports joined but the user in the
    meantime decided to leave the IBSS again, the warning
    would trigger. This was made more likely by kmemcheck
    delaying the code that does the check and sends the
    event.

    So first, make the warning trigger closer to the
    driver, which means it's not locked, but since only
    the warning depends on it that's ok.

    And secondly, users will not want to have spurious
    warnings at all, so make those that are known to be
    racy in such a way configurable.

    Reported-by: Bob Copeland
    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     

11 Jul, 2009

3 commits

  • Just on/off and timeout, and with a hacky cfg80211 method
    until we figure out what we want, though this is probably
    sufficient as we want to use pm_qos for wifi everywhere.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • This introduces a new NL80211_CMD_TESTMODE for testing
    and calibration use with nl80211. There's no multiplexing
    like like iwpriv had, and the command is not available by
    default, it needs to be explicitly enabled in Kconfig and
    shouldn't be enabled in most kernels.

    The command requires a wiphy index or interface index to
    identify the device to operate on, and the new TESTDATA
    attribute. There also is API for sending replies to the
    command, and testmode multicast messages (on a testmode
    multicast group).

    I've also updated mac80211 to be able to pass through the
    command to the driver, since it itself doesn't implement
    the testmode command.

    Additionally, to give people an idea of how to use the
    command, I've added a little code to hwsim that makes use
    of the new command to set the powersave mode, this is
    currently done via debugfs and should remain there, and
    the testmode command only serves as an example of how to
    use this best -- with nested netlink attributes in the
    TESTDATA attribute. A hwsim testmode tool can be found at
    http://git.sipsolutions.net/hwsim.git/. This tool is BSD
    licensed so people can easily use it as a basis for their
    own internal fabrication and validation tools.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • The way I initially thought we could do wireless extensions
    is by making all the compat code in cfg80211 be independent
    of CONFIG_WIRELESS_EXT, but this is turning out to not be
    feasible. Therefore, fix the Kconfig help text and make the
    option default to yes, so people won't get a nasty surprise
    when mac80211 will get rid of its 'select WIRELESS_EXT' any
    time now.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     

04 Jun, 2009

1 commit

  • To be easier on drivers and users, have cfg80211 register an
    rfkill structure that drivers can access. When soft-killed,
    simply take down all interfaces; when hard-killed the driver
    needs to notify us and we will take down the interfaces
    after the fact. While rfkilled, interfaces cannot be set UP.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     

21 May, 2009

1 commit


28 Mar, 2009

2 commits


17 Mar, 2009

1 commit


26 Nov, 2008

1 commit

  • This adds country IE parsing to mac80211 and enables its usage
    within the new regulatory infrastructure in cfg80211. We parse
    the country IEs only on management beacons for the BSSID you are
    associated to and disregard the IEs when the country and environment
    (indoor, outdoor, any) matches the already processed country IE.

    To avoid following misinformed or outdated APs we build and use
    a regulatory domain out of the intersection between what the AP
    provides us on the country IE and what CRDA is aware is allowed
    on the same country.

    A secondary device is allowed to follow only the same country IE
    as it make no sense for two devices on a system to be in two
    different countries.

    In the case the AP is using country IEs for an incorrect country
    the user may help compliance further by setting the regulatory
    domain before or after the IE is parsed and in that case another
    intersection will be performed.

    CONFIG_WIRELESS_OLD_REGULATORY is supported but requires CRDA
    present.

    Signed-off-by: Luis R. Rodriguez
    Acked-by: Johannes Berg
    Signed-off-by: John W. Linville

    Luis R. Rodriguez
     

22 Nov, 2008

1 commit


01 Nov, 2008

1 commit


27 Oct, 2008

1 commit

  • The default for the regulatory compatibility option is wrong;
    if you picked the default you ended up with a non-functional wifi
    system (at least I did on Fedora 9 with iwl4965).
    I don't think even the October 2008 releases of the various distros
    has the new userland so clearly the default is wrong, and also
    we can't just go about deleting this in 2.6.29...

    Change the default to "y" and also adjust the config text a little to
    reflect this.

    This patch fixes regression #11859

    With thanks to Johannes Berg for the diagnostics

    Signed-off-by: Arjan van de Ven
    Signed-off-by: Linus Torvalds

    Arjan van de Ven
     

07 Oct, 2008

1 commit


16 Sep, 2008

1 commit

  • This adds the new wireless regulatory infrastructure. The
    main motiviation behind this was to centralize regulatory
    code as each driver was implementing their own regulatory solution,
    and to replace the initial centralized code we have where:

    * only 3 regulatory domains are supported: US, JP and EU
    * regulatory domains can only be changed through module parameter
    * all rules were built statically in the kernel

    We now have support for regulatory domains for many countries
    and regulatory domains are now queried through a userspace agent
    through udev allowing distributions to update regulatory rules
    without updating the kernel.

    Each driver can regulatory_hint() a regulatory domain
    based on either their EEPROM mapped regulatory domain value to a
    respective ISO/IEC 3166-1 country code or pass an internally built
    regulatory domain. We also add support to let the user set the
    regulatory domain through userspace in case of faulty EEPROMs to
    further help compliance.

    Support for world roaming will be added soon for cards capable of
    this.

    For more information see:

    http://wireless.kernel.org/en/developers/Regulatory/CRDA

    For now we leave an option to enable the old module parameter,
    ieee80211_regdom, and to build the 3 old regdomains statically
    (US, JP and EU). This option is CONFIG_WIRELESS_OLD_REGULATORY.
    These old static definitions and the module parameter is being
    scheduled for removal for 2.6.29. Note that if you use this
    you won't make use of a world regulatory domain as its pointless.
    If you leave this option enabled and if CRDA is present and you
    use US or JP we will try to ask CRDA to update us a regulatory
    domain for us.

    Signed-off-by: Luis R. Rodriguez
    Signed-off-by: John W. Linville

    Luis R. Rodriguez
     

03 Sep, 2008

1 commit


15 Jul, 2008

1 commit

  • The /sys/class/net/*/wireless/ direcory is, as far as I know, not
    used by anyone. Additionally, the same data is available via wext
    ioctls. Hence the sysfs files are pretty much useless. This patch
    makes them optional and schedules them for removal.

    Signed-off-by: Johannes Berg
    Cc: Jean Tourrilhes
    Signed-off-by: John W. Linville

    Johannes Berg
     

29 Jan, 2008

1 commit