linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Suraj Sumangala <suraj@Atheros.com>
To: "Gustavo F. Padovan" <padovan@profusion.mobi>
Cc: Suraj Sumangala <Suraj.Sumangala@Atheros.com>,
	"linux-bluetooth@vger.kernel.org"
	<linux-bluetooth@vger.kernel.org>,
	Jothikumar Mothilal <Jothikumar.Mothilal@Atheros.com>
Subject: Re: [RFC] Bluetooth: process received S-frames when socket is locked by user process
Date: Thu, 3 Feb 2011 12:20:32 +0530	[thread overview]
Message-ID: <4D4A5038.2050404@Atheros.com> (raw)
In-Reply-To: <20110202174114.GI2273@joana>

Hi Gustavo,

On 2/2/2011 11:11 PM, Gustavo F. Padovan wrote:
> Hi Suraj,
>
> * Suraj Sumangala<suraj@Atheros.com>  [2011-02-02 23:05:19 +0530]:
>
>> Hi Gustavo,
>>
>> On 2/2/2011 10:21 PM, Gustavo F. Padovan wrote:
>>> This one: e454c844644683571617896ab2a4ce0109c1943e
>>>
>>> The issue fixed by this patch is very similar to what you reported
>>
>> Is this commit available in
>> "git://git.kernel.org/pub/scm/linux/kernel/git/padovan/bluetooth-next-2.6.git"
>> tree?
>
> Yes, it is also available in Linus' tree.
>
> commit e454c844644683571617896ab2a4ce0109c1943e
> Author: Gustavo F. Padovan<padovan@profusion.mobi>
> Date:   Tue Sep 21 16:31:11 2010 -0300
>
>      Bluetooth: Fix deadlock in the ERTM logic
>
>      The Enhanced Retransmission Mode(ERTM) is a realiable mode of operation
>      of the Bluetooth L2CAP layer. Think on it like a simplified version of
>      TCP.
>      The problem we were facing here was a deadlock. ERTM uses a backlog
>      queue to queue incomimg packets while the user is helding the lock. At
>      some moment the sk_sndbuf can be exceeded and we can't alloc new skbs
>      then the code sleep with the lock to wait for memory, that stalls the
>      ERTM connection once we can't read the acknowledgements packets in the
>      backlog queue to free memory and make the allocation of outcoming skb
>      successful.
>      successful.
>
>      This patch actually affect all users of bt_skb_send_alloc(), i.e., all
>      L2CAP modes and SCO.
>
>      We are safe against socket states changes or channels deletion while the
>      we are sleeping wait memory. Checking for the sk->sk_err and
>      sk->sk_shutdown make the code safe, since any action that can leave the
>      socket or the channel in a not usable state set one of the struct
>      members at least. Then we can check both of them when getting the lock
>      again and return with the proper error if something unexpected happens.
>
>      Signed-off-by: Gustavo F. Padovan<padovan@profusion.mobi>
>      Signed-off-by: Ulisses Furquim<ulisses@profusion.mobi>
>
>
>

Thanks,this patch solved my issue.

Regards
Suraj

      reply	other threads:[~2011-02-03  6:50 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-31 13:12 [RFC] Bluetooth: process received S-frames when socket is locked by user process Suraj Sumangala
2011-02-02 16:28 ` Gustavo F. Padovan
2011-02-02 16:34   ` Suraj Sumangala
2011-02-02 16:51     ` Gustavo F. Padovan
2011-02-02 17:35       ` Suraj Sumangala
2011-02-02 17:41         ` Gustavo F. Padovan
2011-02-03  6:50           ` Suraj Sumangala [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=4D4A5038.2050404@Atheros.com \
    --to=suraj@atheros.com \
    --cc=Jothikumar.Mothilal@Atheros.com \
    --cc=Suraj.Sumangala@Atheros.com \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=padovan@profusion.mobi \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).