Commit 9475af6e44d2c17583243c253e2464467b52fa50
Committed by
Linus Torvalds
1 parent
19a101a02e
Exists in
smarc-l5.0.0_1.0.0-ga
and in
5 other branches
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
net/mac80211/main.c
net/mac80211/tx.c
... | ... | @@ -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)) { |