~ubuntu-branches/ubuntu/raring/linux-ti-omap4/raring-proposed

« back to all changes in this revision

Viewing changes to net/mac80211/sta_info.c

  • Committer: Package Import Robot
  • Author(s): Paolo Pisati, Paolo Pisati, Ubuntu: 3.5.0-22.34
  • Date: 2013-01-11 15:02:20 UTC
  • mfrom: (72.1.1 quantal-proposed)
  • Revision ID: package-import@ubuntu.com-20130111150220-kgmbtlwhyc4kwqhg
Tags: 3.5.0-217.25
* Release Tracking Bug
  - LP: #1097912

[ Paolo Pisati ]

* rebased on Ubuntu-3.5.0-22.34

[ Ubuntu: 3.5.0-22.34 ]

* Release Tracking Bug
  - LP: #1097343
* Revert "SAUCE: fsnotify: dont put marks on temporary list when clearing
  marks by group"
  - LP: #1096137
* Revert "SAUCE: fsnotify: introduce locked versions of
  fsnotify_add_mark() and fsnotify_remove_mark()"
  - LP: #1096137
* Revert "SAUCE: fsnotify: pass group to fsnotify_destroy_mark()"
  - LP: #1096137
* Revert "SAUCE: fsnotify: use a mutex instead of a spinlock to protect a
  groups mark list"
  - LP: #1096137
* Revert "SAUCE: fanotify: add an extra flag to mark_remove_from_mask
  that indicates wheather a mark should be destroyed"
  - LP: #1096137
* Revert "SAUCE: fsnotify: take groups mark_lock before mark lock"
  - LP: #1096137
* Revert "SAUCE: fsnotify: use reference counting for groups"
  - LP: #1096137
* Revert "SAUCE: fsnotify: introduce fsnotify_get_group()"
  - LP: #1096137
* fsnotify: introduce fsnotify_get_group()
  - LP: #1096137
* fsnotify: use reference counting for groups
  - LP: #1096137
* fsnotify: take groups mark_lock before mark lock
  - LP: #1096137
* fanotify: add an extra flag to mark_remove_from_mask that indicates
  wheather a mark should be destroyed
  - LP: #1096137
* fsnotify: use a mutex instead of a spinlock to protect a groups mark
  list
  - LP: #1096137
* fsnotify: pass group to fsnotify_destroy_mark()
  - LP: #1096137
* fsnotify: introduce locked versions of fsnotify_add_mark() and
  fsnotify_remove_mark()
  - LP: #1096137
* fsnotify: dont put marks on temporary list when clearing marks by group
  - LP: #1096137
* fsnotify: change locking order
  - LP: #1096137

Show diffs side-by-side

added added

removed removed

Lines of Context:
738
738
 
739
739
        for (ac = 0; ac < IEEE80211_NUM_ACS; ac++) {
740
740
                local->total_ps_buffered -= skb_queue_len(&sta->ps_tx_buf[ac]);
741
 
                __skb_queue_purge(&sta->ps_tx_buf[ac]);
742
 
                __skb_queue_purge(&sta->tx_filtered[ac]);
 
741
                ieee80211_purge_tx_queue(&local->hw, &sta->ps_tx_buf[ac]);
 
742
                ieee80211_purge_tx_queue(&local->hw, &sta->tx_filtered[ac]);
743
743
        }
744
744
 
745
745
#ifdef CONFIG_MAC80211_MESH
774
774
                tid_tx = rcu_dereference_raw(sta->ampdu_mlme.tid_tx[i]);
775
775
                if (!tid_tx)
776
776
                        continue;
777
 
                __skb_queue_purge(&tid_tx->pending);
 
777
                ieee80211_purge_tx_queue(&local->hw, &tid_tx->pending);
778
778
                kfree(tid_tx);
779
779
        }
780
780
 
959
959
        struct ieee80211_local *local = sdata->local;
960
960
        struct sk_buff_head pending;
961
961
        int filtered = 0, buffered = 0, ac;
 
962
        unsigned long flags;
962
963
 
963
964
        clear_sta_flag(sta, WLAN_STA_SP);
964
965
 
974
975
        for (ac = 0; ac < IEEE80211_NUM_ACS; ac++) {
975
976
                int count = skb_queue_len(&pending), tmp;
976
977
 
 
978
                spin_lock_irqsave(&sta->tx_filtered[ac].lock, flags);
977
979
                skb_queue_splice_tail_init(&sta->tx_filtered[ac], &pending);
 
980
                spin_unlock_irqrestore(&sta->tx_filtered[ac].lock, flags);
978
981
                tmp = skb_queue_len(&pending);
979
982
                filtered += tmp - count;
980
983
                count = tmp;
981
984
 
 
985
                spin_lock_irqsave(&sta->ps_tx_buf[ac].lock, flags);
982
986
                skb_queue_splice_tail_init(&sta->ps_tx_buf[ac], &pending);
 
987
                spin_unlock_irqrestore(&sta->ps_tx_buf[ac].lock, flags);
983
988
                tmp = skb_queue_len(&pending);
984
989
                buffered += tmp - count;
985
990
        }