A peer device using an RPA can be added to the whitelist, if it is present in the resolving list. Signed-off-by: Shermin Joy <shermin.joy@xxxxxxxxx> --- net/bluetooth/hci_request.c | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/net/bluetooth/hci_request.c b/net/bluetooth/hci_request.c index 347054d..5be918a 100644 --- a/net/bluetooth/hci_request.c +++ b/net/bluetooth/hci_request.c @@ -708,8 +708,14 @@ static u8 update_white_list(struct hci_request *req) } if (hci_find_irk_by_addr(hdev, &b->bdaddr, b->bdaddr_type)) { - /* White list can not be used with RPAs */ - return 0x00; + /* White list can not be used with RPAs if address + * resolution is disabled in the controller or the + * peer device is not present in the resolving list. + */ + if (!hdev->le_ll_addr_resolve_enabled || + (!hci_resolving_list_lookup(hdev, &b->bdaddr, + b->bdaddr_type))) + return 0x00; } white_list_entries++; @@ -737,8 +743,14 @@ static u8 update_white_list(struct hci_request *req) if (hci_find_irk_by_addr(hdev, ¶ms->addr, params->addr_type)) { - /* White list can not be used with RPAs */ - return 0x00; + /* White list can not be used with RPAs if address + * resolution is disabled in the controller or the + * peer device is not present in the resolving list. + */ + if (!hdev->le_ll_addr_resolve_enabled || + (!hci_resolving_list_lookup(hdev, ¶ms->addr, + params->addr_type))) + return 0x00; } white_list_entries++; @@ -761,8 +773,14 @@ static u8 update_white_list(struct hci_request *req) if (hci_find_irk_by_addr(hdev, ¶ms->addr, params->addr_type)) { - /* White list can not be used with RPAs */ - return 0x00; + /* White list can not be used with RPAs if address + * resolution is disabled in the controller or the + * peer device is not present in the resolving list. + */ + if (!hdev->le_ll_addr_resolve_enabled || + (!hci_resolving_list_lookup(hdev, ¶ms->addr, + params->addr_type))) + return 0x00; } white_list_entries++; -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html