• Gianluca Anzolin's avatar
    Bluetooth: Release RFCOMM port when the last user closes the TTY · 5b899241
    Gianluca Anzolin authored
    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: default avatarGianluca Anzolin <gianluca@sottospazio.it>
    Reported-by: default avatarAlexander Holler <holler@ahsoftware.de>
    Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
    5b899241
tty.c 25.7 KB