Merge tag 'gpio-v4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux...
[cascardo/linux.git] / drivers / bluetooth / hci_h4.c
index 57faddc..eec3f28 100644 (file)
@@ -223,8 +223,7 @@ struct sk_buff *h4_recv_buf(struct hci_dev *hdev, struct sk_buff *skb,
                        switch ((&pkts[i])->lsize) {
                        case 0:
                                /* No variable data length */
-                               (&pkts[i])->recv(hdev, skb);
-                               skb = NULL;
+                               dlen = 0;
                                break;
                        case 1:
                                /* Single octet variable length */
@@ -252,6 +251,12 @@ struct sk_buff *h4_recv_buf(struct hci_dev *hdev, struct sk_buff *skb,
                                kfree_skb(skb);
                                return ERR_PTR(-EILSEQ);
                        }
+
+                       if (!dlen) {
+                               /* No more data, complete frame */
+                               (&pkts[i])->recv(hdev, skb);
+                               skb = NULL;
+                       }
                } else {
                        /* Complete frame */
                        (&pkts[i])->recv(hdev, skb);