diff options
author | Ronald Tschalär <ronald@innovation.ch> | 2017-10-26 08:15:19 +0300 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2017-10-30 17:48:32 +0300 |
commit | 0338b1b393ec7910898e8f7b25b3bf31a7282e16 (patch) | |
tree | a72e920fd7572388e6a16aec289de034f9c001bb /fs/nilfs2 | |
parent | 459232fc0e2505d489e2dc3befc1ad01dcdccb47 (diff) | |
download | linux-0338b1b393ec7910898e8f7b25b3bf31a7282e16.tar.xz |
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 'fs/nilfs2')
0 files changed, 0 insertions, 0 deletions