Lines Matching defs:skb

892  * @skb:	Associated socket buffer.
897 struct sk_buff *skb;
4067 dev_kfree_skb(dma_buf->skb);
4068 dma_buf->skb = NULL;
4090 if (dma_buf->skb && dma_buf->len != adapter->mtu)
4093 if (!dma_buf->skb)
4094 dma_buf->skb = alloc_skb(dma_buf->len, GFP_ATOMIC);
4095 if (dma_buf->skb && !dma_buf->dma)
4097 skb_tail_pointer(dma_buf->skb),
4209 if (dma_buf->skb)
4251 * @skb: Socket buffer.
4256 static void send_packet(struct sk_buff *skb, struct net_device *dev)
4266 int last_frag = skb_shinfo(skb)->nr_frags;
4276 len = skb->len;
4287 dma_buf->len = skb_headlen(skb);
4289 dma_buf->dma = dma_map_single(&hw_priv->pdev->dev, skb->data,
4296 this_frag = &skb_shinfo(skb)->frags[frag];
4330 dma_buf->dma = dma_map_single(&hw_priv->pdev->dev, skb->data,
4336 if (skb->ip_summed == CHECKSUM_PARTIAL) {
4345 dma_buf->skb = skb;
4390 if (dma_buf->skb) {
4391 dev = dma_buf->skb->dev;
4394 dev_kfree_skb_irq(dma_buf->skb);
4395 dma_buf->skb = NULL;
4433 static inline void copy_old_skb(struct sk_buff *old, struct sk_buff *skb)
4435 skb->dev = old->dev;
4436 skb->protocol = old->protocol;
4437 skb->ip_summed = old->ip_summed;
4438 skb->csum = old->csum;
4439 skb_set_network_header(skb, ETH_HLEN);
4446 * @skb: Socket buffer.
4453 static netdev_tx_t netdev_tx(struct sk_buff *skb, struct net_device *dev)
4463 struct sk_buff *org_skb = skb;
4465 if (skb->len <= 48) {
4466 if (skb_end_pointer(skb) - skb->data >= 50) {
4467 memset(&skb->data[skb->len], 0, 50 - skb->len);
4468 skb->len = 50;
4470 skb = netdev_alloc_skb(dev, 50);
4471 if (!skb)
4473 memcpy(skb->data, org_skb->data, org_skb->len);
4474 memset(&skb->data[org_skb->len], 0,
4476 skb->len = 50;
4477 copy_old_skb(org_skb, skb);
4484 num = skb_shinfo(skb)->nr_frags + 1;
4485 left = hw_alloc_pkt(hw, skb->len, num);
4488 (CHECKSUM_PARTIAL == skb->ip_summed &&
4489 skb->protocol == htons(ETH_P_IPV6))) {
4490 struct sk_buff *org_skb = skb;
4492 skb = netdev_alloc_skb(dev, org_skb->len);
4493 if (!skb) {
4497 skb_copy_and_csum_dev(org_skb, skb->data);
4499 skb->len = org_skb->len;
4500 copy_old_skb(org_skb, skb);
4502 send_packet(skb, dev);
4588 static inline void csum_verified(struct sk_buff *skb)
4593 protocol = skb->protocol;
4594 skb_reset_network_header(skb);
4595 iph = (struct iphdr *) skb_network_header(skb);
4598 skb_set_network_header(skb, VLAN_HLEN);
4599 iph = (struct iphdr *) skb_network_header(skb);
4603 skb->ip_summed = CHECKSUM_UNNECESSARY;
4614 struct sk_buff *skb;
4624 /* skb->data != skb->head */
4625 skb = netdev_alloc_skb(dev, packet_len + 2);
4626 if (!skb) {
4635 skb_reserve(skb, 2);
4637 skb_put_data(skb, dma_buf->skb->data, packet_len);
4640 skb->protocol = eth_type_trans(skb, dev);
4643 csum_verified(skb);
4650 netif_rx(skb);