Bluetooth: L2CAP: add support for waiting disconnection resp
authorArchie Pusaka <apusaka@chromium.org>
Tue, 14 Apr 2020 08:08:40 +0000 (16:08 +0800)
committerMarcel Holtmann <marcel@holtmann.org>
Wed, 13 May 2020 08:03:51 +0000 (10:03 +0200)
commit5b440676c15bbe1a40f2546ec92db83ed66d9e22
tree5c5e27362bbf9d47b19112ed96a2b36b5683a2a6
parentadf1d6926444029396861413aba8a0f2a805742a
Bluetooth: L2CAP: add support for waiting disconnection resp

Whenever we disconnect a L2CAP connection, we would immediately
report a disconnection event (EPOLLHUP) to the upper layer, without
waiting for the response of the other device.

This patch offers an option to wait until we receive a disconnection
response before reporting disconnection event, by using the "how"
parameter in l2cap_sock_shutdown(). Therefore, upper layer can opt
to wait for disconnection response by shutdown(sock, SHUT_WR).

This can be used to enforce proper disconnection order in HID,
where the disconnection of the interrupt channel must be complete
before attempting to disconnect the control channel.

Signed-off-by: Archie Pusaka <apusaka@chromium.org>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
net/bluetooth/l2cap_sock.c