Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[linux-2.6-block.git] / net / bluetooth / hci_sock.c
index 6ad23951c13359ed01c31b59669115909a155102..9bd7d959e384c74504a06ed27e0eef0d61dbf70e 100644 (file)
@@ -854,6 +854,11 @@ static int hci_sock_sendmsg(struct kiocb *iocb, struct socket *sock,
                        skb_queue_tail(&hdev->raw_q, skb);
                        queue_work(hdev->workqueue, &hdev->tx_work);
                } else {
+                       /* Stand-alone HCI commands must be flaged as
+                        * single-command requests.
+                        */
+                       bt_cb(skb)->req.start = true;
+
                        skb_queue_tail(&hdev->cmd_q, skb);
                        queue_work(hdev->workqueue, &hdev->cmd_work);
                }
@@ -1121,8 +1126,6 @@ error:
 void hci_sock_cleanup(void)
 {
        bt_procfs_cleanup(&init_net, "hci");
-       if (bt_sock_unregister(BTPROTO_HCI) < 0)
-               BT_ERR("HCI socket unregistration failed");
-
+       bt_sock_unregister(BTPROTO_HCI);
        proto_unregister(&hci_sk_proto);
 }