mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	Bluetooth: Temporarily stop background scanning on discovery
If the user sends a mgmt start discovery command while the background scanning is running, we should temporarily stop it. Once the discovery finishes, we start the background scanning again. Signed-off-by: Andre Guedes <andre.guedes@openbossa.org> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
		
							parent
							
								
									cef952ce76
								
							
						
					
					
						commit
						c54c3860e3
					
				
					 2 changed files with 8 additions and 6 deletions
				
			
		| 
						 | 
				
			
			@ -1786,6 +1786,8 @@ void hci_discovery_set_state(struct hci_dev *hdev, int state)
 | 
			
		|||
 | 
			
		||||
	switch (state) {
 | 
			
		||||
	case DISCOVERY_STOPPED:
 | 
			
		||||
		hci_update_background_scan(hdev);
 | 
			
		||||
 | 
			
		||||
		if (hdev->discovery.state != DISCOVERY_STARTING)
 | 
			
		||||
			mgmt_discovering(hdev, 0);
 | 
			
		||||
		break;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3439,12 +3439,12 @@ static int start_discovery(struct sock *sk, struct hci_dev *hdev,
 | 
			
		|||
			goto failed;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if (test_bit(HCI_LE_SCAN, &hdev->dev_flags)) {
 | 
			
		||||
			err = cmd_status(sk, hdev->id, MGMT_OP_START_DISCOVERY,
 | 
			
		||||
					 MGMT_STATUS_BUSY);
 | 
			
		||||
			mgmt_pending_remove(cmd);
 | 
			
		||||
			goto failed;
 | 
			
		||||
		}
 | 
			
		||||
		/* If controller is scanning, it means the background scanning
 | 
			
		||||
		 * is running. Thus, we should temporarily stop it in order to
 | 
			
		||||
		 * set the discovery scanning parameters.
 | 
			
		||||
		 */
 | 
			
		||||
		if (test_bit(HCI_LE_SCAN, &hdev->dev_flags))
 | 
			
		||||
			hci_req_add_le_scan_disable(&req);
 | 
			
		||||
 | 
			
		||||
		memset(¶m_cp, 0, sizeof(param_cp));
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue