1. 06 3月, 2013 14 次提交
    • S
      cfg80211/mac80211: disconnect on suspend · 81256969
      Stanislaw Gruszka 提交于
      If possible that after suspend, cfg80211 will receive request to
      disconnect what require action on interface that was removed during
      suspend.
      
      Problem can manifest itself by various warnings similar to below one:
      
      WARNING: at net/mac80211/driver-ops.h:12 ieee80211_bss_info_change_notify+0x2f9/0x300 [mac80211]()
      wlan0:  Failed check-sdata-in-driver check, flags: 0x4
      Call Trace:
       [<c043e0b3>] warn_slowpath_fmt+0x33/0x40
       [<f83707c9>] ieee80211_bss_info_change_notify+0x2f9/0x300 [mac80211]
       [<f83a660a>] ieee80211_recalc_ps_vif+0x2a/0x30 [mac80211]
       [<f83a6706>] ieee80211_set_disassoc+0xf6/0x500 [mac80211]
       [<f83a9441>] ieee80211_mgd_deauth+0x1f1/0x280 [mac80211]
       [<f8381b36>] ieee80211_deauth+0x16/0x20 [mac80211]
       [<f8261e70>] cfg80211_mlme_down+0x70/0xc0 [cfg80211]
       [<f8264de1>] __cfg80211_disconnect+0x1b1/0x1d0 [cfg80211]
      
      To fix the problem disconnect from any associated network before
      suspend. User space is responsible to establish connection again
      after resume. This basically need to be done by user space anyway,
      because associated stations can go away during suspend (for example
      NetworkManager disconnects on suspend and connect on resume by default).
      
      Patch also handle situation when driver refuse to suspend with wowlan
      configured and try to suspend again without it.
      Signed-off-by: NStanislaw Gruszka <sgruszka@redhat.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      81256969
    • J
      cfg80211: Extend support for IEEE 802.11r Fast BSS Transition · 355199e0
      Jouni Malinen 提交于
      Add NL80211_CMD_UPDATE_FT_IES to support update of FT IEs to the WLAN
      driver and NL80211_CMD_FT_EVENT to send FT events from the WLAN driver.
      This will carry the target AP's MAC address along with the relevant
      Information Elements. This event is used to report received FT IEs
      (MDIE, FTIE, RSN IE, TIE, RICIE). These changes allow FT to be supported
      with drivers that use an internal SME instead of user space option (like
      FT implementation in wpa_supplicant with mac80211-based drivers).
      Signed-off-by: NJouni Malinen <jouni@qca.qualcomm.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      355199e0
    • J
      cfg80211: prohibit zero keepalive interval · 723d568a
      Johannes Berg 提交于
      It's not useful to specify a 0 keepalive interval, this
      would send too much data. Prohibit this to also avoid
      device issues.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      723d568a
    • J
      cfg80211: refactor association parameters · f62fab73
      Johannes Berg 提交于
      cfg80211_mlme_assoc() has grown far too many arguments,
      make the caller build almost all of the driver struct
      and pass that to the function instead.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      f62fab73
    • J
      cfg80211: add ability to override VHT capabilities · ee2aca34
      Johannes Berg 提交于
      For testing it's sometimes useful to be able to
      override certain VHT capability advertisement,
      add the ability to do that in cfg80211.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      ee2aca34
    • J
      cfg80211: move exported event functions into nl80211 · 947add36
      Johannes Berg 提交于
      This is the sort of thing gcc's LTO could do, but since
      we don't have that yet we can also do it manually. The
      advantage is reduced code, both source and binary, e.g.
      on x86-64
      
         text	   data	    bss	    dec	    hex	filename
       442825	  56230	    776	 499831	  7a077	cfg80211.ko (before)
       441585	  56230	    776	 498591	  79b9f	cfg80211.ko (after)
      
      a reduction of ~1k.
      
      But in order to not complicate the code move only those
      functions that are simple wrappers, not those that have
      functionality of their own.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      947add36
    • J
      nl80211: re-add channel width and extended capa advertising · fe1abafd
      Johannes Berg 提交于
      Add back the channel width and extended capability data
      to wiphy information if split information is supported.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      fe1abafd
    • J
      nl80211: conditionally add back TCP WoWLAN information · b56cf720
      Johannes Berg 提交于
      Add back the previously removed TCP WoWLAN information,
      but only if userspace is prepared to deal with large
      wiphy capability data dumps.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      b56cf720
    • J
      nl80211: conditionally add back radar information · cdc89b97
      Johannes Berg 提交于
      If userspace is updated to deal with large split wiphy
      information dumps, add back the radar information that
      could otherwise push the data over the limit of the
      netlink dump messages.
      
      Cc: Simon Wunderlich <simon.wunderlich@s2003.tu-chemnitz.de>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      cdc89b97
    • J
      nl80211: allow splitting wiphy information in dumps · 3713b4e3
      Johannes Berg 提交于
      The per-wiphy information is getting large, to the point
      where with more than the typical number of channels it's
      too large and overflows, and userspace can't get any of
      the information at all.
      
      To address this (in a way that doesn't require making all
      messages bigger) allow userspace to specify that it can
      deal with wiphy information split across multiple parts
      of the dump, and if it can split up the data. This also
      splits up each channel separately so an arbitrary number
      of channels can be supported.
      
      Additionally, since GET_WIPHY has the same problem, add
      support for filtering the wiphy dump and get information
      for a single wiphy only, this allows userspace apps to
      use dump in this case to retrieve all data from a single
      device.
      
      As userspace needs to know if all this this is supported,
      add a global nl80211 feature set and include a bit for
      this behaviour in it.
      
      Cc: Dennis H Jensen <dennis.h.jensen@siemens.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      3713b4e3
    • J
      cfg80211: comprehensively check station changes · 77ee7c89
      Johannes Berg 提交于
      The station change API isn't being checked properly before
      drivers are called, and as a result it is difficult to see
      what should be allowed and what not.
      
      In order to comprehensively check the API parameters parse
      everything first, and then have the driver call a function
      (cfg80211_check_station_change()) with the additionally
      information about the kind of station that is being changed;
      this allows the function to make better decisions than the
      old code could.
      
      While at it, also add a few checks, particularly in mesh
      and clarify the TDLS station lifetime in documentation.
      
      To be able to reduce a few checks, ignore any flag set bits
      when the mask isn't set, they shouldn't be applied then.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      77ee7c89
    • J
      cfg80211: unify station WME parsing · ff276691
      Johannes Berg 提交于
      Instead of copying the code, create a new function
      to parse the station's WME information.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      ff276691
    • J
      cfg80211: clean up station WME attribute parsing · 984c311b
      Johannes Berg 提交于
      Parse the attributes first, and then disable the apply
      flag if needed.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      984c311b
    • J
      cfg80211: clean up mesh plink station change API · f8bacc21
      Johannes Berg 提交于
      Make the ability to leave the plink_state unchanged not use a
      magic -1 variable that isn't in the enum, but an explicit change
      flag; reject invalid plink states or actions and move the needed
      constants for plink actions to the right header file. Also
      reject plink_state changes for non-mesh interfaces.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      f8bacc21
  2. 01 3月, 2013 1 次提交
    • J
      nl80211: increase wiphy dump size dynamically · 645e77de
      Johannes Berg 提交于
      Given a device with many channels capabilities the wiphy
      information can still overflow even though its size in
      3.9 was reduced to 3.8 levels. For new userspace and
      kernel 3.10 we're going to implement a new "split dump"
      protocol that can use multiple messages per wiphy.
      
      For now though, add a workaround to be able to send more
      information to userspace. Since generic netlink doesn't
      have a way to set the minimum dump size globally, and we
      wouldn't really want to set it globally anyway, increase
      the size only when needed, as described in the comments.
      As userspace might not be prepared for large buffers, we
      can only use 4k.
      
      Also increase the size for the get_wiphy command.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      645e77de
  3. 27 2月, 2013 1 次提交
  4. 26 2月, 2013 2 次提交
    • J
      nl80211: remove TCP WoWLAN information · 162589f7
      Johannes Berg 提交于
      Just like the radar information, the TCP WoWLAN capability
      data can increase the wiphy information and make it too
      big. Remove the TCP WoWLAN information; no driver supports
      it and new userspace tools will be required as well.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      162589f7
    • J
      nl80211: remove radar information · 1c33a059
      Johannes Berg 提交于
      The wiphy information is getting very close to being too
      much for a typical netlink dump message and adding the
      radar attributes to channels and interface combinations
      can push it over the limit, which means userspace gets no
      information whatsoever. Therefore, remove these again for
      now, no driver actually supports radar detection anyway
      and a modified userspace is required as well.
      
      We're working on a solution that will allow userspace to
      request splitting the information across multiple netlink
      messages, which will allow us to add this back.
      
      Cc: Simon Wunderlich <simon.wunderlich@s2003.tu-chemnitz.de>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      1c33a059
  5. 19 2月, 2013 3 次提交
  6. 15 2月, 2013 6 次提交
  7. 13 2月, 2013 3 次提交
  8. 12 2月, 2013 6 次提交
  9. 05 2月, 2013 4 次提交