diff --git a/net/core/dev.c b/net/core/dev.c index b74fcd3e936503f8a6684c1cd46a20b2fd53805f..5d1282df2fe3a7ef37193bc39c1e37bf7afb96f6 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -2646,10 +2646,10 @@ static int ing_filter(struct sk_buff *skb) int result = TC_ACT_OK; struct Qdisc *q; - if (MAX_RED_LOOP < ttl++) { - printk(KERN_WARNING - "Redir loop detected Dropping packet (%d->%d)\n", - skb->skb_iif, dev->ifindex); + if (unlikely(MAX_RED_LOOP < ttl++)) { + if (net_ratelimit()) + pr_warning( "Redir loop detected Dropping packet (%d->%d)\n", + skb->skb_iif, dev->ifindex); return TC_ACT_SHOT; }