|
@@ -530,8 +530,14 @@ static void ip_sublist_rcv_finish(struct list_head *head)
|
|
|
{
|
|
|
struct sk_buff *skb, *next;
|
|
|
|
|
|
- list_for_each_entry_safe(skb, next, head, list)
|
|
|
+ list_for_each_entry_safe(skb, next, head, list) {
|
|
|
+ list_del(&skb->list);
|
|
|
+ /* Handle ip{6}_forward case, as sch_direct_xmit have
|
|
|
+ * another kind of SKB-list usage (see validate_xmit_skb_list)
|
|
|
+ */
|
|
|
+ skb->next = NULL;
|
|
|
dst_input(skb);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
static void ip_list_rcv_finish(struct net *net, struct sock *sk,
|