[PATCH] l2cap info_timer delete fix in hci_conn_del

From: Dave Young
Date: Sun Mar 02 2008 - 21:43:01 EST


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 <hidave.darkstar@xxxxxxxxx>

---
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);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/