Hi Marcel, On Sat, Feb 16, 2013, Marcel Holtmann wrote: > > static void hci_init_req(struct hci_dev *hdev, unsigned long opt) > > { > > + struct hci_transaction *transaction; > > struct sk_buff *skb; > > > > BT_DBG("%s %ld", hdev->name, opt); > > > > /* Driver initialization */ > > > > + if (hci_start_transaction(hdev) < 0) > > + return; > > + > > + hci_transaction_lock(hdev); > > + > > + transaction = hdev->build_transaction; > > + > > /* Special commands */ > > 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); > > - queue_work(hdev->workqueue, &hdev->cmd_work); > > + skb_queue_tail(&transaction->cmd_q, skb); > > } > > skb_queue_purge(&hdev->driver_init); > > if we have to touch this one, then please look at my hdev->setup() > patches I send a while back. We should get these merged so that drivers > can use a transaction within the driver and remove the driver_init queue > actually. Alright. I'll look into it. Johan -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html