From: Luiz Augusto von Dentz <[email protected]>
This attempts to program the address stored in hdev->static_addr after
the init sequence has been complete:
@ MGMT Command: Set Static A.. (0x002b) plen 6
Address: C0:55:44:33:22:11 (Static)
@ MGMT Event: Command Complete (0x0001) plen 7
Set Static Address (0x002b) plen 4
Status: Success (0x00)
Current settings: 0x00008200
Low Energy
Static Address
@ MGMT Event: New Settings (0x0006) plen 4
Current settings: 0x00008200
Low Energy
Static Address
< HCI Command: LE Set Random.. (0x08|0x0005) plen 6
Address: C0:55:44:33:22:11 (Static)
> HCI Event: Command Complete (0x0e) plen 4
LE Set Random Address (0x08|0x0005) ncmd 1
Status: Success (0x00)
@ MGMT Event: Command Complete (0x0001) plen 7
Set Powered (0x0005) plen 4
Status: Success (0x00)
Current settings: 0x00008201
Powered
Low Energy
Static Address
@ MGMT Event: New Settings (0x0006) plen 4
Current settings: 0x00008201
Powered
Low Energy
Static Address
Signed-off-by: Luiz Augusto von Dentz <[email protected]>
---
net/bluetooth/hci_sync.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/net/bluetooth/hci_sync.c b/net/bluetooth/hci_sync.c
index 76c3107c9f91..b53bb0ee9d39 100644
--- a/net/bluetooth/hci_sync.c
+++ b/net/bluetooth/hci_sync.c
@@ -3054,6 +3054,7 @@ int hci_update_name_sync(struct hci_dev *hdev)
* Enable Authentication
* lmp_bredr_capable(Set Fast Connectable -> Set Scan Type -> Set Class ->
* Set Name -> Set EIR)
+ * HCI_FORCE_STATIC_ADDR | BDADDR_ANY && !HCI_BREDR_ENABLED (Set Static Address)
*/
int hci_powered_update_sync(struct hci_dev *hdev)
{
@@ -3093,6 +3094,23 @@ int hci_powered_update_sync(struct hci_dev *hdev)
hci_update_eir_sync(hdev);
}
+ /* If forcing static address is in use or there is no public
+ * address use the static address as random address (but skip
+ * the HCI command if the current random address is already the
+ * static one.
+ *
+ * In case BR/EDR has been disabled on a dual-mode controller
+ * and a static address has been configured, then use that
+ * address instead of the public BR/EDR address.
+ */
+ if (hci_dev_test_flag(hdev, HCI_FORCE_STATIC_ADDR) ||
+ (!bacmp(&hdev->bdaddr, BDADDR_ANY) &&
+ !hci_dev_test_flag(hdev, HCI_BREDR_ENABLED))) {
+ if (bacmp(&hdev->static_addr, BDADDR_ANY))
+ return hci_set_random_addr_sync(hdev,
+ &hdev->static_addr);
+ }
+
return 0;
}
--
2.37.3
This is automated email and please do not reply to this email!
Dear submitter,
Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=683863
---Test result---
Test Summary:
CheckPatch PASS 1.84 seconds
GitLint PASS 0.94 seconds
SubjectPrefix PASS 0.62 seconds
BuildKernel PASS 45.66 seconds
BuildKernel32 PASS 41.39 seconds
Incremental Build with patchesPASS 66.29 seconds
TestRunner: Setup PASS 682.30 seconds
TestRunner: l2cap-tester PASS 21.42 seconds
TestRunner: iso-tester PASS 22.47 seconds
TestRunner: bnep-tester PASS 8.46 seconds
TestRunner: mgmt-tester FAIL 140.62 seconds
TestRunner: rfcomm-tester PASS 13.03 seconds
TestRunner: sco-tester PASS 12.36 seconds
TestRunner: ioctl-tester PASS 14.33 seconds
TestRunner: mesh-tester PASS 10.32 seconds
TestRunner: smp-tester PASS 12.12 seconds
TestRunner: userchan-tester PASS 8.61 seconds
Details
##############################
Test: TestRunner: mgmt-tester - FAIL - 140.62 seconds
Run test-runner with mgmt-tester
Total: 494, Passed: 492 (99.6%), Failed: 2, Not Run: 0
Failed Test Cases
Set Static Address - Success 1 Timed out 2.396 seconds
Set Static Address - Success 2 Timed out 2.004 seconds
---
Regards,
Linux Bluetooth
Hello:
This series was applied to bluetooth/bluetooth-next.git (master)
by Luiz Augusto von Dentz <[email protected]>:
On Fri, 7 Oct 2022 18:11:28 -0700 you wrote:
> From: Luiz Augusto von Dentz <[email protected]>
>
> This attempts to program the address stored in hdev->static_addr after
> the init sequence has been complete:
>
> @ MGMT Command: Set Static A.. (0x002b) plen 6
> Address: C0:55:44:33:22:11 (Static)
> @ MGMT Event: Command Complete (0x0001) plen 7
> Set Static Address (0x002b) plen 4
> Status: Success (0x00)
> Current settings: 0x00008200
> Low Energy
> Static Address
> @ MGMT Event: New Settings (0x0006) plen 4
> Current settings: 0x00008200
> Low Energy
> Static Address
> < HCI Command: LE Set Random.. (0x08|0x0005) plen 6
> Address: C0:55:44:33:22:11 (Static)
> > HCI Event: Command Complete (0x0e) plen 4
> LE Set Random Address (0x08|0x0005) ncmd 1
> Status: Success (0x00)
> @ MGMT Event: Command Complete (0x0001) plen 7
> Set Powered (0x0005) plen 4
> Status: Success (0x00)
> Current settings: 0x00008201
> Powered
> Low Energy
> Static Address
> @ MGMT Event: New Settings (0x0006) plen 4
> Current settings: 0x00008201
> Powered
> Low Energy
> Static Address
>
> [...]
Here is the summary with links:
- [1/2] Bluetooth: hci_sync: Fix not setting static address
https://git.kernel.org/bluetooth/bluetooth-next/c/ca57023e7c49
- [2/2] Bluetooth: hci_sync: Fix not able to set force_static_address
https://git.kernel.org/bluetooth/bluetooth-next/c/8549542298e9
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html