Bluetooth: Set default own address type only during controller setup
The default own address type is currently set at every power on of a controller. This overwrites the value set via debugfs. To avoid this issue, set the default own address type only during controller setup. Signed-off-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
This commit is contained in:
parent
33337dcb89
commit
bef34c0aa1
|
@ -1275,15 +1275,17 @@ static void hci_init3_req(struct hci_request *req, unsigned long opt)
|
|||
hci_setup_link_policy(req);
|
||||
|
||||
if (lmp_le_capable(hdev)) {
|
||||
/* If the controller has a public BD_ADDR, then by
|
||||
* default use that one. If this is a LE only
|
||||
* controller without one, default to the random
|
||||
* address.
|
||||
*/
|
||||
if (bacmp(&hdev->bdaddr, BDADDR_ANY))
|
||||
hdev->own_addr_type = ADDR_LE_DEV_PUBLIC;
|
||||
else
|
||||
hdev->own_addr_type = ADDR_LE_DEV_RANDOM;
|
||||
if (test_bit(HCI_SETUP, &hdev->dev_flags)) {
|
||||
/* If the controller has a public BD_ADDR, then
|
||||
* by default use that one. If this is a LE only
|
||||
* controller without a public address, default
|
||||
* to the random address.
|
||||
*/
|
||||
if (bacmp(&hdev->bdaddr, BDADDR_ANY))
|
||||
hdev->own_addr_type = ADDR_LE_DEV_PUBLIC;
|
||||
else
|
||||
hdev->own_addr_type = ADDR_LE_DEV_RANDOM;
|
||||
}
|
||||
|
||||
hci_set_le_support(req);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue