Skip to content
Snippets Groups Projects
  1. May 12, 2016
  2. Apr 12, 2016
  3. Apr 05, 2016
  4. Feb 24, 2016
  5. Jan 29, 2016
    • Johannes Berg's avatar
      cfg80211/wext: fix message ordering · cb150b9d
      Johannes Berg authored
      
      Since cfg80211 frequently takes actions from its netdev notifier
      call, wireless extensions messages could still be ordered badly
      since the wext netdev notifier, since wext is built into the
      kernel, runs before the cfg80211 netdev notifier. For example,
      the following can happen:
      
      5: wlan1: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN group default
          link/ether 02:00:00:00:01:00 brd ff:ff:ff:ff:ff:ff
      5: wlan1: <BROADCAST,MULTICAST,UP>
          link/ether
      
      when setting the interface down causes the wext message.
      
      To also fix this, export the wireless_nlevent_flush() function
      and also call it from the cfg80211 notifier.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      cb150b9d
  6. Oct 15, 2015
  7. Oct 13, 2015
    • Avraham Stern's avatar
      cfg80211: Add multiple scan plans for scheduled scan · 3b06d277
      Avraham Stern authored
      
      Add the option to configure multiple 'scan plans' for scheduled scan.
      Each 'scan plan' defines the number of scan cycles and the interval
      between scans. The scan plans are executed in the order they were
      configured. The last scan plan will always run infinitely and thus
      defines only the interval between scans.
      The maximum number of scan plans supported by the device and the
      maximum number of iterations in a single scan plan are advertised
      to userspace so it can configure the scan plans appropriately.
      
      When scheduled scan results are received there is no way to know which
      scan plan is being currently executed, so there is no way to know when
      the next scan iteration will start. This is not a problem, however.
      The scan start timestamp is only used for flushing old scan results,
      and there is no difference between flushing all results received until
      the end of the previous iteration or the start of the current one,
      since no results will be received in between.
      
      Signed-off-by: default avatarAvraham Stern <avraham.stern@intel.com>
      Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      3b06d277
  8. Sep 29, 2015
  9. Jul 17, 2015
    • Johannes Berg's avatar
      cfg80211: allow mgmt_frame_register callback to sleep · 33d8783c
      Johannes Berg authored
      
      This callback is currently not allowed to sleep, which makes it more
      difficult to implement proper driver methods in mac80211 than it has
      to be. Instead of doing asynchronous work here in mac80211, make it
      possible for the callback to sleep by doing some asynchronous work
      in cfg80211. This also enables improvements to other drivers, like
      ath6kl, that would like to sleep in this callback.
      
      While at it, also fix the code to call the driver on the implicit
      unregistration when an interface is removed, and do that also when
      a P2P-Device wdev is destroyed (otherwise we leak the structs.)
      
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      33d8783c
  10. Feb 24, 2015
  11. Jan 19, 2015
  12. Dec 18, 2014
  13. Dec 17, 2014
    • Jonathan Doron's avatar
      cfg80211: allow wiphy specific regdomain management · b0d7aa59
      Jonathan Doron authored
      
      Add a new regulatory flag that allows a driver to manage regdomain
      changes/updates for its own wiphy.
      A self-managed wiphys only employs regulatory information obtained from
      the FW and driver and does not use other cfg80211 sources like
      beacon-hints, country-code IEs and hints from other devices on the same
      system. Conversely, a self-managed wiphy does not share its regulatory
      hints with other devices in the system. If a system contains several
      devices, one or more of which are self-managed, there might be
      contradictory regulatory settings between them. Usage of flag is
      generally discouraged. Only use it if the FW/driver is incompatible
      with non-locally originated hints.
      
      A new API lets the driver send a complete regdomain, to be applied on
      its wiphy only.
      
      After a wiphy-specific regdomain change takes place, usermode will get
      a new type of change notification. The regulatory core also takes care
      enforce regulatory restrictions, in case some interfaces are on
      forbidden channels.
      
      Signed-off-by: default avatarJonathan Doron <jonathanx.doron@intel.com>
      Signed-off-by: default avatarArik Nemtsov <arikx.nemtsov@intel.com>
      Reviewed-by: default avatarLuis R. Rodriguez <mcgrof@suse.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      b0d7aa59
  14. Dec 12, 2014
    • Vadim Kochan's avatar
      wireless: Support of IFLA_INFO_KIND rtnl attribute · ba1debdf
      Vadim Kochan authored
      
      It allows to identify the wlan kind of device for the user application,
      e.g.:
      
          # ip -d link
      
          1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
              link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 promiscuity 0
          2: enp0s25: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
              link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff promiscuity 0
          3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
              link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff promiscuity 0
              wlan
      
      Signed-off-by: default avatarVadim Kochan <vadim4j@gmail.com>
      Acked-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      [make wireless_link_ops const]
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      ba1debdf
  15. Nov 28, 2014
  16. Nov 19, 2014
  17. Nov 04, 2014
    • Rostislav Lisovy's avatar
      cfg80211: 802.11p OCB mode handling · 6e0bd6c3
      Rostislav Lisovy authored
      
      This patch adds new iface type (NL80211_IFTYPE_OCB) representing
      the OCB (Outside the Context of a BSS) mode.
      When establishing a connection to the network a cfg80211_join_ocb
      function is called (particular nl80211_command is added as well).
      A mandatory parameters during the ocb_join operation are 'center
      frequency' and 'channel width (5/10 MHz)'.
      
      Changes done in mac80211 are minimal possible required to avoid
      many warnings (warning: enumeration value 'NL80211_IFTYPE_OCB'
      not handled in switch) during compilation. Full functionality
      (where needed) is added in the following patch.
      
      Signed-off-by: default avatarRostislav Lisovy <rostislav.lisovy@fel.cvut.cz>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      6e0bd6c3
  18. Oct 31, 2014
  19. Oct 27, 2014
  20. Sep 11, 2014
  21. Sep 05, 2014
  22. Aug 26, 2014
  23. Aug 25, 2014
  24. Jun 23, 2014
    • Johannes Berg's avatar
      cfg80211: make ethtool the driver's responsibility · b7ffbd7e
      Johannes Berg authored
      
      Currently, cfg80211 tries to implement ethtool, but that doesn't
      really scale well, with all the different operations. Make the
      lower-level driver responsible for it, which currently only has
      an effect on mac80211. It will similarly not scale well at that
      level though, since mac80211 also has many drivers.
      
      To cleanly implement this in mac80211, introduce a new file and
      move some code to appropriate places.
      
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      b7ffbd7e
  25. May 26, 2014
  26. May 15, 2014
  27. May 09, 2014
  28. May 06, 2014
  29. Apr 29, 2014
  30. Apr 25, 2014
  31. Apr 09, 2014
    • Luciano Coelho's avatar
      cfg80211/mac80211: move more combination checks to mac80211 · b6a55015
      Luciano Coelho authored
      
      Get rid of the cfg80211_can_add_interface() and
      cfg80211_can_change_interface() functions by moving that functionality
      to mac80211.  With this patch all interface combination checks are now
      out of cfg80211 (except for the channel switch case which will be
      addressed in a future commit).
      
      Additionally, modify the ieee80211_check_combinations() function so
      that an undefined chandef can be passed, in order to use it before a
      channel is defined.
      
      Signed-off-by: default avatarLuciano Coelho <luciano.coelho@intel.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      b6a55015
    • Johannes Berg's avatar
      cfg80211: allow userspace to take ownership of interfaces · 78f22b6a
      Johannes Berg authored
      
      When dynamically creating interfaces from userspace, e.g. for P2P usage,
      such interfaces are usually owned by the process that created them, i.e.
      wpa_supplicant. Should wpa_supplicant crash, such interfaces will often
      cease operating properly and cause problems on restarting the process.
      
      To avoid this problem, introduce an ownership concept for interfaces. If
      an interface is owned by a netlink socket, then it will be destroyed if
      the netlink socket is closed for any reason, including if the process it
      belongs to crashed. This gives us a race-free way to get rid of any such
      interfaces.
      
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      78f22b6a
  32. Mar 03, 2014
  33. Feb 25, 2014
    • Ilan Peer's avatar
      cfg80211: send stop AP event only due to internal reason · 7c8d5e03
      Ilan Peer authored
      
      Commit "nl80211: send event when AP operation is stopped" added an
      event to notify user space that an AP interface has been stopped, to
      handle cases such as suspend etc. The event is sent regardless
      if the stop AP flow was triggered by user space or due to internal state
      change.
      
      This might cause issues with wpa_supplicant/hostapd flows that consider
      stop AP flow as a synchronous one, e.g., AP/GO channel change in the
      absence of CSA support. In such cases, the flow will restart the AP
      immediately after the stop AP flow is done, and only handle the stop
      AP event after the current flow is done, and as a result stop the AP
      again.
      
      Change the current implementation to only send the event in case the
      stop AP was triggered due to an internal reason.
      
      Signed-off-by: default avatarIlan Peer <ilan.peer@intel.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      7c8d5e03
  34. Feb 06, 2014
    • Johannes Berg's avatar
      cfg80211: send scan results from work queue · f9d15d16
      Johannes Berg authored
      
      Due to the previous commit, when a scan finishes, it is in theory
      possible to hit the following sequence:
       1. interface starts being removed
       2. scan is cancelled by driver and cfg80211 is notified
       3. scan done work is scheduled
       4. interface is removed completely, rdev->scan_req is freed,
          event sent to userspace but scan done work remains pending
       5. new scan is requested on another virtual interface
       6. scan done work runs, freeing the still-running scan
      
      To fix this situation, hang on to the scan done message and block
      new scans while that is the case, and only send the message from
      the work function, regardless of whether the scan_req is already
      freed from interface removal. This makes step 5 above impossible
      and changes step 6 to be
       5. scan done work runs, sending the scan done message
      
      As this can't work for wext, so we send the message immediately,
      but this shouldn't be an issue since we still return -EBUSY.
      
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      f9d15d16
    • Johannes Berg's avatar
      cfg80211: fix scan done race · a617302c
      Johannes Berg authored
      
      When an interface/wdev is removed, any ongoing scan should be
      cancelled by the driver. This will make it call cfg80211, which
      only queues a work struct. If interface/wdev removal is quick
      enough, this can leave the scan request pending and processed
      only after the interface is gone, causing a use-after-free.
      
      Fix this by making sure the scan request is not pending after
      the interface is destroyed. We can't flush or cancel the work
      item due to locking concerns, but when it'll run it shouldn't
      find anything to do. This leaves a potential issue, if a new
      scan gets requested before the work runs, it prematurely stops
      the running scan, potentially causing another crash. I'll fix
      that in the next patch.
      
      This was particularly observed with P2P_DEVICE wdevs, likely
      because freeing them is quicker than freeing netdevs.
      
      Reported-by: default avatarAndrei Otcheretianski <andrei.otcheretianski@intel.com>
      Fixes: 4a58e7c3 ("cfg80211: don't "leak" uncompleted scans")
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      a617302c
    • Johannes Berg's avatar
      cfg80211: re-enable 5/10 MHz support · 5a6aa705
      Johannes Berg authored
      
      Unfortunately I forgot this during the merge window, but the
      patch seems small enough to go in as a fix. The userspace API
      bug that was the reason for disabling it has long been fixed.
      
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      5a6aa705
  35. Feb 04, 2014
Loading