/* Complete destruction of fq. */ static void ip6_frag_destroy(struct frag_queue *fq) { struct sk_buff *fp; BUG_TRAP(fq->last_in&COMPLETE); BUG_TRAP(del_timer(&fq->timer) == 0); /* Release all fragment data. */ fp = fq->fragments; while (fp) { struct sk_buff *xp = fp->next; frag_kfree_skb(fp); fp = xp; } frag_free_queue(fq); }
/* Complete destruction of fq. */ static void nf_ct_frag6_destroy(struct nf_ct_frag6_queue *fq, unsigned int *work) { struct sk_buff *fp; BUG_TRAP(fq->last_in&COMPLETE); BUG_TRAP(del_timer(&fq->timer) == 0); /* Release all fragment data. */ fp = fq->fragments; while (fp) { struct sk_buff *xp = fp->next; frag_kfree_skb(fp, work); fp = xp; } frag_free_queue(fq, work); }