1. 05 8月, 2016 1 次提交
  2. 02 8月, 2016 1 次提交
  3. 06 7月, 2016 5 次提交
  4. 30 6月, 2016 1 次提交
    • A
      nl80211: improve nl80211_parse_mesh_config type checking · f151d9db
      Arnd Bergmann 提交于
      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: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      f151d9db
  5. 29 6月, 2016 1 次提交
    • F
      cfg80211: fix proto in ieee80211_data_to_8023 for frames without LLC header · c041778c
      Felix Fietkau 提交于
      The PDU length of incoming LLC frames is set to the total skb payload size
      in __ieee80211_data_to_8023() of net/wireless/util.c which incorrectly
      includes the length of the IEEE 802.11 header.
      
      The resulting LLC frame header has a too large PDU length, causing the
      llc_fixup_skb() function of net/llc/llc_input.c to reject the incoming
      skb, effectively breaking STP.
      
      Solve the problem by properly substracting the IEEE 802.11 frame header size
      from the PDU length, allowing the LLC processor to pick up the incoming
      control messages.
      
      Special thanks to Gerry Rozema for tracking down the regression and proposing
      a suitable patch.
      
      Fixes: 2d1c304c ("cfg80211: add function for 802.3 conversion with separate output buffer")
      Cc: stable@vger.kernel.org
      Reported-by: NGerry Rozema <gerryr@rozeware.com>
      Signed-off-by: NFelix Fietkau <nbd@nbd.name>
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      c041778c
  6. 09 6月, 2016 5 次提交
  7. 31 5月, 2016 3 次提交
    • K
      cfg80211: Advertise extended capabilities per interface type to userspace · 019ae3a9
      Kanchanapally, Vidyullatha 提交于
      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: NVidyullatha Kanchanapally <vkanchan@qti.qualcomm.com>
      Reviewed-by: NJouni Malinen <jouni@qca.qualcomm.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      019ae3a9
    • J
      cfg80211: Allow cfg80211_connect_result() errors to be distinguished · bf1ecd21
      Jouni Malinen 提交于
      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: NJouni 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: NJohannes Berg <johannes.berg@intel.com>
      bf1ecd21
    • M
      nl80211: Allow privileged operations from user namespaces · 5617c6cd
      Martin Willi 提交于
      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: NMartin Willi <martin@strongswan.org>
      [also allow cancel scan, for completeness]
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      5617c6cd
  8. 20 5月, 2016 1 次提交
  9. 12 5月, 2016 3 次提交
  10. 03 5月, 2016 1 次提交
  11. 27 4月, 2016 1 次提交
  12. 26 4月, 2016 3 次提交
  13. 12 4月, 2016 2 次提交
    • J
      cfg80211: remove enum ieee80211_band · 57fbcce3
      Johannes Berg 提交于
      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: NJohannes Berg <johannes.berg@intel.com>
      57fbcce3
    • D
      nl80211: check netlink protocol in socket release notification · 8f815cdd
      Dmitry Ivanov 提交于
      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: NDmitry Ivanov <dima@ubnt.com>
      [rewrite commit message]
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      8f815cdd
  14. 06 4月, 2016 3 次提交
  15. 05 4月, 2016 3 次提交
  16. 05 3月, 2016 1 次提交
  17. 24 2月, 2016 5 次提交