Lines Matching refs:skb
60 static void eem_linkcmd(struct usbnet *dev, struct sk_buff *skb)
70 skb->data, skb->len, eem_linkcmd_complete, skb);
76 dev_kfree_skb(skb);
104 static struct sk_buff *eem_tx_fixup(struct usbnet *dev, struct sk_buff *skb,
108 u16 len = skb->len;
121 if (!skb_cloned(skb)) {
122 int headroom = skb_headroom(skb);
123 int tailroom = skb_tailroom(skb);
131 skb->data = memmove(skb->head +
133 skb->data,
134 skb->len);
135 skb_set_tail_pointer(skb, len);
140 skb2 = skb_copy_expand(skb, EEM_HEAD, ETH_FCS_LEN + padlen, flags);
144 dev_kfree_skb_any(skb);
145 skb = skb2;
149 crc = crc32_le(~0, skb->data, skb->len);
152 put_unaligned_le32(crc, skb_put(skb, 4));
159 len = skb->len;
160 put_unaligned_le16(BIT(14) | len, skb_push(skb, 2));
164 put_unaligned_le16(0, skb_put(skb, 2));
166 return skb;
169 static int eem_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
172 * Our task here is to strip off framing, leaving skb with one
188 if (skb->len < EEM_HEAD)
196 header = get_unaligned_le16(skb->data);
197 skb_pull(skb, EEM_HEAD);
229 if (skb->len < len)
232 skb2 = skb_clone(skb, GFP_ATOMIC);
283 if (skb->len < len)
293 * headers, so "skb" is a data packet (or error).
294 * Else if it's not the last payload, keep "skb"
297 is_last = (len == skb->len);
299 skb2 = skb;
301 skb2 = skb_clone(skb, GFP_ATOMIC);
335 skb_pull(skb, len);
336 } while (skb->len);