All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Hurley <peter@hurleysoftware.com>
To: Gianluca Anzolin <gianluca@sottospazio.it>
Cc: gustavo@padovan.org, marcel@holtmann.org,
	linux-bluetooth@vger.kernel.org, gregkh@linuxfoundation.org,
	jslaby@suse.cz
Subject: Re: [PATCH] rfcomm: don't release the port in rfcomm_dev_state_change()
Date: Tue, 17 Sep 2013 21:19:20 -0400	[thread overview]
Message-ID: <5238FF98.9020005@hurleysoftware.com> (raw)
In-Reply-To: <1377620926-23370-1-git-send-email-gianluca@sottospazio.it>

On 08/27/2013 12:28 PM, Gianluca Anzolin wrote:
> When the dlc is closed, rfcomm_dev_state_change() tries to release the
> port in the case it cannot get a reference to the tty. However this is
> racy and not even needed.
>
> Infact as Peter Hurley points out:
>
> 1. Only consider dlcs that are 'stolen' from a connected socket, ie.
>     reused. Allocated dlcs cannot have been closed prior to port
>     activate and so for these dlcs a tty reference will always be avail
>     in rfcomm_dev_state_change() -- except for the conditions covered by
>     #2b below.
> 2. If a tty was at some point previously created for this rfcomm, then
>     either
>     (a) the tty reference is still avail, so rfcomm_dev_state_change()
>         will perform a hangup. So nothing to do, or,
>     (b) the tty reference is no longer avail, and the tty_port will be
>         destroyed by the last tty_port_put() in rfcomm_tty_cleanup.
>         Again, no action required.
> 3. Prior to obtaining the dlc lock in rfcomm_dev_add(),
>     rfcomm_dev_state_change() will not 'see' a rfcomm_dev so nothing to
>     do here.
> 4. After releasing the dlc lock in rfcomm_dev_add(),
>     rfcomm_dev_state_change() will 'see' an incomplete rfcomm_dev if a
>     tty reference could not be obtained. Again, the best thing to do here
>     is nothing. Any future attempted open() will block on
>     rfcomm_dev_carrier_raised(). The unconnected device will exist until
>     released by ioctl(RFCOMMRELEASEDEV).
>
> The patch removes the aforementioned code and uses the
> tty_port_tty_hangup() helper to hangup the tty.

Sorry for the delay in reviewing.

Reviewed-by: Peter Hurley <peter@hurleysoftware.com>

  reply	other threads:[~2013-09-18  1:19 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-27 16:28 [PATCH] rfcomm: don't release the port in rfcomm_dev_state_change() Gianluca Anzolin
2013-09-18  1:19 ` Peter Hurley [this message]
2013-09-19 16:24 ` Gustavo Padovan
2013-12-12 20:11   ` [REGRESSION] rfcomm (userland) broken by commit 29cd718b Alexander Holler
2013-12-12 20:36     ` Peter Hurley
2013-12-12 23:35       ` Alexander Holler
2013-12-15 11:24         ` Gianluca Anzolin
2013-12-15 14:03           ` Peter Hurley
2013-12-15 15:08             ` Gianluca Anzolin
2013-12-15 17:54               ` Alexander Holler
2013-12-16 19:34               ` Peter Hurley
2013-12-16 20:20                 ` Gianluca Anzolin
2013-12-16 20:27                   ` Gianluca Anzolin
2013-12-16 20:58                     ` Gianluca Anzolin
2013-12-16 21:15                       ` Gianluca Anzolin
2013-12-24 13:21                         ` Alexander Holler
2013-12-27 23:01                         ` Benson Chow
2013-12-28  8:44                           ` Gianluca Anzolin
2014-01-04  4:32                             ` Benson Chow

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5238FF98.9020005@hurleysoftware.com \
    --to=peter@hurleysoftware.com \
    --cc=gianluca@sottospazio.it \
    --cc=gregkh@linuxfoundation.org \
    --cc=gustavo@padovan.org \
    --cc=jslaby@suse.cz \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=marcel@holtmann.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.