Lines Matching refs:skb

463 static int iso_send_frame(struct sock *sk, struct sk_buff *skb)
470 BT_DBG("sk %p len %d", sk, skb->len);
472 if (skb->len > qos->ucast.out.sdu)
475 len = skb->len;
478 hdr = skb_push(skb, HCI_ISO_DATA_HDR_SIZE);
484 hci_send_iso(conn->hcon, skb);
491 static void iso_recv_frame(struct iso_conn *conn, struct sk_buff *skb)
502 BT_DBG("sk %p len %d", sk, skb->len);
507 if (!sock_queue_rcv_skb(sk, skb))
511 kfree_skb(skb);
1241 struct sk_buff *skb, **frag;
1265 skb = bt_skb_sendmsg(sk, msg, len, mtu, HCI_ISO_DATA_HDR_SIZE, 0);
1266 if (IS_ERR(skb))
1267 return PTR_ERR(skb);
1269 len -= skb->len;
1271 BT_DBG("skb %p len %d", sk, skb->len);
1274 frag = &skb_shinfo(skb)->frag_list;
1280 kfree_skb(skb);
1288 skb->len += tmp->len;
1289 skb->data_len += tmp->len;
1299 err = iso_send_frame(sk, skb);
1306 kfree_skb(skb);
2093 void iso_recv(struct hci_conn *hcon, struct sk_buff *skb, u16 flags)
2104 BT_DBG("conn %p len %d pb 0x%x ts 0x%x", conn, skb->len, pb, ts);
2110 BT_ERR("Unexpected start frame (len %d)", skb->len);
2120 hdr = skb_pull_data(skb, HCI_ISO_TS_DATA_HDR_SIZE);
2122 BT_ERR("Frame is too short (len %d)", skb->len);
2130 hdr = skb_pull_data(skb, HCI_ISO_DATA_HDR_SIZE);
2132 BT_ERR("Frame is too short (len %d)", skb->len);
2143 skb->len, flags);
2145 if (len == skb->len) {
2147 hci_skb_pkt_status(skb) = flags & 0x03;
2148 iso_recv_frame(conn, skb);
2154 skb->len, len);
2158 if (skb->len > len) {
2160 skb->len, len);
2164 /* Allocate skb for the complete frame (with header) */
2170 skb_copy_from_linear_data(skb, skb_put(conn->rx_skb, skb->len),
2171 skb->len);
2172 conn->rx_len = len - skb->len;
2176 BT_DBG("Cont: frag len %d (expecting %d)", skb->len,
2181 skb->len);
2185 if (skb->len > conn->rx_len) {
2187 skb->len, conn->rx_len);
2194 skb_copy_from_linear_data(skb, skb_put(conn->rx_skb, skb->len),
2195 skb->len);
2196 conn->rx_len -= skb->len;
2200 skb_copy_from_linear_data(skb, skb_put(conn->rx_skb, skb->len),
2201 skb->len);
2202 conn->rx_len -= skb->len;
2208 * takes ownership of the skb so set the global
2218 kfree_skb(skb);