linux/net/bluetooth
Gianluca Anzolin 5b89924187 Bluetooth: Release RFCOMM port when the last user closes the TTY
This patch fixes a userspace regression introduced by the commit
29cd718b.

If the rfcomm device was created with the flag RFCOMM_RELEASE_ONHUP the
user space expects that the tty_port is released as soon as the last
process closes the tty.

The current code attempts to release the port in the function
rfcomm_dev_state_change(). However it won't get a reference to the
relevant tty to send a HUP: at that point the tty is already destroyed
and therefore NULL.

This patch fixes the regression by taking over the tty refcount in the
tty install method(). This way the tty_port is automatically released as
soon as the tty is destroyed.

As a consequence the check for RFCOMM_RELEASE_ONHUP flag in the hangup()
method is now redundant. Instead we have to be careful with the reference
counting in the rfcomm_release_dev() function.

Signed-off-by: Gianluca Anzolin <gianluca@sottospazio.it>
Reported-by: Alexander Holler <holler@ahsoftware.de>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
2014-01-06 13:51:45 -08:00
..
bnep Bluetooth: Access BNEP session addresses through L2CAP channel 2013-10-13 20:00:35 +03:00
cmtp Bluetooth: Access CMTP session addresses through L2CAP channel 2013-10-13 20:00:30 +03:00
hidp Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2013-11-04 14:51:28 -05:00
rfcomm Bluetooth: Release RFCOMM port when the last user closes the TTY 2014-01-06 13:51:45 -08:00
6lowpan.c Bluetooth: Fix NULL pointer dereference when disconnecting 2014-01-06 09:26:23 -08:00
6lowpan.h Bluetooth: Enable 6LoWPAN support for BT LE devices 2013-12-11 12:57:55 -08:00
a2mp.c Bluetooth: Ignore A2MP data on non-BR/EDR links 2013-10-16 01:41:13 -07:00
a2mp.h
af_bluetooth.c Bluetooth: Increase minor version of core module 2013-12-07 21:29:43 +04:00
amp.c
amp.h
hci_conn.c Bluetooth: Expose debugfs settings for LE connection interval 2013-10-19 18:56:54 +03:00
hci_core.c Bluetooth: Add quirk for disabling Delete Stored Link Key command 2014-01-04 20:10:40 +02:00
hci_event.c Bluetooth: Enable 6LoWPAN support for BT LE devices 2013-12-11 12:57:55 -08:00
hci_sock.c net: rework recvmsg handler msg_name and msg_namelen logic 2013-11-20 21:52:30 -05:00
hci_sysfs.c Bluetooth: Remove bus attribute in favor of hierarchy 2013-10-19 16:25:55 +03:00
Kconfig
l2cap_core.c Bluetooth: Enable 6LoWPAN support for BT LE devices 2013-12-11 12:57:55 -08:00
l2cap_sock.c Bluetooth: Default to no security with L2CAP RAW sockets 2014-01-06 09:26:23 -08:00
lib.c
Makefile Bluetooth: Enable 6LoWPAN support for BT LE devices 2013-12-11 12:57:55 -08:00
mgmt.c Bluetooth: Add an extra check in mgmt_device_disconnected() 2013-12-04 11:09:03 -02:00
sco.c net: rework recvmsg handler msg_name and msg_namelen logic 2013-11-20 21:52:30 -05:00
smp.c Bluetooth: Add smp_sufficient_security helper function 2013-12-05 07:05:33 -08:00
smp.h Bluetooth: Add smp_sufficient_security helper function 2013-12-05 07:05:33 -08:00