lkml.org 
[lkml]   [2022]   [Jun]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.17 132/298] Bluetooth: MGMT: Add conditions for setting HCI_CONN_FLAG_REMOTE_WAKEUP
    Date
    From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>

    [ Upstream commit a9a347655d224fa2841877957b34fc9d491fc2d7 ]

    HCI_CONN_FLAG_REMOTE_WAKEUP can only be set if device can be programmed
    in the allowlist which in case of device using RPA requires LL Privacy
    support to be enabled.

    Link: https://bugzilla.kernel.org/show_bug.cgi?id=215768
    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 | 18 ++++++++++++++++++
    1 file changed, 18 insertions(+)

    diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
    index 15eab8b968ce..16cd2e7a10da 100644
    --- a/net/bluetooth/mgmt.c
    +++ b/net/bluetooth/mgmt.c
    @@ -4525,6 +4525,23 @@ static int set_device_flags(struct sock *sk, struct hci_dev *hdev, void *data,
    params = hci_conn_params_lookup(hdev, &cp->addr.bdaddr,
    le_addr_type(cp->addr.type));
    if (params) {
    + DECLARE_BITMAP(flags, __HCI_CONN_NUM_FLAGS);
    +
    + bitmap_from_u64(flags, current_flags);
    +
    + /* Devices using RPAs can only be programmed in the
    + * acceptlist LL Privacy has been enable otherwise they
    + * cannot mark HCI_CONN_FLAG_REMOTE_WAKEUP.
    + */
    + if (test_bit(HCI_CONN_FLAG_REMOTE_WAKEUP, flags) &&
    + !use_ll_privacy(hdev) &&
    + hci_find_irk_by_addr(hdev, &params->addr,
    + params->addr_type)) {
    + bt_dev_warn(hdev,
    + "Cannot set wakeable for RPA");
    + goto unlock;
    + }
    +
    bitmap_from_u64(params->flags, current_flags);
    status = MGMT_STATUS_SUCCESS;

    @@ -4541,6 +4558,7 @@ static int set_device_flags(struct sock *sk, struct hci_dev *hdev, void *data,
    }
    }

    +unlock:
    hci_dev_unlock(hdev);

    done:
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-06-13 16:32    [W:4.035 / U:0.096 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site