When sending a cache report on mroute_sk, mroute will emit a
"pending queue full" warning for every error value returned by
sock_queue_rcv_skb().
This warning can be misleading, for example on the EPERM error value
that sk_filter() can return.

Restricting this warning to only ENOMEM or ENOBUFS seems more
appropriate.

Signed-off-by: Julien Gomes <jul...@arista.com>
---
 net/ipv4/ipmr.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c
index a1d521be612b..ace12cddb9de 100644
--- a/net/ipv4/ipmr.c
+++ b/net/ipv4/ipmr.c
@@ -1068,7 +1068,8 @@ static int ipmr_cache_report(struct mr_table *mrt,
        ret = sock_queue_rcv_skb(mroute_sk, skb);
        rcu_read_unlock();
        if (ret < 0) {
-               net_warn_ratelimited("mroute: pending queue full, dropping 
entries\n");
+               if (ret == -ENOMEM || ret == -ENOBUFS)
+                       net_warn_ratelimited("mroute: pending queue full, 
dropping entries\n");
                kfree_skb(skb);
        }
 
-- 
2.13.1

Reply via email to