Commit 5a54e7c8 authored by Marcel Holtmann's avatar Marcel Holtmann Committed by Johan Hedberg

Bluetooth: Convert L2CAP ident spinlock into a mutex

The spinlock protecting the L2CAP ident number can be converted into
a mutex since the whole processing is run in a workqueue. So instead
of using a spinlock, just use a mutex here.
Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
Signed-off-by: default avatarJohan Hedberg <johan.hedberg@intel.com>
parent e03ab519
...@@ -625,11 +625,10 @@ struct l2cap_conn { ...@@ -625,11 +625,10 @@ struct l2cap_conn {
struct delayed_work info_timer; struct delayed_work info_timer;
spinlock_t lock;
struct sk_buff *rx_skb; struct sk_buff *rx_skb;
__u32 rx_len; __u32 rx_len;
__u8 tx_ident; __u8 tx_ident;
struct mutex ident_lock;
struct sk_buff_head pending_rx; struct sk_buff_head pending_rx;
struct work_struct pending_rx_work; struct work_struct pending_rx_work;
......
...@@ -798,14 +798,14 @@ static u8 l2cap_get_ident(struct l2cap_conn *conn) ...@@ -798,14 +798,14 @@ static u8 l2cap_get_ident(struct l2cap_conn *conn)
* 200 - 254 are used by utilities like l2ping, etc. * 200 - 254 are used by utilities like l2ping, etc.
*/ */
spin_lock(&conn->lock); mutex_lock(&conn->ident_lock);
if (++conn->tx_ident > 128) if (++conn->tx_ident > 128)
conn->tx_ident = 1; conn->tx_ident = 1;
id = conn->tx_ident; id = conn->tx_ident;
spin_unlock(&conn->lock); mutex_unlock(&conn->ident_lock);
return id; return id;
} }
...@@ -7016,7 +7016,7 @@ static struct l2cap_conn *l2cap_conn_add(struct hci_conn *hcon) ...@@ -7016,7 +7016,7 @@ static struct l2cap_conn *l2cap_conn_add(struct hci_conn *hcon)
conn->hs_enabled = test_bit(HCI_HS_ENABLED, conn->hs_enabled = test_bit(HCI_HS_ENABLED,
&hcon->hdev->dev_flags); &hcon->hdev->dev_flags);
spin_lock_init(&conn->lock); mutex_init(&conn->ident_lock);
mutex_init(&conn->chan_lock); mutex_init(&conn->chan_lock);
INIT_LIST_HEAD(&conn->chan_l); INIT_LIST_HEAD(&conn->chan_l);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment