Lines Matching refs:skb

80 static int vhci_send_frame(struct hci_dev *hdev, struct sk_buff *skb)  in vhci_send_frame()  argument
84 memcpy(skb_push(skb, 1), &bt_cb(skb)->pkt_type, 1); in vhci_send_frame()
85 skb_queue_tail(&data->readq, skb); in vhci_send_frame()
94 struct sk_buff *skb; in __vhci_create_device() local
110 skb = bt_skb_alloc(4, GFP_KERNEL); in __vhci_create_device()
111 if (!skb) in __vhci_create_device()
116 kfree_skb(skb); in __vhci_create_device()
143 kfree_skb(skb); in __vhci_create_device()
147 bt_cb(skb)->pkt_type = HCI_VENDOR_PKT; in __vhci_create_device()
149 *skb_put(skb, 1) = 0xff; in __vhci_create_device()
150 *skb_put(skb, 1) = opcode; in __vhci_create_device()
151 put_unaligned_le16(hdev->id, skb_put(skb, 2)); in __vhci_create_device()
152 skb_queue_tail(&data->readq, skb); in __vhci_create_device()
173 struct sk_buff *skb; in vhci_get_user() local
180 skb = bt_skb_alloc(len, GFP_KERNEL); in vhci_get_user()
181 if (!skb) in vhci_get_user()
184 if (copy_from_iter(skb_put(skb, len), len, from) != len) { in vhci_get_user()
185 kfree_skb(skb); in vhci_get_user()
189 pkt_type = *((__u8 *) skb->data); in vhci_get_user()
190 skb_pull(skb, 1); in vhci_get_user()
197 kfree_skb(skb); in vhci_get_user()
201 bt_cb(skb)->pkt_type = pkt_type; in vhci_get_user()
203 ret = hci_recv_frame(data->hdev, skb); in vhci_get_user()
209 opcode = *((__u8 *) skb->data); in vhci_get_user()
210 skb_pull(skb, 1); in vhci_get_user()
212 if (skb->len > 0) { in vhci_get_user()
213 kfree_skb(skb); in vhci_get_user()
217 kfree_skb(skb); in vhci_get_user()
223 kfree_skb(skb); in vhci_get_user()
231 struct sk_buff *skb, in vhci_put_user() argument
237 len = min_t(unsigned int, skb->len, count); in vhci_put_user()
239 if (copy_to_user(ptr, skb->data, len)) in vhci_put_user()
247 switch (bt_cb(skb)->pkt_type) { in vhci_put_user()
266 struct sk_buff *skb; in vhci_read() local
270 skb = skb_dequeue(&data->readq); in vhci_read()
271 if (skb) { in vhci_read()
272 ret = vhci_put_user(data, skb, buf, count); in vhci_read()
274 skb_queue_head(&data->readq, skb); in vhci_read()
276 kfree_skb(skb); in vhci_read()