Lines Matching refs:skb

135 static void pppoatm_pop(struct atm_vcc *atmvcc, struct sk_buff *skb)  in pppoatm_pop()  argument
139 pvcc->old_pop(atmvcc, skb); in pppoatm_pop()
182 static void pppoatm_push(struct atm_vcc *atmvcc, struct sk_buff *skb) in pppoatm_push() argument
186 if (skb == NULL) { /* VCC was closed */ in pppoatm_push()
196 atm_return(atmvcc, skb->truesize); in pppoatm_push()
199 if (skb->len < LLC_LEN || in pppoatm_push()
200 memcmp(skb->data, pppllc, LLC_LEN)) in pppoatm_push()
202 skb_pull(skb, LLC_LEN); in pppoatm_push()
206 kfree_skb(skb); in pppoatm_push()
209 if (skb->len >= sizeof(pppllc) && in pppoatm_push()
210 !memcmp(skb->data, pppllc, sizeof(pppllc))) { in pppoatm_push()
212 skb_pull(skb, LLC_LEN); in pppoatm_push()
215 if (skb->len >= (sizeof(pppllc) - LLC_LEN) && in pppoatm_push()
216 !memcmp(skb->data, &pppllc[LLC_LEN], in pppoatm_push()
223 skb->data[0], skb->data[1], skb->data[2], in pppoatm_push()
224 skb->data[3], skb->data[4], skb->data[5]); in pppoatm_push()
229 ppp_input(&pvcc->chan, skb); in pppoatm_push()
233 kfree_skb(skb); in pppoatm_push()
292 static int pppoatm_send(struct ppp_channel *chan, struct sk_buff *skb) in pppoatm_send() argument
298 ATM_SKB(skb)->vcc = pvcc->atmvcc; in pppoatm_send()
299 pr_debug("(skb=0x%p, vcc=0x%p)\n", skb, pvcc->atmvcc); in pppoatm_send()
300 if (skb->data[0] == '\0' && (pvcc->flags & SC_COMP_PROT)) in pppoatm_send()
301 (void) skb_pull(skb, 1); in pppoatm_send()
303 vcc = ATM_SKB(skb)->vcc; in pppoatm_send()
318 kfree_skb(skb); in pppoatm_send()
324 if (skb_headroom(skb) < LLC_LEN) { in pppoatm_send()
326 n = skb_realloc_headroom(skb, LLC_LEN); in pppoatm_send()
332 consume_skb(skb); in pppoatm_send()
333 skb = n; in pppoatm_send()
334 if (skb == NULL) { in pppoatm_send()
338 } else if (!pppoatm_may_send(pvcc, skb->truesize)) in pppoatm_send()
340 memcpy(skb_push(skb, LLC_LEN), pppllc, LLC_LEN); in pppoatm_send()
343 if (!pppoatm_may_send(pvcc, skb->truesize)) in pppoatm_send()
349 kfree_skb(skb); in pppoatm_send()
353 atomic_add(skb->truesize, &sk_atm(ATM_SKB(skb)->vcc)->sk_wmem_alloc); in pppoatm_send()
354 ATM_SKB(skb)->atm_options = ATM_SKB(skb)->vcc->atm_options; in pppoatm_send()
356 skb, ATM_SKB(skb)->vcc, ATM_SKB(skb)->vcc->dev); in pppoatm_send()
357 ret = ATM_SKB(skb)->vcc->send(ATM_SKB(skb)->vcc, skb) in pppoatm_send()
367 if ((pvcc->flags & SC_COMP_PROT) && skb_headroom(skb) > 0 && in pppoatm_send()
368 skb->data[-1] == '\0') in pppoatm_send()
369 (void) skb_push(skb, 1); in pppoatm_send()