fou: Do WARN_ON_ONCE in gue_gro_receive for bad proto callbacks
authorTom Herbert <tom@herbertland.com>
Thu, 20 Aug 2015 00:07:34 +0000 (17:07 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sun, 23 Aug 2015 22:59:56 +0000 (15:59 -0700)
Do WARN_ON_ONCE instead of WARN_ON in gue_gro_receive when the offload
callcaks are bad (either don't exist or gro_receive is not specified).

Signed-off-by: Tom Herbert <tom@herbertland.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/fou.c

index eb11f95..2d1646c 100644 (file)
@@ -347,7 +347,7 @@ static struct sk_buff **gue_gro_receive(struct sk_buff **head,
        rcu_read_lock();
        offloads = NAPI_GRO_CB(skb)->is_ipv6 ? inet6_offloads : inet_offloads;
        ops = rcu_dereference(offloads[guehdr->proto_ctype]);
-       if (WARN_ON(!ops || !ops->callbacks.gro_receive))
+       if (WARN_ON_ONCE(!ops || !ops->callbacks.gro_receive))
                goto out_unlock;
 
        pp = ops->callbacks.gro_receive(head, skb);