1. 03 7月, 2008 1 次提交
  2. 27 6月, 2008 1 次提交
  3. 22 5月, 2008 2 次提交
  4. 15 5月, 2008 1 次提交
    • J
      mac80211: proper STA info locking · 07346f81
      Johannes Berg 提交于
      As discussed earlier, we can unify locking in struct sta_info
      and use just a single spinlock protecting all members of the
      structure that need protection. Many don't, but one of the
      especially bad ones is the 'flags' member that can currently
      be clobbered when RX and TX is being processed on different
      CPUs at the same time.
      
      Because having four spinlocks for different, mostly exclusive
      parts of a single structure is overkill, this patch also kills
      the ampdu and mesh plink spinlocks and uses just a single one
      for everything. Because none of the spinlocks are nested, this
      is safe.
      
      It remains to be seen whether or not we should make the sta
      flags use atomic bit operations instead, for now though this
      is a safe thing and using atomic operations instead will be
      very simple using the new static inline functions this patch
      introduces for accessing sta->flags.
      
      Since spin_lock_bh() is used with this lock, there shouldn't
      be any contention even if aggregation is enabled at around the
      same time as both requires frame transmission/reception which
      is in a bh context.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Cc: Tomas Winkler <tomasw@gmail.com>
      Cc: Ron Rindjunsky <ron.rindjunsky@intel.com>
      Cc: Luis Carlos Cobo <luisca@cozybit.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      07346f81
  5. 08 5月, 2008 1 次提交
    • J
      mac80211: QoS related cleanups · e100bb64
      Johannes Berg 提交于
      This
       * makes the queue number passed to drivers a u16
         (as it will be with skb_get_queue_mapping)
       * removes the useless queue number defines
       * splits hw->queues into hw->queues/ampdu_queues
       * removes the debugfs files for per-queue counters
       * removes some dead QoS code
       * removes the beacon queue configuration for IBSS
         so that the drivers now never get a queue number
         bigger than (hw->queues + hw->ampdu_queues - 1)
         for tx and only in the range 0..hw->queues-1 for
         conf_tx.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      e100bb64
  6. 09 4月, 2008 5 次提交
    • J
      mac80211: rename files · 2c8dccc7
      Johannes Berg 提交于
      This patch renames all mac80211 files (except ieee80211_i.h) to get rid
      of the useless ieee80211_ prefix.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      2c8dccc7
    • J
      mac80211: fix key vs. sta locking problems · 3b96766f
      Johannes Berg 提交于
      Up to now, key manipulation is supposed to run under RTNL to
      avoid concurrent manipulations and also allow the set_key()
      hardware callback to sleep. This is not feasible because STA
      structs are rcu-protected and thus a lot of operations there
      cannot take the RTNL. Also, key references are rcu-protected
      so we cannot do things atomically.
      
      This patch changes key locking completely:
       * key operations are now atomic
       * hardware crypto offload is enabled and disabled from
         a workqueue, due to that key freeing is also delayed
       * debugfs code is also run from a workqueue
       * keys reference STAs (and vice versa!) so during STA
         unlink the STAs key reference is removed but not the
         keys STA reference, to avoid races key todo work is
         run before STA destruction.
       * fewer STA operations now need the RTNL which was
         required due to key operations
      
      This fixes the locking problems lockdep pointed out and also
      makes things more light-weight because the rtnl isn't required
      as much.
      
      Note that the key todo lock/key mutex are global locks, this
      is not required, of course, they could be per-hardware instead.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      3b96766f
    • J
      mac80211: fix sta-info pinning · 7d1559f1
      Johannes Berg 提交于
      When a STA is supposed to be unlinked but is pinned, it still needs
      to be unlinked from all structures. Only at the end of the unlink
      process should we check for pin status and invalidate the callers
      reference if it is pinned. Move the pin status check down.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      7d1559f1
    • J
      mac80211: fix defined but not used · 4d6141c3
      Jiri Slaby 提交于
      These two symbols are used only in ifdeffed function. Move them to that
      section too.
      net/mac80211/sta_info.c:387: warning: `__sta_info_pin' defined but not used
      net/mac80211/sta_info.c:397: warning: `__sta_info_unpin' defined but not used
      Signed-off-by: NJiri Slaby <jirislaby@gmail.com>
      Cc: Michael Wu <flamingice@sourmilk.net>
      Cc: Johannes Berg <johannes@sipsolutions.net>
      Cc: Jiri Benc <jbenc@suse.cz>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      4d6141c3
    • J
      mac80211: fix possible sta-debugfs work lockup · 49ec6fa2
      Johannes Berg 提交于
      Because we queue the sta-debugfs-adding work on our mac80211
      workqueue (which needs to be flushed under RTNL) and that work
      needs the RTNL, it can currently deadlock, thanks to Reinette
      Chatre for pointing out the lockdep warning about this.
      
      This patch fixes it by moving this work to the common kernel
      workqueue (using schedule_work) and canceling it as appropriate.
      
      It also fixes a related problem: When a STA is pinned by the
      debugfs adding work and sta_info_flush() runs concurrently
      it is not guaranteed that all STAs are removed from the driver
      before the corresponding interface is removed which may lead
      to bugs.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Cc: Reinette Chatre <reinette.chatre@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      49ec6fa2
  7. 02 4月, 2008 5 次提交
  8. 28 3月, 2008 1 次提交
  9. 07 3月, 2008 9 次提交
  10. 01 3月, 2008 7 次提交
  11. 29 1月, 2008 5 次提交
  12. 27 12月, 2007 1 次提交
  13. 11 10月, 2007 1 次提交