public inbox for linux-bluetooth@vger.kernel.org
 help / color / mirror / Atom feed
From: Mat Martineau <mathewm@codeaurora.org>
To: linux-bluetooth@vger.kernel.org, gustavo@padovan.org,
	marcel@holtmann.org
Cc: pkrystad@codeaurora.org
Subject: Re: [PATCH] Bluetooth: Send a configuration request after security confirmation
Date: Tue, 22 May 2012 13:50:27 -0700 (PDT)	[thread overview]
Message-ID: <alpine.DEB.2.02.1205221348570.2239@mathewm-linux> (raw)
In-Reply-To: <1337719690-986-1-git-send-email-mathewm@codeaurora.org>


Gustavo & Marcel -

On Tue, 22 May 2012, Mat Martineau wrote:

> Sometimes an ACL link must be raised to a higher security level after
> an L2CAP connection is requested, but before a connection response is
> sent.  In this case, a connection response sent by L2CAP was not
> immediately followed by a configuration request.  Other code paths do
> send this configuration request right away.  It was possible for the
> connection to time out while L2CAP waited for the remote device (like
> PTS) to trigger the configuration process.
>
> This change immediately sends a configuration request after a connect
> response rather than waiting for a configuration request from the
> remote device.  It fixes connection stalls in a variety of PTS test
> cases.
>
> Signed-off-by: Mat Martineau <mathewm@codeaurora.org>
> ---
> net/bluetooth/l2cap_core.c |   11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
> index b644f40..f6c3b0c 100644
> --- a/net/bluetooth/l2cap_core.c
> +++ b/net/bluetooth/l2cap_core.c
> @@ -5519,6 +5519,17 @@ int l2cap_security_cfm(struct hci_conn *hcon, u8 status, u8 encrypt)
> 			rsp.status = cpu_to_le16(stat);
> 			l2cap_send_cmd(conn, chan->ident, L2CAP_CONN_RSP,
> 							sizeof(rsp), &rsp);
> +
> +			if (!test_bit(L2CAP_CONF_REQ_SENT, &chan->conf_state) &&

Sorry, L2CAP_CONF_REQ_SENT has been renamed.  I'll sent a v2 patch 
shortly.

> +			    result == L2CAP_CR_SUCCESS) {
> +				char buf[128];
> +				set_bit(L2CAP_CONF_REQ_SENT, &chan->conf_state);
> +				l2cap_send_cmd(conn, l2cap_get_ident(conn),
> +					       L2CAP_CONF_REQ,
> +					       l2cap_build_conf_req(chan, buf),
> +					       buf);
> +				chan->num_conf_req++;
> +			}
> 		}
>
> 		l2cap_chan_unlock(chan);
> -- 
> 1.7.10



--
Mat Martineau
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum

      reply	other threads:[~2012-05-22 20:50 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-22 20:48 [PATCH] Bluetooth: Send a configuration request after security confirmation Mat Martineau
2012-05-22 20:50 ` Mat Martineau [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=alpine.DEB.2.02.1205221348570.2239@mathewm-linux \
    --to=mathewm@codeaurora.org \
    --cc=gustavo@padovan.org \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=marcel@holtmann.org \
    --cc=pkrystad@codeaurora.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox