- 26 6月, 2021 3 次提交
-
-
由 Tedd Ho-Jeong An 提交于
When the Get Device Flags command fails, it returns the error status with the parameters filled with the garbage values. Although the parameters are not used, it is better to fill with zero than the random values. Signed-off-by: NTedd Ho-Jeong An <tedd.an@intel.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Yu Liu 提交于
0x2B, 0x31 and 0x33 are reserved for future use but were not present in the HCI to MGMT conversion table, this caused the conversion to be incorrect for the HCI status code greater than 0x2A. Reviewed-by: NMiao-chen Chou <mcchou@chromium.org> Signed-off-by: NYu Liu <yudiliu@google.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Yu Liu 提交于
When an MGMT_EV_DEVICE_CONNECTED event is reported back to the user space we will set the flags to tell if the established connection is outbound or not. This is useful for the user space to log better metrics and error messages. Reviewed-by: NMiao-chen Chou <mcchou@chromium.org> Reviewed-by: NAlain Michaud <alainm@chromium.org> Signed-off-by: NYu Liu <yudiliu@google.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
- 03 6月, 2021 1 次提交
-
-
由 Zheng Yongjun 提交于
Fix some spelling mistakes in comments: udpate ==> update retreive ==> retrieve accidentially ==> accidentally correspondig ==> corresponding adddress ==> address estabilish ==> establish commplete ==> complete Unkown ==> Unknown triggerd ==> triggered transtion ==> transition Signed-off-by: NZheng Yongjun <zhengyongjun3@huawei.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
- 08 4月, 2021 1 次提交
-
-
由 Marcel Holtmann 提交于
Some controllers don't support the Simple Pairing Options feature that can indicate the support for P-192 and P-256 public key validation. However they might support the Microsoft vendor extension that can indicate the validiation capability as well. Signed-off-by: NMarcel Holtmann <marcel@holtmann.org> Signed-off-by: NLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
-
- 06 4月, 2021 1 次提交
-
-
由 Daniel Winkler 提交于
We set hdev->cur_adv_instance in the adv param MGMT request to allow the callback to the hci param request to set the tx power to the correct instance. Now that the callbacks use the advertising handle from the hci request (as they should), this workaround is no longer necessary. Furthermore, this change resolves a race condition that is more prevalent when using the extended advertising MGMT calls - if hdev->cur_adv_instance is set in the params request, then when the data request is called, we believe our new instance is already active. This treats it as an update and immediately schedules the instance with the controller, which has a potential race with the software rotation adv update. By not setting hdev->cur_adv_instance too early, the new instance is queued as it should be, to be used when the rotation comes around again. This change is tested on harrison peak to confirm that it resolves the race condition on registration, and that there is no regression in single- and multi-advertising automated tests. Reviewed-by: NMiao-chen Chou <mcchou@chromium.org> Signed-off-by: NDaniel Winkler <danielwinkler@google.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
- 27 3月, 2021 5 次提交
-
-
由 Marcel Holtmann 提交于
Increment the mgmt revision due to recent changes. Signed-off-by: NMarcel Holtmann <marcel@holtmann.org> Signed-off-by: NLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
-
由 Marcel Holtmann 提交于
The list of trusted events should contain the advertisement monitor events and not the untrusted one, so move entries to the correct list. Signed-off-by: NMarcel Holtmann <marcel@holtmann.org> Signed-off-by: NLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
-
由 Marcel Holtmann 提交于
The list of supported mgmt commands for PHY configuration is missing, so just add them. Signed-off-by: NMarcel Holtmann <marcel@holtmann.org> Signed-off-by: NLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
-
由 Marcel Holtmann 提交于
The read advertising features error handling returns false the opcode for the set advertising command. Signed-off-by: NMarcel Holtmann <marcel@holtmann.org> Signed-off-by: NLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
-
由 Marcel Holtmann 提交于
The return error when trying to change the setting when a controller is powered up, shall be MGMT_STATUS_REJECTED. However instead now the error MGMT_STATUS_NOT_POWERED is used which is exactly the opposite. Signed-off-by: NMarcel Holtmann <marcel@holtmann.org> Signed-off-by: NLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
-
- 04 3月, 2021 1 次提交
-
-
由 Daniel Winkler 提交于
An issue was found, where if a bluetooth client requests a broadcast advertisement with scan response data, it will not be properly registered with the controller. This is because at the time that the hci_cp_le_set_scan_param structure is created, the scan response will not yet have been received since it comes in a second MGMT call. With empty scan response, the request defaults to a non-scannable PDU type. On some controllers, the subsequent scan response request will fail due to incorrect PDU type, and others will succeed and not use the scan response. This fix allows the advertising parameters MGMT call to include a flag to let the kernel know whether a scan response will be coming, so that the correct PDU type is used in the first place. A bluetoothd change is also incoming to take advantage of it. To test this, I created a broadcast advertisement with scan response data and registered it on the hatch chromebook. Without this change, the request fails, and with it will succeed. Reviewed-by: NAlain Michaud <alainm@chromium.org> Reviewed-by: NSonny Sasaka <sonnysasaka@chromium.org> Reviewed-by: NMiao-chen Chou <mcchou@chromium.org> Signed-off-by: NDaniel Winkler <danielwinkler@google.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
- 03 2月, 2021 1 次提交
-
-
由 Howard Chung 提交于
If hci_add_adv_monitor is a pending command(e.g. forward to msft_add_monitor_pattern), it is possible that mgmt_add_adv_patterns_monitor_complete gets called before cmd->user_data gets set, which will cause a crash when we try to get the moniter handle through cmd->user_data in mgmt_add_adv_patterns_monitor_complete. This moves the cmd->user_data assignment earlier than hci_add_adv_monitor. RIP: 0010:mgmt_add_adv_patterns_monitor_complete+0x82/0x187 [bluetooth] Code: 1e bf 03 00 00 00 be 52 00 00 00 4c 89 ea e8 9e e4 02 00 49 89 c6 48 85 c0 0f 84 06 01 00 00 48 89 5d b8 4c 89 fb 4d 8b 7e 30 <41> 0f b7 47 18 66 89 45 c0 45 84 e4 75 5a 4d 8b 56 28 48 8d 4d c8 RSP: 0018:ffffae81807dbcb8 EFLAGS: 00010286 RAX: ffff91c4bdf723c0 RBX: 0000000000000000 RCX: ffff91c4e5da5b80 RDX: ffff91c405680000 RSI: 0000000000000052 RDI: ffff91c49d654c00 RBP: ffffae81807dbd00 R08: ffff91c49fb157e0 R09: ffff91c49fb157e0 R10: 000000000002a4f0 R11: ffffffffc0819cfd R12: 0000000000000000 R13: ffff91c405680000 R14: ffff91c4bdf723c0 R15: 0000000000000000 FS: 0000000000000000(0000) GS:ffff91c4ea300000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000018 CR3: 0000000133612002 CR4: 00000000003606e0 Call Trace: ? msft_le_monitor_advertisement_cb+0x111/0x141 [bluetooth] hci_event_packet+0x425e/0x631c [bluetooth] ? printk+0x59/0x73 ? __switch_to_asm+0x41/0x70 ? msft_le_set_advertisement_filter_enable_cb+0xa6/0xa6 [bluetooth] ? bt_dbg+0xb4/0xbb [bluetooth] ? __switch_to_asm+0x41/0x70 hci_rx_work+0x101/0x319 [bluetooth] process_one_work+0x257/0x506 worker_thread+0x10d/0x284 kthread+0x14c/0x154 ? process_one_work+0x506/0x506 ? kthread_blkcg+0x2c/0x2c ret_from_fork+0x1f/0x40 Reviewed-by: NMiao-chen Chou <mcchou@chromium.org> Reviewed-by: NManish Mandlik <mmandlik@chromium.org> Reviewed-by: NArchie Pusaka <apusaka@chromium.org> Signed-off-by: NHoward Chung <howardchung@google.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
- 25 1月, 2021 3 次提交
-
-
由 Archie Pusaka 提交于
Implements the monitor removal functionality for advertising monitor offloading to MSFT controllers. Supply handle = 0 to remove all monitors. Signed-off-by: NArchie Pusaka <apusaka@chromium.org> Reviewed-by: NMiao-chen Chou <mcchou@chromium.org> Reviewed-by: NYun-Hao Chung <howardchung@google.com> Reported-by: Nkernel test robot <lkp@intel.com> Reported-by: NDan Carpenter <dan.carpenter@oracle.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Archie Pusaka 提交于
Enables advertising monitor offloading to the controller, if MSFT extension is supported. The kernel won't adjust the monitor parameters to match what the controller supports - that is the user space's responsibility. This patch only manages the addition of monitors. Monitor removal is going to be handled by another patch. Signed-off-by: NArchie Pusaka <apusaka@chromium.org> Reviewed-by: NManish Mandlik <mmandlik@chromium.org> Reviewed-by: NMiao-chen Chou <mcchou@chromium.org> Reviewed-by: NYun-Hao Chung <howardchung@google.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Archie Pusaka 提交于
MSFT needs rssi parameter for monitoring advertisement packet, therefore we should supply them from mgmt. This adds a new opcode to add advertisement monitor with rssi parameters. Signed-off-by: NArchie Pusaka <apusaka@chromium.org> Reviewed-by: NManish Mandlik <mmandlik@chromium.org> Reviewed-by: NMiao-chen Chou <mcchou@chromium.org> Reviewed-by: NYun-Hao Chung <howardchung@google.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
- 19 12月, 2020 1 次提交
-
-
由 Abhishek Pandit-Subedi 提交于
Just like MGMT_OP_START_DISCOVERY, we should reject MGMT_OP_START_SERVICE_DISCOVERY with MGMT_STATUS_BUSY when we are paused for suspend. Signed-off-by: NAbhishek Pandit-Subedi <abhishekpandit@chromium.org> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
- 07 12月, 2020 5 次提交
-
-
由 Marcel Holtmann 提交于
Increment the mgmt revision due to the recently added new commands. Signed-off-by: NMarcel Holtmann <marcel@holtmann.org> Signed-off-by: NJohan Hedberg <johan.hedberg@intel.com>
-
由 Daniel Winkler 提交于
For advertising, we wish to know the LE tx power capabilities of the controller in userspace, so this patch edits the Security Info MGMT command to be more generic, such that other various controller capabilities can be included in the EIR data. This change also includes the LE min and max tx power into this newly-named command. The change was tested by manually verifying that the MGMT command returns the tx power range as expected in userspace. Reviewed-by: NSonny Sasaka <sonnysasaka@chromium.org> Signed-off-by: NDaniel Winkler <danielwinkler@google.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org> Signed-off-by: NJohan Hedberg <johan.hedberg@intel.com>
-
由 Daniel Winkler 提交于
This patch takes the min/max intervals and tx power optionally provided in mgmt interface, stores them in the advertisement struct, and uses them when configuring the hci requests. While tx power is not used if extended advertising is unavailable, software rotation will use the min and max advertising intervals specified by the client. This change is validated manually by ensuring the min/max intervals are propagated to the controller on both hatch (extended advertising) and kukui (no extended advertising) chromebooks, and that tx power is propagated correctly on hatch. These tests are performed with multiple advertisements simultaneously. Reviewed-by: NSonny Sasaka <sonnysasaka@chromium.org> Signed-off-by: NDaniel Winkler <danielwinkler@google.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org> Signed-off-by: NJohan Hedberg <johan.hedberg@intel.com>
-
由 Daniel Winkler 提交于
This patch adds support for the new advertising add interface, with the first command setting advertising parameters and the second to set advertising data. The set parameters command allows the caller to leave some fields "unset", with a params bitfield defining which params were purposefully set. Unset parameters will be given defaults when calling hci_add_adv_instance. The data passed to the param mgmt command is allowed to be flexible, so in the future if bluetoothd passes a larger structure with new params, the mgmt command will ignore the unknown members at the end. This change has been validated on both hatch (extended advertising) and kukui (no extended advertising) chromebooks running bluetoothd that support this new interface. I ran the following manual tests: - Set several (3) advertisements using modified test_advertisement.py - For each, validate correct data and parameters in btmon trace - Verified both for software rotation and extended adv Automatic test suite also run, testing many (25) scenarios of single and multi-advertising for data/parameter correctness. Reviewed-by: NSonny Sasaka <sonnysasaka@chromium.org> Signed-off-by: NDaniel Winkler <danielwinkler@google.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org> Signed-off-by: NJohan Hedberg <johan.hedberg@intel.com>
-
由 Reo Shiseki 提交于
Signed-off-by: NReo Shiseki <reoshiseki@gmail.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org> Signed-off-by: NJohan Hedberg <johan.hedberg@intel.com>
-
- 26 9月, 2020 1 次提交
-
-
由 Luiz Augusto von Dentz 提交于
This checks if BT_HS is enabled relecting it on MGMT_SETTING_HS instead of always reporting it as supported. Signed-off-by: NLuiz Augusto von Dentz <luiz.von.dentz@intel.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
- 13 9月, 2020 2 次提交
-
-
由 Abhishek Pandit-Subedi 提交于
Update device disconnect event with reason 0x5 to indicate that device disconnected because the controller is suspending. Signed-off-by: NAbhishek Pandit-Subedi <abhishekpandit@chromium.org> Reviewed-by: NMiao-chen Chou <mcchou@chromium.org> Reviewed-by: NSonny Sasaka <sonnysasaka@chromium.org> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Abhishek Pandit-Subedi 提交于
Add the controller suspend and resume events, which will signal when Bluetooth has completed preparing for suspend and when it's ready for resume. Signed-off-by: NAbhishek Pandit-Subedi <abhishekpandit@chromium.org> Reviewed-by: NMiao-chen Chou <mcchou@chromium.org> Reviewed-by: NSonny Sasaka <sonnysasaka@chromium.org> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
- 11 9月, 2020 3 次提交
-
-
由 Daniel Winkler 提交于
For new advertising features, it will be important for userspace to know the capabilities of the controller and kernel. If the controller and kernel support extended advertising, we include flags indicating hardware offloading support and support for setting tx power of adv instances. In the future, vendor-specific commands may allow the setting of tx power in advertising instances, but for now this feature is only marked available if extended advertising is supported. This change is manually verified in userspace by ensuring the advertising manager's supported_flags field is updated with new flags on hatch chromebook (ext advertising supported). Signed-off-by: NDaniel Winkler <danielwinkler@google.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Daniel Winkler 提交于
Here we make sure we properly report the number of supported advertising slots when we are using hardware offloading. If no hardware offloading is available, we default this value to HCI_MAX_ADV_INSTANCES for use in software rotation as before. This change has been tested on kukui (no ext adv) and hatch (ext adv) chromebooks by verifying "SupportedInstances" shows 5 (the default) and 6 (slots supported by controller), respectively. Signed-off-by: NDaniel Winkler <danielwinkler@google.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Peilin Ye 提交于
read_adv_mon_features() is leaking memory. Free `rp` before returning. Fixes: e5e1e7fd ("Bluetooth: Add handler of MGMT_OP_READ_ADV_MONITOR_FEATURES") Reported-and-tested-by: syzbot+f7f6e564f4202d8601c6@syzkaller.appspotmail.com Link: https://syzkaller.appspot.com/bug?extid=f7f6e564f4202d8601c6Signed-off-by: NPeilin Ye <yepeilin.cs@gmail.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
- 31 7月, 2020 1 次提交
-
-
由 Marcel Holtmann 提交于
Increment the mgmt revision due to the recently added new commands. Signed-off-by: NMarcel Holtmann <marcel@holtmann.org> Signed-off-by: NJohan Hedberg <johan.hedberg@intel.com>
-
- 30 7月, 2020 2 次提交
-
-
由 Sathish Narasimman 提交于
This patch adds support to enable the use of RPA Address resolution using expermental feature mgmt command. Signed-off-by: NSathish Narasimman <sathish.narasimman@intel.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Sathish Narasimman 提交于
In this patch if le_create_conn process is started restrict to disable address resolution and same is disabled during le_enh_connection_complete Signed-off-by: NSathish Narasimman <sathish.narasimman@intel.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
- 15 7月, 2020 1 次提交
-
-
由 Daniel Winkler 提交于
Add functionality to disable and remove advertising instances, and use that functionality in MGMT add/remove advertising calls. Currently, advertising is globally-disabled, i.e. all instances are disabled together, even if hardware offloading is available. This patch adds functionality to disable and remove individual adv instances, solving two issues: 1. On new advertisement registration, a global disable was done, and then only the new instance was enabled. This meant only the newest instance was actually enabled. 2. On advertisement removal, the structure was removed, but the instance was never disabled or removed, which is incorrect with hardware offload support. Signed-off-by: NDaniel Winkler <danielwinkler@google.com> Reviewed-by: NShyh-In Hwang <josephsih@chromium.org> Reviewed-by: NAlain Michaud <alainm@chromium.org> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
- 11 7月, 2020 1 次提交
-
-
由 Gustavo A. R. Silva 提交于
Replace the existing /* fall through */ comments and its variants with the new pseudo-keyword macro fallthrough[1]. Also, remove unnecessary fall-through markings when it is the case. [1] https://www.kernel.org/doc/html/latest/process/deprecated.html?highlight=fallthrough#implicit-switch-case-fall-throughSigned-off-by: NGustavo A. R. Silva <gustavoars@kernel.org> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
- 07 7月, 2020 1 次提交
-
-
由 Alain Michaud 提交于
This patch adds an le_simult_central_peripheral features which allows a clients to determine if the controller is able to support peripheral and central connections separately and at the same time. Signed-off-by: NAlain Michaud <alainm@chromium.org> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
- 22 6月, 2020 1 次提交
-
-
由 Abhishek Pandit-Subedi 提交于
Adding hci_dev_lock since hci_conn_params_(lookup|add) require this lock. Suggested-by: NMiao-chen Chou <mcchou@chromium.org> Signed-off-by: NAbhishek Pandit-Subedi <abhishekpandit@chromium.org> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
- 18 6月, 2020 5 次提交
-
-
由 Manish Mandlik 提交于
If user decides to cancel the ongoing pairing process (e.g. by clicking the cancel button on pairing/passkey window), abort any ongoing pairing and then terminate the link if it was created because of the pair device action. Signed-off-by: NManish Mandlik <mmandlik@google.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org> Signed-off-by: NJohan Hedberg <johan.hedberg@intel.com>
-
由 Miao-chen Chou 提交于
This calls hci_update_background_scan() when there is any update on the advertisement monitors. If there is at least one advertisement monitor, the filtering policy of scan parameters should be 0x00. This also reports device found mgmt events if there is at least one monitor. The following cases were tested with btmgmt advmon-* commands. (1) add a ADV monitor and observe that the passive scanning is triggered. (2) remove the last ADV monitor and observe that the passive scanning is terminated. (3) with a LE peripheral paired, repeat (1) and observe the passive scanning continues. (4) with a LE peripheral paired, repeat (2) and observe the passive scanning continues. (5) with a ADV monitor, suspend/resume the host and observe the passive scanning continues. Signed-off-by: NMiao-chen Chou <mcchou@chromium.org> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org> Signed-off-by: NJohan Hedberg <johan.hedberg@intel.com>
-
由 Miao-chen Chou 提交于
This notifies management sockets on MGMT_EV_ADV_MONITOR_REMOVED event. The following test was performed. - Start two btmgmt consoles, issue a btmgmt advmon-remove command on one console and observe a MGMT_EV_ADV_MONITOR_REMOVED event on the other. Signed-off-by: NMiao-chen Chou <mcchou@chromium.org> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org> Signed-off-by: NJohan Hedberg <johan.hedberg@intel.com>
-
由 Miao-chen Chou 提交于
This notifies management sockets on MGMT_EV_ADV_MONITOR_ADDED event. The following test was performed. - Start two btmgmt consoles, issue a btmgmt advmon-add command on one console and observe a MGMT_EV_ADV_MONITOR_ADDED event on the other Signed-off-by: NMiao-chen Chou <mcchou@chromium.org> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org> Signed-off-by: NJohan Hedberg <johan.hedberg@intel.com>
-
由 Miao-chen Chou 提交于
This adds the request handler of MGMT_OP_REMOVE_ADV_MONITOR command. Note that the controller-based monitoring is not yet in place. This removes the internal monitor(s) without sending HCI traffic, so the request returns immediately. The following test was performed. - Issue btmgmt advmon-remove with valid and invalid handles. Signed-off-by: NMiao-chen Chou <mcchou@chromium.org> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org> Signed-off-by: NJohan Hedberg <johan.hedberg@intel.com>
-