Thread (3 messages) 3 messages, 3 authors, 2021-03-15

Re: [PATCH v2] Bluetooth: Cancel le_scan_restart work when stopping discovery

From: Marcel Holtmann <marcel@holtmann.org>
Date: 2021-03-15 20:08:25

Hi Sonny,
Not cancelling it has caused a bug where passive background scanning is
disabled out of the blue, preventing BLE keyboards/mice to reconnect.
Here is how it happens:
After hci_req_stop_discovery, there is still le_scan_restart_work
scheduled. Invocation of le_scan_restart_work causes a harmful
le_scan_disable_work to be scheduled. This le_scan_disable_work will
eventually disable passive scanning when the timer fires.

Sample btmon trace:

< HCI Command: LE Set Scan Parameters (0x08|0x000b) plen 7
       Type: Passive (0x00)
       Interval: 367.500 msec (0x024c)
       Window: 37.500 msec (0x003c)
       Own address type: Public (0x00)
       Filter policy: Accept all advertisement (0x00)
quoted
HCI Event: Command Complete (0x0e) plen 4
     LE Set Scan Parameters (0x08|0x000b) ncmd 1
       Status: Success (0x00)
< HCI Command: LE Set Scan Enable (0x08|0x000c) plen 2
       Scanning: Enabled (0x01)
       Filter duplicates: Disabled (0x00)
quoted
HCI Event: Command Complete (0x0e) plen 4
     LE Set Scan Enable (0x08|0x000c) ncmd 2
       Status: Success (0x00)
...
< HCI Command: LE Set Scan Enable (0x08|0x000c) plen 2
       Scanning: Disabled (0x00)
       Filter duplicates: Disabled (0x00)
quoted
HCI Event: Command Complete (0x0e) plen 4
     LE Set Scan Enable (0x08|0x000c) ncmd 2
       Status: Success (0x00)
// Background scanning is not working here onwards.

Reviewed-by: Abhishek Pandit-Subedi <abhishekpandit@chromium.org>
Signed-off-by: Sonny Sasaka <redacted>

---
net/bluetooth/hci_request.c | 1 +
1 file changed, 1 insertion(+)
patch has been applied to bluetooth-next tree.

Regards

Marcel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help