lkml.org 
[lkml]   [2022]   [Aug]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.19 0529/1157] Bluetooth: mgmt: Fix refresh cached connection info
    Date
    From: Zhengping Jiang <jiangzp@google.com>

    [ Upstream commit d7b2fdfb53ea09382941c0a4950dc9b00d51d1c7 ]

    Set the connection data before calling get_conn_info_sync, so it can be
    verified the connection is still connected, before refreshing cached
    values.

    Fixes: 47db6b42991e6 ("Bluetooth: hci_sync: Convert MGMT_OP_GET_CONN_INFO")
    Signed-off-by: Zhengping Jiang <jiangzp@google.com>
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    net/bluetooth/mgmt.c | 10 +++++-----
    1 file changed, 5 insertions(+), 5 deletions(-)

    diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
    index 2f91a8c2b678..cbdf0e2bc5ae 100644
    --- a/net/bluetooth/mgmt.c
    +++ b/net/bluetooth/mgmt.c
    @@ -6820,11 +6820,14 @@ static int get_conn_info(struct sock *sk, struct hci_dev *hdev, void *data,

    cmd = mgmt_pending_new(sk, MGMT_OP_GET_CONN_INFO, hdev, data,
    len);
    - if (!cmd)
    + if (!cmd) {
    err = -ENOMEM;
    - else
    + } else {
    + hci_conn_hold(conn);
    + cmd->user_data = hci_conn_get(conn);
    err = hci_cmd_sync_queue(hdev, get_conn_info_sync,
    cmd, get_conn_info_complete);
    + }

    if (err < 0) {
    mgmt_cmd_complete(sk, hdev->id, MGMT_OP_GET_CONN_INFO,
    @@ -6836,9 +6839,6 @@ static int get_conn_info(struct sock *sk, struct hci_dev *hdev, void *data,
    goto unlock;
    }

    - hci_conn_hold(conn);
    - cmd->user_data = hci_conn_get(conn);
    -
    conn->conn_info_timestamp = jiffies;
    } else {
    /* Cache is valid, just reply with values cached in hci_conn */
    --
    2.35.1


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