diff options
author | Ronald Tschalär <ronald@innovation.ch> | 2017-10-25 22:15:19 -0700 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2017-10-30 15:48:32 +0100 |
commit | 0338b1b393ec7910898e8f7b25b3bf31a7282e16 (patch) | |
tree | a72e920fd7572388e6a16aec289de034f9c001bb /net | |
parent | 459232fc0e2505d489e2dc3befc1ad01dcdccb47 (diff) | |
download | linux-0338b1b393ec7910898e8f7b25b3bf31a7282e16.tar.gz linux-0338b1b393ec7910898e8f7b25b3bf31a7282e16.tar.bz2 linux-0338b1b393ec7910898e8f7b25b3bf31a7282e16.zip |
Bluetooth: hci_ldisc: Fix another race when closing the tty.
The following race condition still existed:
P1 P2
cancel_work_sync()
hci_uart_tx_wakeup()
hci_uart_write_work()
hci_uart_dequeue()
clear_bit(HCI_UART_PROTO_READY)
hci_unregister_dev(hdev)
hci_free_dev(hdev)
hu->proto->close(hu)
kfree(hu)
access to hdev and hu
Cancelling the work after clearing the HCI_UART_PROTO_READY bit avoids
this as any hci_uart_tx_wakeup() issued after the flag is cleared will
detect that and not schedule further work.
Signed-off-by: Ronald Tschalär <ronald@innovation.ch>
Reviewed-by: Lukas Wunner <lukas@wunner.de>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net')
0 files changed, 0 insertions, 0 deletions