Skip to content

Commit

Permalink
Bluetooth: Don't disable tasklets to call hdev->notify()
Browse files Browse the repository at this point in the history
It's pointless, we aren't protecting anything since btusb_notify()
schedules a work to run, then all it operation happens without protection.
If protection is really needed here, we will fix it further.

Acked-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
  • Loading branch information
Gustavo F. Padovan committed Dec 18, 2011
1 parent bf4c632 commit 3c54711
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 16 deletions.
10 changes: 2 additions & 8 deletions net/bluetooth/hci_conn.c
Original file line number Diff line number Diff line change
Expand Up @@ -419,11 +419,8 @@ struct hci_conn *hci_conn_add(struct hci_dev *hdev, int type, bdaddr_t *dst)
hci_dev_hold(hdev);

hci_conn_hash_add(hdev, conn);
if (hdev->notify) {
tasklet_disable(&hdev->tx_task);
if (hdev->notify)
hdev->notify(hdev, HCI_NOTIFY_CONN_ADD);
tasklet_enable(&hdev->tx_task);
}

atomic_set(&conn->devref, 0);

Expand Down Expand Up @@ -468,11 +465,8 @@ int hci_conn_del(struct hci_conn *conn)
hci_chan_list_flush(conn);

hci_conn_hash_del(hdev, conn);
if (hdev->notify) {
tasklet_disable(&hdev->tx_task);
if (hdev->notify)
hdev->notify(hdev, HCI_NOTIFY_CONN_DEL);
tasklet_enable(&hdev->tx_task);
}

skb_queue_purge(&conn->data_q);

Expand Down
10 changes: 2 additions & 8 deletions net/bluetooth/hci_event.c
Original file line number Diff line number Diff line change
Expand Up @@ -378,11 +378,8 @@ static void hci_cc_read_voice_setting(struct hci_dev *hdev, struct sk_buff *skb)

BT_DBG("%s voice setting 0x%04x", hdev->name, setting);

if (hdev->notify) {
tasklet_disable(&hdev->tx_task);
if (hdev->notify)
hdev->notify(hdev, HCI_NOTIFY_VOICE_SETTING);
tasklet_enable(&hdev->tx_task);
}
}

static void hci_cc_write_voice_setting(struct hci_dev *hdev, struct sk_buff *skb)
Expand All @@ -409,11 +406,8 @@ static void hci_cc_write_voice_setting(struct hci_dev *hdev, struct sk_buff *skb

BT_DBG("%s voice setting 0x%04x", hdev->name, setting);

if (hdev->notify) {
tasklet_disable(&hdev->tx_task);
if (hdev->notify)
hdev->notify(hdev, HCI_NOTIFY_VOICE_SETTING);
tasklet_enable(&hdev->tx_task);
}
}

static void hci_cc_host_buffer_size(struct hci_dev *hdev, struct sk_buff *skb)
Expand Down

0 comments on commit 3c54711

Please sign in to comment.