Re: [PATCH] Bluetooth: Translate additional address type correctly

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Marcel,

On Tue, Apr 7, 2020 at 2:12 PM Marcel Holtmann <marcel@xxxxxxxxxxxx> wrote:
>
> When using controller based address resolution, then the new address
> types 0x02 and 0x03 are used. These types need to be converted back into
> either public address or random address types.
>
> Signed-off-by: Marcel Holtmann <marcel@xxxxxxxxxxxx>
> ---
>  include/net/bluetooth/hci.h | 6 ++++--
>  net/bluetooth/hci_core.c    | 9 +++++++++
>  2 files changed, 13 insertions(+), 2 deletions(-)
>
> diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h
> index 58360538d42b..74896536ebce 100644
> --- a/include/net/bluetooth/hci.h
> +++ b/include/net/bluetooth/hci.h
> @@ -2257,8 +2257,10 @@ struct hci_ev_le_conn_complete {
>  #define LE_EXT_ADV_SCAN_RSP            0x0008
>  #define LE_EXT_ADV_LEGACY_PDU          0x0010
>
> -#define ADDR_LE_DEV_PUBLIC     0x00
> -#define ADDR_LE_DEV_RANDOM     0x01
> +#define ADDR_LE_DEV_PUBLIC             0x00
> +#define ADDR_LE_DEV_RANDOM             0x01
> +#define ADDR_LE_DEV_PUBLIC_RESOLVED    0x02
> +#define ADDR_LE_DEV_RANDOM_RESOLVED    0x03
>
>  #define HCI_EV_LE_ADVERTISING_REPORT   0x02
>  struct hci_ev_le_advertising_info {
> diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
> index 589c4085499c..fb210f7ab7ab 100644
> --- a/net/bluetooth/hci_core.c
> +++ b/net/bluetooth/hci_core.c
> @@ -3145,6 +3145,15 @@ struct hci_conn_params *hci_pend_le_action_lookup(struct list_head *list,
>  {
>         struct hci_conn_params *param;
>
> +       switch (addr_type) {
> +       case ADDR_LE_DEV_PUBLIC_RESOLVED:
> +               addr_type = ADDR_LE_DEV_PUBLIC;
> +               break;
> +       case ADDR_LE_DEV_RANDOM:

This seems to be a typo. Should it be `case ADDR_LE_DEV_RANDOM_RESOLVED`?

> +               addr_type = ADDR_LE_DEV_RANDOM;
> +               break;
> +       }
> +
>         list_for_each_entry(param, list, action) {
>                 if (bacmp(&param->addr, addr) == 0 &&
>                     param->addr_type == addr_type)
> --
> 2.25.2
>



[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux