linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1] Bluetooth: Fix sending HCI_Disconnect only after connection
@ 2012-06-13  0:02 Vishal Agarwal
  2012-06-13  5:19 ` Johan Hedberg
  2012-06-14 15:27 ` Gustavo Padovan
  0 siblings, 2 replies; 3+ messages in thread
From: Vishal Agarwal @ 2012-06-13  0:02 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: vishal.agarwal

HCI_Disconnect should only be sent after connection is established.
If connection is not yet established and HCI_Disconnect is called
then disconnection complete will be received with a handle which
does not exist and hence this event will be ignored.
But as mgmt.c will not receive this event, its variable for pending
command is not cleared.This will result in future Disconnect commands
for that BD Address to be blocked with error busy.

Signed-off-by: Vishal Agarwal <vishal.agarwal@stericsson.com>
---
 net/bluetooth/mgmt.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
index 958f764..3a857bf 100644
--- a/net/bluetooth/mgmt.c
+++ b/net/bluetooth/mgmt.c
@@ -1598,7 +1598,7 @@ static int disconnect(struct sock *sk, struct hci_dev *hdev, void *data,
 	else
 		conn = hci_conn_hash_lookup_ba(hdev, LE_LINK, &cp->addr.bdaddr);
 
-	if (!conn) {
+	if (!conn || conn->state == BT_OPEN || conn->state == BT_CLOSED) {
 		err = cmd_status(sk, hdev->id, MGMT_OP_DISCONNECT,
 				 MGMT_STATUS_NOT_CONNECTED);
 		goto failed;
-- 
1.7.0.4


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v1] Bluetooth: Fix sending HCI_Disconnect only after connection
  2012-06-13  0:02 [PATCH v1] Bluetooth: Fix sending HCI_Disconnect only after connection Vishal Agarwal
@ 2012-06-13  5:19 ` Johan Hedberg
  2012-06-14 15:27 ` Gustavo Padovan
  1 sibling, 0 replies; 3+ messages in thread
From: Johan Hedberg @ 2012-06-13  5:19 UTC (permalink / raw)
  To: Vishal Agarwal; +Cc: linux-bluetooth

On Wed, Jun 13, 2012, Vishal Agarwal wrote:
> HCI_Disconnect should only be sent after connection is established.
> If connection is not yet established and HCI_Disconnect is called
> then disconnection complete will be received with a handle which
> does not exist and hence this event will be ignored.
> But as mgmt.c will not receive this event, its variable for pending
> command is not cleared.This will result in future Disconnect commands
> for that BD Address to be blocked with error busy.
> 
> Signed-off-by: Vishal Agarwal <vishal.agarwal@stericsson.com>
> ---
>  net/bluetooth/mgmt.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)

Acked-by: Johan Hedberg <johan.hedberg@intel.com>

Btw, the summary line might be a bit more understandable if you change
"only after connection" to "only when connected".

Johan

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v1] Bluetooth: Fix sending HCI_Disconnect only after connection
  2012-06-13  0:02 [PATCH v1] Bluetooth: Fix sending HCI_Disconnect only after connection Vishal Agarwal
  2012-06-13  5:19 ` Johan Hedberg
@ 2012-06-14 15:27 ` Gustavo Padovan
  1 sibling, 0 replies; 3+ messages in thread
From: Gustavo Padovan @ 2012-06-14 15:27 UTC (permalink / raw)
  To: Vishal Agarwal; +Cc: linux-bluetooth

Hi Vishal,

* Vishal Agarwal <vishal.agarwal@stericsson.com> [2012-06-13 05:32:43 +0530]:

> HCI_Disconnect should only be sent after connection is established.
> If connection is not yet established and HCI_Disconnect is called
> then disconnection complete will be received with a handle which
> does not exist and hence this event will be ignored.
> But as mgmt.c will not receive this event, its variable for pending
> command is not cleared.This will result in future Disconnect commands
> for that BD Address to be blocked with error busy.
> 
> Signed-off-by: Vishal Agarwal <vishal.agarwal@stericsson.com>
> ---
>  net/bluetooth/mgmt.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)

Patch has been applied to the bluetooth.git tree (with the fix proposed by
Johan), thanks.

	Gustavo

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-06-14 15:27 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-06-13  0:02 [PATCH v1] Bluetooth: Fix sending HCI_Disconnect only after connection Vishal Agarwal
2012-06-13  5:19 ` Johan Hedberg
2012-06-14 15:27 ` Gustavo Padovan

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).