Bluetooth: Don't disable tasklets to call hdev->notify()
authorGustavo F. Padovan <padovan@profusion.mobi>
Thu, 15 Dec 2011 00:58:44 +0000 (22:58 -0200)
committerGustavo F. Padovan <padovan@profusion.mobi>
Sun, 18 Dec 2011 19:07:57 +0000 (17:07 -0200)
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>
net/bluetooth/hci_conn.c
net/bluetooth/hci_event.c

index 5e9e193..385cccb 100644 (file)
@@ -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);
 
@@ -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);
 
index 0a9501f..93ecb2d 100644 (file)
@@ -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)
@@ -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)