aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorstephen hemminger <shemminger@vyatta.com>2010-05-11 10:24:12 -0400
committerDavid S. Miller <davem@davemloft.net>2010-05-18 02:23:13 -0400
commitb60b6592baa69c43a5a0f55d6300a7feaab15338 (patch)
tree30e7ba9b38a30d78542b242eda794499a590d26c
parent207024b9477e253859abfc30f1ff314cd6008b24 (diff)
net sched: cleanup and rate limit warning
If the user has a bad classification configuration, and gets a packet that goes through too many steps. Chances are more packets will arrive, and the message spew will overrun syslog because it is not rate limited. And because it is not tagged with appropriate priority it can't not be screened. Added the qdisc to the message to try and give some more context when the message does arrive. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Acked-by: Jamal Hadi Salim <hadi@cyberus.ca> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/sched/sch_api.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c
index 9839b26674f4..fe35c1f338c2 100644
--- a/net/sched/sch_api.c
+++ b/net/sched/sch_api.c
@@ -1637,9 +1637,12 @@ reclassify:
1637 tp = otp; 1637 tp = otp;
1638 1638
1639 if (verd++ >= MAX_REC_LOOP) { 1639 if (verd++ >= MAX_REC_LOOP) {
1640 printk("rule prio %u protocol %02x reclassify loop, " 1640 if (net_ratelimit())
1641 "packet dropped\n", 1641 printk(KERN_NOTICE
1642 tp->prio&0xffff, ntohs(tp->protocol)); 1642 "%s: packet reclassify loop"
1643 " rule prio %u protocol %02x\n",
1644 tp->q->ops->id,
1645 tp->prio & 0xffff, ntohs(tp->protocol));
1643 return TC_ACT_SHOT; 1646 return TC_ACT_SHOT;
1644 } 1647 }
1645 skb->tc_verd = SET_TC_VERD(skb->tc_verd, verd); 1648 skb->tc_verd = SET_TC_VERD(skb->tc_verd, verd);