When the l2cap info_timer is active the info_state will be set to
L2CAP_INFO_FEAT_MASK_REQ_SENT, and it will be unset after the timer
is deleted or timeout triggered.
Here in hci_conn_del only call del_timer_sync when the info_state
is set to L2CAP_INFO_FEAT_MASK_REQ_SENT.
Signed-off-by: Dave Young <[email protected]>
---
net/bluetooth/l2cap.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff -upr linux/net/bluetooth/l2cap.c linux.new/net/bluetooth/l2cap.c
--- linux/net/bluetooth/l2cap.c 2008-03-03 10:35:03.000000000 +0800
+++ linux.new/net/bluetooth/l2cap.c 2008-03-03 10:36:34.000000000 +0800
@@ -417,7 +417,8 @@ static void l2cap_conn_del(struct hci_co
l2cap_sock_kill(sk);
}
- del_timer_sync(&conn->info_timer);
+ if (conn->info_state & L2CAP_INFO_FEAT_MASK_REQ_SENT)
+ del_timer_sync(&conn->info_timer);
hcon->l2cap_data = NULL;
kfree(conn);
Hi Dave,
> When the l2cap info_timer is active the info_state will be set to
> L2CAP_INFO_FEAT_MASK_REQ_SENT, and it will be unset after the timer
> is deleted or timeout triggered.
>
> Here in hci_conn_del only call del_timer_sync when the info_state
> is set to L2CAP_INFO_FEAT_MASK_REQ_SENT.
>
> Signed-off-by: Dave Young <[email protected]>
the comment should say l2cap_conn_del, but besides that, the patch is
good.
Acked-by: Marcel Holtmann <[email protected]>
in case someone is quicker than me getting this to Linus.
Regards
Marcel
From: Marcel Holtmann <[email protected]>
Date: Mon, 3 Mar 2008 11:59:04 +0100
> the comment should say l2cap_conn_del, but besides that, the patch is
> good.
I've fixed up the changelog message.
> Acked-by: Marcel Holtmann <[email protected]>
And applied the patch, thanks everyone.