Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 172162
b: refs/heads/master
c: c78ae28
h: refs/heads/master
v: v3
  • Loading branch information
Marcel Holtmann committed Dec 3, 2009
1 parent b973711 commit d1a91a1
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 29 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 76bca88012e1d27de794f32cc551d6314d38b6d9
refs/heads/master: c78ae283145d3a8799b2fb01650166a66af3bff8
16 changes: 0 additions & 16 deletions trunk/include/net/bluetooth/hci_core.h
Original file line number Diff line number Diff line change
Expand Up @@ -367,22 +367,6 @@ static inline void hci_conn_put(struct hci_conn *conn)
}
}

/* ----- HCI tasks ----- */
static inline void hci_sched_cmd(struct hci_dev *hdev)
{
tasklet_schedule(&hdev->cmd_task);
}

static inline void hci_sched_rx(struct hci_dev *hdev)
{
tasklet_schedule(&hdev->rx_task);
}

static inline void hci_sched_tx(struct hci_dev *hdev)
{
tasklet_schedule(&hdev->tx_task);
}

/* ----- HCI Devices ----- */
static inline void __hci_dev_put(struct hci_dev *d)
{
Expand Down
18 changes: 12 additions & 6 deletions trunk/net/bluetooth/hci_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -193,8 +193,9 @@ static void hci_init_req(struct hci_dev *hdev, unsigned long opt)
while ((skb = skb_dequeue(&hdev->driver_init))) {
bt_cb(skb)->pkt_type = HCI_COMMAND_PKT;
skb->dev = (void *) hdev;

skb_queue_tail(&hdev->cmd_q, skb);
hci_sched_cmd(hdev);
tasklet_schedule(&hdev->cmd_task);
}
skb_queue_purge(&hdev->driver_init);

Expand Down Expand Up @@ -1005,7 +1006,8 @@ int hci_recv_frame(struct sk_buff *skb)

/* Queue frame for rx task */
skb_queue_tail(&hdev->rx_q, skb);
hci_sched_rx(hdev);
tasklet_schedule(&hdev->rx_task);

return 0;
}
EXPORT_SYMBOL(hci_recv_frame);
Expand Down Expand Up @@ -1216,8 +1218,9 @@ int hci_send_cmd(struct hci_dev *hdev, __u16 opcode, __u32 plen, void *param)

bt_cb(skb)->pkt_type = HCI_COMMAND_PKT;
skb->dev = (void *) hdev;

skb_queue_tail(&hdev->cmd_q, skb);
hci_sched_cmd(hdev);
tasklet_schedule(&hdev->cmd_task);

return 0;
}
Expand Down Expand Up @@ -1294,7 +1297,8 @@ int hci_send_acl(struct hci_conn *conn, struct sk_buff *skb, __u16 flags)
spin_unlock_bh(&conn->data_q.lock);
}

hci_sched_tx(hdev);
tasklet_schedule(&hdev->tx_task);

return 0;
}
EXPORT_SYMBOL(hci_send_acl);
Expand All @@ -1321,8 +1325,10 @@ int hci_send_sco(struct hci_conn *conn, struct sk_buff *skb)

skb->dev = (void *) hdev;
bt_cb(skb)->pkt_type = HCI_SCODATA_PKT;

skb_queue_tail(&conn->data_q, skb);
hci_sched_tx(hdev);
tasklet_schedule(&hdev->tx_task);

return 0;
}
EXPORT_SYMBOL(hci_send_sco);
Expand Down Expand Up @@ -1635,7 +1641,7 @@ static void hci_cmd_task(unsigned long arg)
hdev->cmd_last_tx = jiffies;
} else {
skb_queue_head(&hdev->cmd_q, skb);
hci_sched_cmd(hdev);
tasklet_schedule(&hdev->cmd_task);
}
}
}
6 changes: 3 additions & 3 deletions trunk/net/bluetooth/hci_event.c
Original file line number Diff line number Diff line change
Expand Up @@ -1320,7 +1320,7 @@ static inline void hci_cmd_complete_evt(struct hci_dev *hdev, struct sk_buff *sk
if (ev->ncmd) {
atomic_set(&hdev->cmd_cnt, 1);
if (!skb_queue_empty(&hdev->cmd_q))
hci_sched_cmd(hdev);
tasklet_schedule(&hdev->cmd_task);
}
}

Expand Down Expand Up @@ -1386,7 +1386,7 @@ static inline void hci_cmd_status_evt(struct hci_dev *hdev, struct sk_buff *skb)
if (ev->ncmd) {
atomic_set(&hdev->cmd_cnt, 1);
if (!skb_queue_empty(&hdev->cmd_q))
hci_sched_cmd(hdev);
tasklet_schedule(&hdev->cmd_task);
}
}

Expand Down Expand Up @@ -1454,7 +1454,7 @@ static inline void hci_num_comp_pkts_evt(struct hci_dev *hdev, struct sk_buff *s
}
}

hci_sched_tx(hdev);
tasklet_schedule(&hdev->tx_task);

tasklet_enable(&hdev->tx_task);
}
Expand Down
6 changes: 3 additions & 3 deletions trunk/net/bluetooth/hci_sock.c
Original file line number Diff line number Diff line change
Expand Up @@ -445,10 +445,10 @@ static int hci_sock_sendmsg(struct kiocb *iocb, struct socket *sock,

if (test_bit(HCI_RAW, &hdev->flags) || (ogf == 0x3f)) {
skb_queue_tail(&hdev->raw_q, skb);
hci_sched_tx(hdev);
tasklet_schedule(&hdev->tx_task);
} else {
skb_queue_tail(&hdev->cmd_q, skb);
hci_sched_cmd(hdev);
tasklet_schedule(&hdev->cmd_task);
}
} else {
if (!capable(CAP_NET_RAW)) {
Expand All @@ -457,7 +457,7 @@ static int hci_sock_sendmsg(struct kiocb *iocb, struct socket *sock,
}

skb_queue_tail(&hdev->raw_q, skb);
hci_sched_tx(hdev);
tasklet_schedule(&hdev->tx_task);
}

err = len;
Expand Down

0 comments on commit d1a91a1

Please sign in to comment.