Lines Matching refs:skb

85 static int vhci_send_frame(struct hci_dev *hdev, struct sk_buff *skb)  in vhci_send_frame()  argument
92 memcpy(skb_push(skb, 1), &bt_cb(skb)->pkt_type, 1); in vhci_send_frame()
93 skb_queue_tail(&data->readq, skb); in vhci_send_frame()
102 struct sk_buff *skb; in __vhci_create_device() local
118 skb = bt_skb_alloc(4, GFP_KERNEL); in __vhci_create_device()
119 if (!skb) in __vhci_create_device()
124 kfree_skb(skb); in __vhci_create_device()
151 kfree_skb(skb); in __vhci_create_device()
155 bt_cb(skb)->pkt_type = HCI_VENDOR_PKT; in __vhci_create_device()
157 *skb_put(skb, 1) = 0xff; in __vhci_create_device()
158 *skb_put(skb, 1) = opcode; in __vhci_create_device()
159 put_unaligned_le16(hdev->id, skb_put(skb, 2)); in __vhci_create_device()
160 skb_queue_tail(&data->readq, skb); in __vhci_create_device()
181 struct sk_buff *skb; in vhci_get_user() local
188 skb = bt_skb_alloc(len, GFP_KERNEL); in vhci_get_user()
189 if (!skb) in vhci_get_user()
192 if (copy_from_iter(skb_put(skb, len), len, from) != len) { in vhci_get_user()
193 kfree_skb(skb); in vhci_get_user()
197 pkt_type = *((__u8 *) skb->data); in vhci_get_user()
198 skb_pull(skb, 1); in vhci_get_user()
205 kfree_skb(skb); in vhci_get_user()
209 bt_cb(skb)->pkt_type = pkt_type; in vhci_get_user()
211 ret = hci_recv_frame(data->hdev, skb); in vhci_get_user()
217 opcode = *((__u8 *) skb->data); in vhci_get_user()
218 skb_pull(skb, 1); in vhci_get_user()
220 if (skb->len > 0) { in vhci_get_user()
221 kfree_skb(skb); in vhci_get_user()
225 kfree_skb(skb); in vhci_get_user()
231 kfree_skb(skb); in vhci_get_user()
239 struct sk_buff *skb, in vhci_put_user() argument
245 len = min_t(unsigned int, skb->len, count); in vhci_put_user()
247 if (copy_to_user(ptr, skb->data, len)) in vhci_put_user()
255 switch (bt_cb(skb)->pkt_type) { in vhci_put_user()
274 struct sk_buff *skb; in vhci_read() local
278 skb = skb_dequeue(&data->readq); in vhci_read()
279 if (skb) { in vhci_read()
280 ret = vhci_put_user(data, skb, buf, count); in vhci_read()
282 skb_queue_head(&data->readq, skb); in vhci_read()
284 kfree_skb(skb); in vhci_read()