diff options
Diffstat (limited to 'drivers/net/vxlan.c')
-rw-r--r-- | drivers/net/vxlan.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c index aee0e60471f1..cc14e0cd5647 100644 --- a/drivers/net/vxlan.c +++ b/drivers/net/vxlan.c | |||
@@ -568,11 +568,12 @@ static struct vxlanhdr *vxlan_gro_remcsum(struct sk_buff *skb, | |||
568 | return vh; | 568 | return vh; |
569 | } | 569 | } |
570 | 570 | ||
571 | static struct sk_buff **vxlan_gro_receive(struct sock *sk, | 571 | static struct sk_buff *vxlan_gro_receive(struct sock *sk, |
572 | struct sk_buff **head, | 572 | struct list_head *head, |
573 | struct sk_buff *skb) | 573 | struct sk_buff *skb) |
574 | { | 574 | { |
575 | struct sk_buff *p, **pp = NULL; | 575 | struct sk_buff *pp = NULL; |
576 | struct sk_buff *p; | ||
576 | struct vxlanhdr *vh, *vh2; | 577 | struct vxlanhdr *vh, *vh2; |
577 | unsigned int hlen, off_vx; | 578 | unsigned int hlen, off_vx; |
578 | int flush = 1; | 579 | int flush = 1; |
@@ -607,7 +608,7 @@ static struct sk_buff **vxlan_gro_receive(struct sock *sk, | |||
607 | 608 | ||
608 | skb_gro_pull(skb, sizeof(struct vxlanhdr)); /* pull vxlan header */ | 609 | skb_gro_pull(skb, sizeof(struct vxlanhdr)); /* pull vxlan header */ |
609 | 610 | ||
610 | for (p = *head; p; p = p->next) { | 611 | list_for_each_entry(p, head, list) { |
611 | if (!NAPI_GRO_CB(p)->same_flow) | 612 | if (!NAPI_GRO_CB(p)->same_flow) |
612 | continue; | 613 | continue; |
613 | 614 | ||