Commit 9475af6e44d2c17583243c253e2464467b52fa50

Authored by Tejun Heo
Committed by Linus Torvalds
1 parent 19a101a02e

mac80211: convert to idr_alloc()

Convert to the much saner new idr interface.

Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Showing 2 changed files with 4 additions and 16 deletions Side-by-side Diff

... ... @@ -647,8 +647,6 @@
647 647  
648 648 spin_lock_init(&local->ack_status_lock);
649 649 idr_init(&local->ack_status_frames);
650   - /* preallocate at least one entry */
651   - idr_pre_get(&local->ack_status_frames, GFP_KERNEL);
652 650  
653 651 sta_info_init(local);
654 652  
... ... @@ -2017,24 +2017,14 @@
2017 2017 skb = skb_clone(skb, GFP_ATOMIC);
2018 2018 if (skb) {
2019 2019 unsigned long flags;
2020   - int id, r;
  2020 + int id;
2021 2021  
2022 2022 spin_lock_irqsave(&local->ack_status_lock, flags);
2023   - r = idr_get_new_above(&local->ack_status_frames,
2024   - orig_skb, 1, &id);
2025   - if (r == -EAGAIN) {
2026   - idr_pre_get(&local->ack_status_frames,
2027   - GFP_ATOMIC);
2028   - r = idr_get_new_above(&local->ack_status_frames,
2029   - orig_skb, 1, &id);
2030   - }
2031   - if (WARN_ON(!id) || id > 0xffff) {
2032   - idr_remove(&local->ack_status_frames, id);
2033   - r = -ERANGE;
2034   - }
  2023 + id = idr_alloc(&local->ack_status_frames, orig_skb,
  2024 + 1, 0x10000, GFP_ATOMIC);
2035 2025 spin_unlock_irqrestore(&local->ack_status_lock, flags);
2036 2026  
2037   - if (!r) {
  2027 + if (id >= 0) {
2038 2028 info_id = id;
2039 2029 info_flags |= IEEE80211_TX_CTL_REQ_TX_STATUS;
2040 2030 } else if (skb_shared(skb)) {