1. 12 4月, 2012 3 次提交
    • J
      mac80211: add improved HW queue control · 3a25a8c8
      Johannes Berg 提交于
      mac80211 currently only supports one hardware queue
      per AC. This is already problematic for off-channel
      uses since if we go off channel while the BE queue
      is full and then try to send an off-channel frame
      the frame will never go out. This will become worse
      when we support multi-channel since then a queue on
      one channel might be full, but we have to stop the
      software queue for all channels. That is obviously
      not desirable.
      
      To address this problem allow drivers to register
      more hardware queues, and allow them to map them to
      virtual interfaces. When they stop a hardware queue
      the corresponding AC software queues on the correct
      interfaces will be stopped as well. Additionally,
      there's an off-channel queue to solve that problem
      and a per-interface after-DTIM beacon queue. This
      allows drivers to manage software queues closer to
      how the hardware works.
      
      Currently, there's a limit of 16 hardware queues.
      This may or may not be sufficient, we can adjust it
      as needed.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      3a25a8c8
    • J
      mac80211: add explicit monitor interface if needed · 4b6f1dd6
      Johannes Berg 提交于
      The queue mapping redesign that I'm planning to do
      will break pure injection unless we handle monitor
      interfaces explicitly. One possible option would
      be to have the driver tell mac80211 about monitor
      mode queues etc., but that would duplicate the API
      since we already need to have queue assignments
      handled per virtual interface.
      
      So in order to solve this, have a virtual monitor
      interface that is added whenever all active vifs
      are monitors. We could also use the state of one
      of the monitor interfaces, but managing that would
      be complicated, so allocate separate state.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      4b6f1dd6
    • J
      mac80211: manage AP netdev carrier state · 3edaf3e6
      Johannes Berg 提交于
      The AP netdev is really only active when beaconing, so
      manage the carrier state accordingly. Also do that for
      VLAN interfaces enslaved to a given AP interface.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      3edaf3e6
  2. 11 4月, 2012 2 次提交
  3. 06 3月, 2012 1 次提交
  4. 28 2月, 2012 1 次提交
  5. 22 2月, 2012 1 次提交
    • M
      mac80211: Fix a warning on changing to monitor mode from STA · 0dee0068
      Mohammed Shafi Shajakhan 提交于
      nothing needs to be done for monitor/AP_VLAN mode on calling
      ieee80211_bss_info_change_notify -> drv_bss_info_changed with the change
      flag 'BSS_CHANGED_IDLE'. 'wl1271' seems to use BSS_CHANGED_IDLE only for
      STA and IBSS mode. further the non-idle state of the monitor mode is
      taken care by the 'count' variable which counts non-idle interfaces.
      ieee80211_idle_off(local, "in use") will be called.
      this fixes the following WARNING when we have initially STA mode
      (network manager running) and not associated, and change it to monitor
      mode with network manager disabled and bringing up the monitor mode.
      this changes the idle state from 'true' (STA unassociated) to 'false'
      (MONITOR mode)
      exposed by the commit 405385f8
      "mac80211: set bss_conf.idle when vif is connected"
      
      	WARNING: net/mac80211/main.c:212
      	ieee80211_bss_info_change_notify+0x1cf/0x330 [mac80211]()
      	Hardware name: 64756D6
      	Pid: 3835, comm: ifconfig Tainted: G           O
      	3.3.0-rc3-wl #9
      	Call Trace:
      	  [<c0133b02>] warn_slowpath_common+0x72/0xa0
      	  [<fc8e8c3f>] ?
      	  ieee80211_bss_info_change_notify+0x1cf/0x330 [mac80211]
      	  [<fc8e8c3f>] ?
      	  ieee80211_bss_info_change_notify+0x1cf/0x330 [mac80211]
      	  [<c0133b52>] warn_slowpath_null+0x22/0x30
      	  [<fc8e8c3f>]
      	  ieee80211_bss_info_change_notify+0x1cf/0x330 [mac80211]
      	  [<fc8f9de3>] __ieee80211_recalc_idle+0x113/0x430
      	  [mac80211]
      	  [<fc8fabc6>] ieee80211_do_open+0x156/0x7e0 [mac80211]
      	  [<fc8f8a25>] ?
      	  ieee80211_check_concurrent_iface+0x25/0x180 [mac80211]
      	  [<c015dd9f>] ? raw_notifier_call_chain+0x1f/0x30
      	  [<fc8fb290>] ieee80211_open+0x40/0x80 [mac80211]
      	  [<c05894f6>] __dev_open+0x96/0xe0
      	  [<c068fba5>] ? _raw_spin_unlock_bh+0x35/0x40
      	  [<c05881d9>] __dev_change_flags+0x109/0x170
      	  [<c0589423>] dev_change_flags+0x23/0x60
      	  [<c05f3770>] devinet_ioctl+0x6a0/0x770
      
       ieee80211 phy0: device no longer idle - in use
      
      Cc: Eliad Peller <eliad@wizery.com>
      Signed-off-by: NMohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      0dee0068
  6. 07 2月, 2012 2 次提交
    • E
      mac80211: support hw scan while idle · 885bd8ec
      Eliad Peller 提交于
      Currently, mac80211 goes to idle-off before starting a scan.
      However, some devices that implement hw scan might not
      need going idle-off in order to perform a hw scan, and
      thus saving some energy and simplifying their state machine.
      
      (Note that this is also the case for sched scan - it
      currently doesn't make mac80211 go idle-off)
      
      Add a new flag to indicate support for hw scan while idle.
      Signed-off-by: NEliad Peller <eliad@wizery.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      885bd8ec
    • J
      mac80211: redesign auth/assoc · 66e67e41
      Johannes Berg 提交于
      This is the second part of the auth/assoc redesign,
      the mac80211 part. This moves the auth/assoc code
      out of the work abstraction and into the MLME, so
      that we don't flip channels all the time etc.
      
      The only downside is that when we are associated,
      we need to drop the association in order to create
      a connection to another AP, but for most drivers
      this is actually desirable and the ability to do
      was never used by any applications. If we want to
      implement resource reservation with FT-OTA, we'd
      probably best do it with explicit R-O-C in wpa_s.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      66e67e41
  7. 31 1月, 2012 2 次提交
  8. 25 1月, 2012 1 次提交
  9. 16 12月, 2011 1 次提交
    • J
      mac80211: refactor station state transitions · d9a7ddb0
      Johannes Berg 提交于
      Station entries can have various states, the most
      important ones being auth, assoc and authorized.
      This patch prepares us for telling the driver about
      these states, we don't want to confuse drivers with
      strange transitions, so with this we enforce that
      they move in the right order between them (back and
      forth); some transitions might happen before the
      driver even knows about the station, but at least
      runtime transitions will be ordered correctly.
      
      As a consequence, IBSS and MESH stations will now
      have the ASSOC flag set (so they can transition to
      AUTHORIZED), and we can get rid of a special case
      in TX processing.
      
      When freeing a station, unwind the state so that
      other parts of the code (or drivers later) can rely
      on the transitions.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      d9a7ddb0
  10. 29 11月, 2011 2 次提交
  11. 18 11月, 2011 1 次提交
  12. 12 11月, 2011 2 次提交
  13. 10 11月, 2011 2 次提交
  14. 09 11月, 2011 1 次提交
  15. 01 10月, 2011 1 次提交
    • J
      mac80211: optimise station flags · c2c98fde
      Johannes Berg 提交于
      The flaglock in struct sta_info has long been
      something that I wanted to get rid of, this
      finally does the conversion to atomic bitops.
      
      The conversion itself is straight-forward in
      most places, a few things needed to change a
      bit since we can no longer use multiple bits
      at the same time.
      
      On x86-64, this is a fairly significant code
      size reduction:
         text	   data	    bss	    dec	    hex
       427861	  23648	   1008	 452517	  6e7a5	before
       425383	  23648	    976	 450007	  6ddd7	after
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      c2c98fde
  16. 22 9月, 2011 1 次提交
  17. 14 9月, 2011 1 次提交
  18. 18 8月, 2011 1 次提交
  19. 02 8月, 2011 1 次提交
  20. 28 7月, 2011 1 次提交
    • N
      net: Audit drivers to identify those needing IFF_TX_SKB_SHARING cleared · 550fd08c
      Neil Horman 提交于
      After the last patch, We are left in a state in which only drivers calling
      ether_setup have IFF_TX_SKB_SHARING set (we assume that drivers touching real
      hardware call ether_setup for their net_devices and don't hold any state in
      their skbs.  There are a handful of drivers that violate this assumption of
      course, and need to be fixed up.  This patch identifies those drivers, and marks
      them as not being able to support the safe transmission of skbs by clearning the
      IFF_TX_SKB_SHARING flag in priv_flags
      Signed-off-by: NNeil Horman <nhorman@tuxdriver.com>
      CC: Karsten Keil <isdn@linux-pingi.de>
      CC: "David S. Miller" <davem@davemloft.net>
      CC: Jay Vosburgh <fubar@us.ibm.com>
      CC: Andy Gospodarek <andy@greyhouse.net>
      CC: Patrick McHardy <kaber@trash.net>
      CC: Krzysztof Halasa <khc@pm.waw.pl>
      CC: "John W. Linville" <linville@tuxdriver.com>
      CC: Greg Kroah-Hartman <gregkh@suse.de>
      CC: Marcel Holtmann <marcel@holtmann.org>
      CC: Johannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      550fd08c
  21. 14 7月, 2011 1 次提交
  22. 12 7月, 2011 1 次提交
  23. 04 6月, 2011 1 次提交
  24. 17 5月, 2011 2 次提交
  25. 06 5月, 2011 1 次提交
  26. 21 2月, 2011 1 次提交
    • E
      net: Fix more stale on-stack list_head objects. · 5f04d506
      Eric W. Biederman 提交于
      From: Eric W. Biederman <ebiederm@xmission.com>
      
      In the beginning with batching unreg_list was a list that was used only
      once in the lifetime of a network device (I think).  Now we have calls
      using the unreg_list that can happen multiple times in the life of a
      network device like dev_deactivate and dev_close that are also using the
      unreg_list.  In addition in unregister_netdevice_queue we also do a
      list_move because for devices like veth pairs it is possible that
      unregister_netdevice_queue will be called multiple times.
      
      So I think the change below to fix dev_deactivate which Eric D. missed
      will fix this problem.  Now to go test that.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5f04d506
  27. 04 2月, 2011 1 次提交
  28. 06 1月, 2011 1 次提交
  29. 23 12月, 2010 2 次提交
  30. 07 12月, 2010 1 次提交
    • J
      cfg80211/mac80211: add mesh join/leave commands · 29cbe68c
      Johannes Berg 提交于
      Instead of tying mesh activity to interface up,
      add join and leave commands for mesh. Since we
      must be backward compatible, let cfg80211 handle
      joining a mesh if a mesh ID was pre-configured
      when the device goes up.
      
      Note that this therefore must modify mac80211 as
      well since mac80211 needs to lose the logic to
      start the mesh on interface up.
      
      We now allow querying mesh parameters before the
      mesh is connected, which simply returns defaults.
      Setting them (internally renamed to "update") is
      only allowed while connected. Specify them with
      the new mesh join command instead where needed.
      
      In mac80211, beaconing must now also follow the
      mesh enabled/not enabled state, which is done
      by testing the mesh ID.
      Signed-off-by: NJavier Cardona <javier@cozybit.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      29cbe68c