summaryrefslogtreecommitdiff
path: root/include/net
diff options
context:
space:
mode:
authorMarcel Holtmann <linux-bt.adm@hostme.bitkeeper.com>2003-04-07 00:56:43 -0700
committerMarcel Holtmann <linux-bt.adm@hostme.bitkeeper.com>2003-04-07 00:56:43 -0700
commit83363e8a79c629d452604ccc33c13b54d12ea570 (patch)
treed52fb18be50160d90480ddb1f48a243cc34c5252 /include/net
parentc5df32b40bf36cec2bcbcc8a8666fb304049f63f (diff)
parent6ebecd19c9f2f833724044263c26dc08385bceb4 (diff)
Merge bk://linux.bkbits.net/linux-2.5
into hostme.bitkeeper.com:/ua/repos/l/linux-bt/bt-2.5
Diffstat (limited to 'include/net')
-rw-r--r--include/net/bluetooth/hci_core.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
index 044df634d3bd..5bf98447775c 100644
--- a/include/net/bluetooth/hci_core.h
+++ b/include/net/bluetooth/hci_core.h
@@ -262,7 +262,7 @@ struct hci_conn *hci_connect(struct hci_dev *hdev, int type, bdaddr_t *src);
int hci_conn_auth(struct hci_conn *conn);
int hci_conn_encrypt(struct hci_conn *conn);
-static inline void hci_conn_set_timer(struct hci_conn *conn, long timeout)
+static inline void hci_conn_set_timer(struct hci_conn *conn, unsigned long timeout)
{
mod_timer(&conn->timer, jiffies + timeout);
}
@@ -280,8 +280,12 @@ static inline void hci_conn_hold(struct hci_conn *conn)
static inline void hci_conn_put(struct hci_conn *conn)
{
- if (atomic_dec_and_test(&conn->refcnt) && conn->out)
- hci_conn_set_timer(conn, HCI_DISCONN_TIMEOUT);
+ if (atomic_dec_and_test(&conn->refcnt)) {
+ if (conn->type == SCO_LINK)
+ hci_conn_set_timer(conn, HZ / 100);
+ else if (conn->out)
+ hci_conn_set_timer(conn, HCI_DISCONN_TIMEOUT);
+ }
}
/* ----- HCI tasks ----- */