In rfcomm_tty_cleanup we purge the dlc->tx_queue which may contain
socket buffers referencing the tty_port and thus preventing the tty_port
destruction.
Signed-off-by: Gianluca Anzolin <gianluca@sottospazio.it>
Reviewed-by: Peter Hurley <peter@hurleysoftware.com>
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
        tty->driver_data = NULL;
        rfcomm_dlc_unlock(dev->dlc);
 
+       /*
+        * purge the dlc->tx_queue to avoid circular dependencies
+        * between dev and dlc
+        */
+       skb_queue_purge(&dev->dlc->tx_queue);
+
        tty_port_put(&dev->port);
 }