mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	Bluetooth: core: Fix missing power_on work cancel on HCI close
Move power_on work cancel to hci_dev_close_sync to ensure that power_on
work is canceled after HCI interface down, power off, rfkill, etc.
For example, if
    hciconfig hci0 down
is done early enough during boot, it may run before power_on work.
Then, power_on work will actually bring up interface despite above
hciconfig command.
Signed-off-by: Vasyl Vavrychuk <vasyl.vavrychuk@opensynergy.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
			
			
This commit is contained in:
		
							parent
							
								
									4622594766
								
							
						
					
					
						commit
						ff7f292611
					
				
					 2 changed files with 1 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -2675,8 +2675,6 @@ void hci_unregister_dev(struct hci_dev *hdev)
 | 
			
		|||
	list_del(&hdev->list);
 | 
			
		||||
	write_unlock(&hci_dev_list_lock);
 | 
			
		||||
 | 
			
		||||
	cancel_work_sync(&hdev->power_on);
 | 
			
		||||
 | 
			
		||||
	hci_cmd_sync_clear(hdev);
 | 
			
		||||
 | 
			
		||||
	if (!test_bit(HCI_QUIRK_NO_SUSPEND_NOTIFIER, &hdev->quirks))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4089,6 +4089,7 @@ int hci_dev_close_sync(struct hci_dev *hdev)
 | 
			
		|||
 | 
			
		||||
	bt_dev_dbg(hdev, "");
 | 
			
		||||
 | 
			
		||||
	cancel_work_sync(&hdev->power_on);
 | 
			
		||||
	cancel_delayed_work(&hdev->power_off);
 | 
			
		||||
	cancel_delayed_work(&hdev->ncmd_timer);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue