|
@@ -115,10 +115,10 @@ static int gprs_recv(struct gprs_dev *gp, struct sk_buff *skb)
|
|
rskb->truesize += rskb->len;
|
|
rskb->truesize += rskb->len;
|
|
|
|
|
|
/* Avoid nested fragments */
|
|
/* Avoid nested fragments */
|
|
- for (fs = skb_shinfo(skb)->frag_list; fs; fs = fs->next)
|
|
|
|
|
|
+ skb_walk_frags(skb, fs)
|
|
flen += fs->len;
|
|
flen += fs->len;
|
|
skb->next = skb_shinfo(skb)->frag_list;
|
|
skb->next = skb_shinfo(skb)->frag_list;
|
|
- skb_shinfo(skb)->frag_list = NULL;
|
|
|
|
|
|
+ skb_frag_list_init(skb);
|
|
skb->len -= flen;
|
|
skb->len -= flen;
|
|
skb->data_len -= flen;
|
|
skb->data_len -= flen;
|
|
skb->truesize -= flen;
|
|
skb->truesize -= flen;
|