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(¶m->addr, addr) == 0 && > param->addr_type == addr_type) > -- > 2.25.2 >