Lines Matching refs:skb
90 static int lapbeth_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *ptype, stru… in lapbeth_rcv() argument
98 if ((skb = skb_share_check(skb, GFP_ATOMIC)) == NULL) in lapbeth_rcv()
101 if (!pskb_may_pull(skb, 2)) in lapbeth_rcv()
111 len = skb->data[0] + skb->data[1] * 256; in lapbeth_rcv()
115 skb_pull(skb, 2); /* Remove the length bytes */ in lapbeth_rcv()
116 skb_trim(skb, len); /* Set the length of the data */ in lapbeth_rcv()
118 if ((err = lapb_data_received(lapbeth->axdev, skb)) != LAPB_OK) { in lapbeth_rcv()
126 kfree_skb(skb); in lapbeth_rcv()
129 kfree_skb(skb); in lapbeth_rcv()
133 static int lapbeth_data_indication(struct net_device *dev, struct sk_buff *skb) in lapbeth_data_indication() argument
137 skb_push(skb, 1); in lapbeth_data_indication()
139 if (skb_cow(skb, 1)) in lapbeth_data_indication()
142 ptr = skb->data; in lapbeth_data_indication()
145 skb->protocol = x25_type_trans(skb, dev); in lapbeth_data_indication()
146 return netif_rx(skb); in lapbeth_data_indication()
152 static netdev_tx_t lapbeth_xmit(struct sk_buff *skb, in lapbeth_xmit() argument
164 switch (skb->data[0]) { in lapbeth_xmit()
179 skb_pull(skb, 1); in lapbeth_xmit()
181 if ((err = lapb_data_request(dev, skb)) != LAPB_OK) { in lapbeth_xmit()
188 kfree_skb(skb); in lapbeth_xmit()
192 static void lapbeth_data_transmit(struct net_device *ndev, struct sk_buff *skb) in lapbeth_data_transmit() argument
197 int size = skb->len; in lapbeth_data_transmit()
199 skb->protocol = htons(ETH_P_X25); in lapbeth_data_transmit()
201 ptr = skb_push(skb, 2); in lapbeth_data_transmit()
209 skb->dev = dev = lapbeth->ethdev; in lapbeth_data_transmit()
211 dev_hard_header(skb, dev, ETH_P_DEC, bcast_addr, NULL, 0); in lapbeth_data_transmit()
213 dev_queue_xmit(skb); in lapbeth_data_transmit()
219 struct sk_buff *skb = dev_alloc_skb(1); in lapbeth_connected() local
221 if (!skb) { in lapbeth_connected()
226 ptr = skb_put(skb, 1); in lapbeth_connected()
229 skb->protocol = x25_type_trans(skb, dev); in lapbeth_connected()
230 netif_rx(skb); in lapbeth_connected()
236 struct sk_buff *skb = dev_alloc_skb(1); in lapbeth_disconnected() local
238 if (!skb) { in lapbeth_disconnected()
243 ptr = skb_put(skb, 1); in lapbeth_disconnected()
246 skb->protocol = x25_type_trans(skb, dev); in lapbeth_disconnected()
247 netif_rx(skb); in lapbeth_disconnected()