Bluetooth: hci_uart: Cancel init work before unregistering
authorSamuel Holland <samuel@sholland.org>
Sat, 1 Aug 2020 16:29:56 +0000 (11:29 -0500)
committerMarcel Holtmann <marcel@holtmann.org>
Sun, 2 Aug 2020 18:01:27 +0000 (20:01 +0200)
commit3b799254cf6f481460719023d7a18f46651e5e7f
tree5238dbbf0c635d33860202cb58f3fbefb3307731
parentb5f628a20af9044a9951310918732d1e6d83b476
Bluetooth: hci_uart: Cancel init work before unregistering

If hci_uart_tty_close() or hci_uart_unregister_device() is called while
hu->init_ready is scheduled, hci_register_dev() could be called after
the hci_uart is torn down. Avoid this by ensuring the work is complete
or canceled before checking the HCI_UART_REGISTERED flag.

Fixes: 9f2aee848fe6 ("Bluetooth: Add delayed init sequence support for UART controllers")
Signed-off-by: Samuel Holland <samuel@sholland.org>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
drivers/bluetooth/hci_ldisc.c
drivers/bluetooth/hci_serdev.c