All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ville Tervo <ville.tervo@nokia.com>
To: bluez-devel@lists.sourceforge.net
Subject: Re: [Bluez-devel] [PATCH] rfcomm_dev_del is called twice if RFCOMM_HANGUP_NOW flag is used
Date: Fri, 25 Aug 2006 10:42:32 +0300	[thread overview]
Message-ID: <20060825074232.GR8944@null.research.nokia.com> (raw)
In-Reply-To: <d23110170608241129w5db6bffdq5c616f98ad74e509@mail.gmail.com>

On Thu, Aug 24, 2006 at 03:29:04PM -0300, ext Ulisses Furquim wrote:
> Hi Ville,
> 
> On 8/24/06, Ville Tervo <ville.tervo@nokia.com> wrote:
> > I noticed that rfcomm_dev_del() may be called twice if
> > RFCOMM_HANGUP_NOW flags is used with RFCOMMRELEASEDEV ioctl.
> 
> I think you're right but we must have the RFCOMM_RELEASE_ONHUP bit set
> on dev->flags also, right?
> 

Yep that is right.

> > I made a patch that checks if dev is still in the device list before
> > calling deleting device.
> > The checking is done now in rfcomm_release_dev. Maybe better place would
> > be rfcomm_dev_del?
> 
> Actually calling list_del_init() on an item thas was already deleted
> with list_del_init() won't hurt anyone but it seems we can mess up the
> reference counting by calling rfcomm_dev_del() twice.
> 
> I think your patch doesn't completely solve the problem because
> rfcomm_dev_get() will hold a reference to the device if we still
> manage to find it on the list and we will have reference counting
> problems too. Adding a call to rfcomm_dev_put() before the call to
> rfcomm_dev_del() in your patch will keep the reference counting
> correct, I guess. Something like this:
> 
>   if ((dev = rfcomm_dev_get(req.dev_id))) {
> 		rfcomm_dev_put(dev);
> 		rfcomm_dev_del(dev);
>   }
> 

You are right.

-- 
Ville


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

      reply	other threads:[~2006-08-25  7:42 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-08-24 15:09 [Bluez-devel] [PATCH] rfcomm_dev_del is called twice if RFCOMM_HANGUP_NOW flag is used Ville Tervo
2006-08-24 18:29 ` Ulisses Furquim
2006-08-25  7:42   ` Ville Tervo [this message]

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=20060825074232.GR8944@null.research.nokia.com \
    --to=ville.tervo@nokia.com \
    --cc=bluez-devel@lists.sourceforge.net \
    /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.