[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <4E147FE8-F1B6-4EE9-9D7F-FE5656EAB2BE@holtmann.org>
Date: Fri, 9 Apr 2021 16:14:09 +0200
From: Marcel Holtmann <marcel@...tmann.org>
To: Yu Liu <yudiliu@...gle.com>
Cc: linux-bluetooth <linux-bluetooth@...r.kernel.org>,
CrosBT Upstreaming <chromeos-bluetooth-upstreaming@...omium.org>,
Miao-chen Chou <mcchou@...omium.org>,
Alain Michaud <alainm@...omium.org>,
"David S. Miller" <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>,
Johan Hedberg <johan.hedberg@...il.com>,
Luiz Augusto von Dentz <luiz.dentz@...il.com>,
linux-kernel@...r.kernel.org, netdev@...r.kernel.org
Subject: Re: [PATCH v1] Bluetooth: Return whether a connection is outbound
Hi Yu,
> When an MGMT_EV_DEVICE_CONNECTED event is reported back to the user
> space we will set the flags to tell if the established connection is
> outbound or not. This is useful for the user space to log better metrics
> and error messages.
>
> Reviewed-by: Miao-chen Chou <mcchou@...omium.org>
> Reviewed-by: Alain Michaud <alainm@...omium.org>
> Signed-off-by: Yu Liu <yudiliu@...gle.com>
> ---
>
> Changes in v1:
> - Initial change
>
> include/net/bluetooth/mgmt.h | 2 ++
> net/bluetooth/mgmt.c | 5 +++++
> 2 files changed, 7 insertions(+)
>
> diff --git a/include/net/bluetooth/mgmt.h b/include/net/bluetooth/mgmt.h
> index a7cffb069565..7cc724386b00 100644
> --- a/include/net/bluetooth/mgmt.h
> +++ b/include/net/bluetooth/mgmt.h
> @@ -885,6 +885,8 @@ struct mgmt_ev_new_long_term_key {
> struct mgmt_ltk_info key;
> } __packed;
>
> +#define MGMT_DEV_CONN_INITIATED_CONNECTION 0x08
> +
I would just add this to MGMT_DEV_FOUND_INITIATED_CONN 0x08. And yes, I realize that this is a bit weird, but then all values are in one place.
> #define MGMT_EV_DEVICE_CONNECTED 0x000B
> struct mgmt_ev_device_connected {
> struct mgmt_addr_info addr;
> diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
> index 09e099c419f2..77213e67e8e4 100644
> --- a/net/bluetooth/mgmt.c
> +++ b/net/bluetooth/mgmt.c
> @@ -8774,6 +8774,11 @@ void mgmt_device_connected(struct hci_dev *hdev, struct hci_conn *conn,
> bacpy(&ev->addr.bdaddr, &conn->dst);
> ev->addr.type = link_to_bdaddr(conn->type, conn->dst_type);
So the prototype of mgmt_device_connected needs to be changed to remove the flags parameter. It is not used at all.
>
> + if (conn->out)
> + flags |= MGMT_DEV_CONN_INITIATED_CONNECTION;
> + else
> + flags &= ~MGMT_DEV_CONN_INITIATED_CONNECTION;
> +
And then this should be just this:
if (conn->out)
flags |= MGMT_DEV_CONN_INITIATED_CONNECTION;
> ev->flags = __cpu_to_le32(flags);
>
> /* We must ensure that the EIR Data fields are ordered and
Regards
Marcel
Powered by blists - more mailing lists