1. 30 Sep, 2016 3 commits
  2. 26 Sep, 2016 2 commits
  3. 15 Sep, 2016 3 commits
  4. 13 Sep, 2016 4 commits
  5. 12 Sep, 2016 1 commit
    • Denis Kenzior's avatar
      nl80211: Allow GET_INTERFACE dumps to be filtered · b7fb44da
      Denis Kenzior authored
      This patch allows GET_INTERFACE dumps to be filtered based on
      NL80211_ATTR_WIPHY or NL80211_ATTR_WDEV.  The documentation for
      GET_INTERFACE mentions that this is possible:
      "Request an interface's configuration; either a dump request on
      a %NL80211_ATTR_WIPHY or ..."
      However, this behavior has not been implemented until now.
      Johannes: rewrite most of the patch:
       * use nl80211_dump_wiphy_parse() to also allow passing an interface
         to be able to dump its siblings
       * fix locking (must hold rtnl around using nl80211_fam.attrbuf)
       * make init self-contained instead of relying on other cb->args
      Signed-off-by: default avatarDenis Kenzior <denkenz@gmail.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
  6. 11 Aug, 2016 4 commits
  7. 05 Aug, 2016 1 commit
  8. 06 Jul, 2016 4 commits
  9. 30 Jun, 2016 1 commit
    • Arnd Bergmann's avatar
      nl80211: improve nl80211_parse_mesh_config type checking · f151d9db
      Arnd Bergmann authored
      When building a kernel with W=1, the nl80211.c file causes a number of
      warnings, all about the same problem:
      net/wireless/nl80211.c: In function 'nl80211_parse_mesh_config':
      net/wireless/nl80211.c:5287:103: error: comparison is always false due to limited range of data type [-Werror=type-limits]
      net/wireless/nl80211.c:5290:96: error: comparison is always false due to limited range of data type [-Werror=type-limits]
      net/wireless/nl80211.c:5293:124: error: comparison is always false due to limited range of data type [-Werror=type-limits]
      net/wireless/nl80211.c:5295:148: error: comparison is always false due to limited range of data type [-Werror=type-limits]
      net/wireless/nl80211.c:5298:106: error: comparison is always false due to limited range of data type [-Werror=type-limits]
      net/wireless/nl80211.c:5305:116: error: comparison is always false due to limited range of data type [-Werror=type-limits]
      The problem is that gcc does not notice that the check is generate
      by a macro, so it complains about comparing an unsigned type against 0.
      I've tried to come up with a way to rephrase that code in a way that
      avoids the warnings and otherwise improves the code as well.
      This uses a set of new helper functions that perform the range checking,
      and should provide slightly better type safety than the older patch,
      at the expense of adding 44 lines to the code. Binary code size is
      basically unchanged though (20 bytes added to 126561 bytes .text).
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
  10. 09 Jun, 2016 3 commits
  11. 31 May, 2016 3 commits
    • Kanchanapally, Vidyullatha's avatar
      cfg80211: Advertise extended capabilities per interface type to userspace · 019ae3a9
      Kanchanapally, Vidyullatha authored
      The driver extended capabilities may differ for different
      interface types which the userspace needs to know (for
      example the fine timing measurement initiator and responder
      bits might differ for a station and AP). Add a new nl80211
      attribute to provide extended capabilities per interface type
      to userspace.
      Signed-off-by: default avatarVidyullatha Kanchanapally <vkanchan@qti.qualcomm.com>
      Reviewed-by: default avatarJouni Malinen <jouni@qca.qualcomm.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    • Jouni Malinen's avatar
      cfg80211: Allow cfg80211_connect_result() errors to be distinguished · bf1ecd21
      Jouni Malinen authored
      Previously, the status parameter to cfg80211_connect_result() was
      documented as using WLAN_STATUS_UNSPECIFIED_FAILURE (1) when the real
      status code for the failure is not known. This value can be used by an
      AP (and often is) and as such, user space cannot distinguish between
      explicitly rejected authentication/association and not being able to
      even try to associate or not receiving a response from the AP.
      Add a new inline function, cfg80211_connect_timeout(), to be used when
      the driver knows that the connection attempt failed due to a reason
      where connection could not be attempt or no response was received from
      the AP. The internal functions now allow a negative status value (-1) to
      be used as an indication of this special case. This results in the
      NL80211_ATTR_TIMED_OUT to be added to the NL80211_CMD_CONNECT event to
      allow user space to determine this case was hit. For backwards
      compatibility, NL80211_STATUS_CODE with the value
      WLAN_STATUS_UNSPECIFIED_FAILURE is still indicated in the event in such
      a case.
      Signed-off-by: default avatarJouni Malinen <jouni@qca.qualcomm.com>
      [johannes: fix cfg80211_connect_bss() prototype to use int for status,
       add cfg80211_connect_timeout() to docbook, fix docbook]
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    • Martin Willi's avatar
      nl80211: Allow privileged operations from user namespaces · 5617c6cd
      Martin Willi authored
      While a wiphy can be transferred to network namespaces, a process having
      CAP_NET_ADMIN in a non-initial user namespace can not administrate such
      devices due to the genetlink GENL_ADMIN_PERM restrictions.
      For openvswitch having the same issue, a new GENL_UNS_ADMIN_PERM flag has
      been introduced, commit 4a92602a
       ("openvswitch: allow management from
      inside user namespaces"). This patch changes all privileged operations
      operating on a wiphy, dev or wdev to allow their administration using the
      same mechanism. All operations use either NEED_WIPHY, NEED_WDEV or
      NEED_NETDEV, which implies a namespace aware lookup of the device. The only
      exception is NL80211_CMD_SET_WIPHY, which explicitly uses a namespace aware
      phy lookup.
      Signed-off-by: default avatarMartin Willi <martin@strongswan.org>
      [also allow cancel scan, for completeness]
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
  12. 12 May, 2016 1 commit
  13. 27 Apr, 2016 1 commit
  14. 26 Apr, 2016 1 commit
  15. 25 Apr, 2016 1 commit
  16. 12 Apr, 2016 2 commits
    • Johannes Berg's avatar
      cfg80211: remove enum ieee80211_band · 57fbcce3
      Johannes Berg authored
      This enum is already perfectly aliased to enum nl80211_band, and
      the only reason for it is that we get IEEE80211_NUM_BANDS out of
      it. There's no really good reason to not declare the number of
      bands in nl80211 though, so do that and remove the cfg80211 one.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    • Dmitry Ivanov's avatar
      nl80211: check netlink protocol in socket release notification · 8f815cdd
      Dmitry Ivanov authored
      A non-privileged user can create a netlink socket with the same port_id as
      used by an existing open nl80211 netlink socket (e.g. as used by a hostapd
      process) with a different protocol number.
      Closing this socket will then lead to the notification going to nl80211's
      socket release notification handler, and possibly cause an action such as
      removing a virtual interface.
      Fix this issue by checking that the netlink protocol is NETLINK_GENERIC.
      Since generic netlink has no notifier chain of its own, we can't fix the
      problem more generically.
      Fixes: 026331c4
       ("cfg80211/mac80211: allow registering for and sending action frames")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarDmitry Ivanov <dima@ubnt.com>
      [rewrite commit message]
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
  17. 06 Apr, 2016 2 commits
  18. 05 Apr, 2016 3 commits