Lines Matching refs:skb
40 int can_put_echo_skb(struct sk_buff *skb, struct net_device *dev, in can_put_echo_skb() argument
49 (skb->protocol != htons(ETH_P_CAN) && in can_put_echo_skb()
50 skb->protocol != htons(ETH_P_CANFD))) { in can_put_echo_skb()
51 kfree_skb(skb); in can_put_echo_skb()
56 skb = can_create_echo_skb(skb); in can_put_echo_skb()
57 if (!skb) in can_put_echo_skb()
61 skb->ip_summed = CHECKSUM_UNNECESSARY; in can_put_echo_skb()
62 skb->dev = dev; in can_put_echo_skb()
65 can_skb_prv(skb)->frame_len = frame_len; in can_put_echo_skb()
67 skb_tx_timestamp(skb); in can_put_echo_skb()
70 priv->echo_skb[idx] = skb; in can_put_echo_skb()
74 kfree_skb(skb); in can_put_echo_skb()
98 struct sk_buff *skb = priv->echo_skb[idx]; in __can_get_echo_skb() local
99 struct can_skb_priv *can_skb_priv = can_skb_prv(skb); in __can_get_echo_skb()
100 struct canfd_frame *cf = (struct canfd_frame *)skb->data; in __can_get_echo_skb()
113 if (skb->pkt_type == PACKET_LOOPBACK) { in __can_get_echo_skb()
114 skb->pkt_type = PACKET_BROADCAST; in __can_get_echo_skb()
116 dev_consume_skb_any(skb); in __can_get_echo_skb()
120 return skb; in __can_get_echo_skb()
135 struct sk_buff *skb; in can_get_echo_skb() local
138 skb = __can_get_echo_skb(dev, idx, &len, frame_len_ptr); in can_get_echo_skb()
139 if (!skb) in can_get_echo_skb()
142 skb_get(skb); in can_get_echo_skb()
143 if (netif_rx(skb) == NET_RX_SUCCESS) in can_get_echo_skb()
144 dev_consume_skb_any(skb); in can_get_echo_skb()
146 dev_kfree_skb_any(skb); in can_get_echo_skb()
168 struct sk_buff *skb = priv->echo_skb[idx]; in can_free_echo_skb() local
169 struct can_skb_priv *can_skb_priv = can_skb_prv(skb); in can_free_echo_skb()
174 dev_kfree_skb_any(skb); in can_free_echo_skb()
182 struct sk_buff *skb; in alloc_can_skb() local
184 skb = netdev_alloc_skb(dev, sizeof(struct can_skb_priv) + in alloc_can_skb()
186 if (unlikely(!skb)) { in alloc_can_skb()
192 skb->protocol = htons(ETH_P_CAN); in alloc_can_skb()
193 skb->pkt_type = PACKET_BROADCAST; in alloc_can_skb()
194 skb->ip_summed = CHECKSUM_UNNECESSARY; in alloc_can_skb()
196 skb_reset_mac_header(skb); in alloc_can_skb()
197 skb_reset_network_header(skb); in alloc_can_skb()
198 skb_reset_transport_header(skb); in alloc_can_skb()
200 can_skb_reserve(skb); in alloc_can_skb()
201 can_skb_prv(skb)->ifindex = dev->ifindex; in alloc_can_skb()
202 can_skb_prv(skb)->skbcnt = 0; in alloc_can_skb()
204 *cf = skb_put_zero(skb, sizeof(struct can_frame)); in alloc_can_skb()
206 return skb; in alloc_can_skb()
213 struct sk_buff *skb; in alloc_canfd_skb() local
215 skb = netdev_alloc_skb(dev, sizeof(struct can_skb_priv) + in alloc_canfd_skb()
217 if (unlikely(!skb)) { in alloc_canfd_skb()
223 skb->protocol = htons(ETH_P_CANFD); in alloc_canfd_skb()
224 skb->pkt_type = PACKET_BROADCAST; in alloc_canfd_skb()
225 skb->ip_summed = CHECKSUM_UNNECESSARY; in alloc_canfd_skb()
227 skb_reset_mac_header(skb); in alloc_canfd_skb()
228 skb_reset_network_header(skb); in alloc_canfd_skb()
229 skb_reset_transport_header(skb); in alloc_canfd_skb()
231 can_skb_reserve(skb); in alloc_canfd_skb()
232 can_skb_prv(skb)->ifindex = dev->ifindex; in alloc_canfd_skb()
233 can_skb_prv(skb)->skbcnt = 0; in alloc_canfd_skb()
235 *cfd = skb_put_zero(skb, sizeof(struct canfd_frame)); in alloc_canfd_skb()
237 return skb; in alloc_canfd_skb()
243 struct sk_buff *skb; in alloc_can_err_skb() local
245 skb = alloc_can_skb(dev, cf); in alloc_can_err_skb()
246 if (unlikely(!skb)) in alloc_can_err_skb()
252 return skb; in alloc_can_err_skb()