]> git.hungrycats.org Git - linux/commitdiff
Bluetooth: Remove usage of the deprecated ida_simple_xx() API
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Mon, 15 Jan 2024 20:12:19 +0000 (21:12 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 30 May 2024 07:49:30 +0000 (09:49 +0200)
[ Upstream commit 9c16d0c8d93e3d2a95c5ed927b061f244db75579 ]

ida_alloc() and ida_free() should be preferred to the deprecated
ida_simple_get() and ida_simple_remove().

Note that the upper limit of ida_simple_get() is exclusive, but the one of
ida_alloc_max() is inclusive. So a -1 has been added when needed.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Stable-dep-of: 84a4bb6548a2 ("Bluetooth: HCI: Remove HCI_AMP support")
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/bluetooth/hci_core.c
net/bluetooth/hci_sock.c

index befe645d3f9bf64c33a057824aee73199ca75bc8..101ea9137dfefdf4fd7ffccb9ea3ae6760ef89e6 100644 (file)
@@ -2609,10 +2609,11 @@ int hci_register_dev(struct hci_dev *hdev)
         */
        switch (hdev->dev_type) {
        case HCI_PRIMARY:
-               id = ida_simple_get(&hci_index_ida, 0, HCI_MAX_ID, GFP_KERNEL);
+               id = ida_alloc_max(&hci_index_ida, HCI_MAX_ID - 1, GFP_KERNEL);
                break;
        case HCI_AMP:
-               id = ida_simple_get(&hci_index_ida, 1, HCI_MAX_ID, GFP_KERNEL);
+               id = ida_alloc_range(&hci_index_ida, 1, HCI_MAX_ID - 1,
+                                    GFP_KERNEL);
                break;
        default:
                return -EINVAL;
@@ -2711,7 +2712,7 @@ err_wqueue:
        destroy_workqueue(hdev->workqueue);
        destroy_workqueue(hdev->req_workqueue);
 err:
-       ida_simple_remove(&hci_index_ida, hdev->id);
+       ida_free(&hci_index_ida, hdev->id);
 
        return error;
 }
@@ -2793,7 +2794,7 @@ void hci_release_dev(struct hci_dev *hdev)
        hci_dev_unlock(hdev);
 
        ida_destroy(&hdev->unset_handle_ida);
-       ida_simple_remove(&hci_index_ida, hdev->id);
+       ida_free(&hci_index_ida, hdev->id);
        kfree_skb(hdev->sent_cmd);
        kfree_skb(hdev->req_skb);
        kfree_skb(hdev->recv_event);
index 3f5f0932330d22691799ca0f6951ccd3150a7daf..703b84bd48d5befc51d787bcd6c04dcbcff61675 100644 (file)
@@ -101,7 +101,7 @@ static bool hci_sock_gen_cookie(struct sock *sk)
        int id = hci_pi(sk)->cookie;
 
        if (!id) {
-               id = ida_simple_get(&sock_cookie_ida, 1, 0, GFP_KERNEL);
+               id = ida_alloc_min(&sock_cookie_ida, 1, GFP_KERNEL);
                if (id < 0)
                        id = 0xffffffff;
 
@@ -119,7 +119,7 @@ static void hci_sock_free_cookie(struct sock *sk)
 
        if (id) {
                hci_pi(sk)->cookie = 0xffffffff;
-               ida_simple_remove(&sock_cookie_ida, id);
+               ida_free(&sock_cookie_ida, id);
        }
 }