Lines Matching refs:skb
89 static int lapbeth_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *ptype, stru… in lapbeth_rcv() argument
97 if ((skb = skb_share_check(skb, GFP_ATOMIC)) == NULL) in lapbeth_rcv()
100 if (!pskb_may_pull(skb, 2)) in lapbeth_rcv()
110 len = skb->data[0] + skb->data[1] * 256; in lapbeth_rcv()
114 skb_pull(skb, 2); /* Remove the length bytes */ in lapbeth_rcv()
115 skb_trim(skb, len); /* Set the length of the data */ in lapbeth_rcv()
117 if ((err = lapb_data_received(lapbeth->axdev, skb)) != LAPB_OK) { in lapbeth_rcv()
125 kfree_skb(skb); in lapbeth_rcv()
128 kfree_skb(skb); in lapbeth_rcv()
132 static int lapbeth_data_indication(struct net_device *dev, struct sk_buff *skb) in lapbeth_data_indication() argument
136 skb_push(skb, 1); in lapbeth_data_indication()
138 if (skb_cow(skb, 1)) in lapbeth_data_indication()
141 ptr = skb->data; in lapbeth_data_indication()
144 skb->protocol = x25_type_trans(skb, dev); in lapbeth_data_indication()
145 return netif_rx(skb); in lapbeth_data_indication()
151 static netdev_tx_t lapbeth_xmit(struct sk_buff *skb, in lapbeth_xmit() argument
163 switch (skb->data[0]) { in lapbeth_xmit()
178 skb_pull(skb, 1); in lapbeth_xmit()
180 if ((err = lapb_data_request(dev, skb)) != LAPB_OK) { in lapbeth_xmit()
187 kfree_skb(skb); in lapbeth_xmit()
191 static void lapbeth_data_transmit(struct net_device *ndev, struct sk_buff *skb) in lapbeth_data_transmit() argument
196 int size = skb->len; in lapbeth_data_transmit()
198 skb->protocol = htons(ETH_P_X25); in lapbeth_data_transmit()
200 ptr = skb_push(skb, 2); in lapbeth_data_transmit()
208 skb->dev = dev = lapbeth->ethdev; in lapbeth_data_transmit()
210 dev_hard_header(skb, dev, ETH_P_DEC, bcast_addr, NULL, 0); in lapbeth_data_transmit()
212 dev_queue_xmit(skb); in lapbeth_data_transmit()
218 struct sk_buff *skb = dev_alloc_skb(1); in lapbeth_connected() local
220 if (!skb) { in lapbeth_connected()
225 ptr = skb_put(skb, 1); in lapbeth_connected()
228 skb->protocol = x25_type_trans(skb, dev); in lapbeth_connected()
229 netif_rx(skb); in lapbeth_connected()
235 struct sk_buff *skb = dev_alloc_skb(1); in lapbeth_disconnected() local
237 if (!skb) { in lapbeth_disconnected()
242 ptr = skb_put(skb, 1); in lapbeth_disconnected()
245 skb->protocol = x25_type_trans(skb, dev); in lapbeth_disconnected()
246 netif_rx(skb); in lapbeth_disconnected()