lkml.org 
[lkml]   [2022]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.16 0256/1039] Bluetooth: MGMT: Use hci_dev_test_and_{set,clear}_flag
    Date
    From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>

    [ Upstream commit 6f59f991b4e735323f099ac6490e725ae8c750a5 ]

    This make use of hci_dev_test_and_{set,clear}_flag instead of doing 2
    operations in a row.

    Fixes: cbbdfa6f33198 ("Bluetooth: Enable controller RPA resolution using Experimental feature")
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    net/bluetooth/mgmt.c | 14 +++++++-------
    1 file changed, 7 insertions(+), 7 deletions(-)

    diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
    index 44683443300ce..c068d05e9616f 100644
    --- a/net/bluetooth/mgmt.c
    +++ b/net/bluetooth/mgmt.c
    @@ -3969,10 +3969,10 @@ static int set_zero_key_func(struct sock *sk, struct hci_dev *hdev,
    #endif

    if (hdev && use_ll_privacy(hdev) && !hdev_is_powered(hdev)) {
    - bool changed = hci_dev_test_flag(hdev, HCI_ENABLE_LL_PRIVACY);
    -
    - hci_dev_clear_flag(hdev, HCI_ENABLE_LL_PRIVACY);
    + bool changed;

    + changed = hci_dev_test_and_clear_flag(hdev,
    + HCI_ENABLE_LL_PRIVACY);
    if (changed)
    exp_ll_privacy_feature_changed(false, hdev, sk);
    }
    @@ -4067,15 +4067,15 @@ static int set_rpa_resolution_func(struct sock *sk, struct hci_dev *hdev,
    val = !!cp->param[0];

    if (val) {
    - changed = !hci_dev_test_flag(hdev, HCI_ENABLE_LL_PRIVACY);
    - hci_dev_set_flag(hdev, HCI_ENABLE_LL_PRIVACY);
    + changed = !hci_dev_test_and_set_flag(hdev,
    + HCI_ENABLE_LL_PRIVACY);
    hci_dev_clear_flag(hdev, HCI_ADVERTISING);

    /* Enable LL privacy + supported settings changed */
    flags = BIT(0) | BIT(1);
    } else {
    - changed = hci_dev_test_flag(hdev, HCI_ENABLE_LL_PRIVACY);
    - hci_dev_clear_flag(hdev, HCI_ENABLE_LL_PRIVACY);
    + changed = hci_dev_test_and_clear_flag(hdev,
    + HCI_ENABLE_LL_PRIVACY);

    /* Disable LL privacy + supported settings changed */
    flags = BIT(1);
    --
    2.34.1


    \
     
     \ /
      Last update: 2022-01-25 04:40    [W:2.736 / U:24.532 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site