net: esp: Convert NETDEBUG to pr_info
Subsystems (10)
PATCH 1/1 net: esp: Convert NETDEBUG to pr_info
Commit 64ce207306de ("[NET]: Make NETDEBUG pure printk wrappers") originally had these NETDEBUG printks as always emitting.
Commit a2a316fd068c ("[NET]: Replace CONFIG_NET_DEBUG with sysctl") added a net_msg_warn sysctl to these NETDEBUG uses.
Convert these NETDEBUG uses to normal pr_info calls.
This changes the output prefix from "ESP: " to include "IPSec: " for the ipv4 case and "IPv6: " for the ipv6 case.
These output lines are now like the other messages in the files.
Other miscellanea:
Neaten the arithmetic spacing to be consistent with other arithmetic spacing in the files.
--- net/ipv4/esp4.c | 10 +++++----- net/ipv6/esp6.c | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-)
net/ipv4/esp4.c +5 -5
@@ -603,12 +603,12 @@ static int esp_init_authenc(struct xfrm_state *x)BUG_ON (!aalg_desc); err = -EINVAL ; -if (aalg_desc->uinfo.auth.icv_fullbits/8 != +if (aalg_desc->uinfo.auth.icv_fullbits /8 !=crypto_aead_authsize (aead)) { -NETDEBUG (KERN_INFO "ESP: %s digestsize %u != %hu\n" , - x->aalg->alg_name, -crypto_aead_authsize (aead), - aalg_desc->uinfo.auth.icv_fullbits/8 ); +pr_info ("ESP: %s digestsize %u != %hu\n" , + x->aalg->alg_name, +crypto_aead_authsize (aead), + aalg_desc->uinfo.auth.icv_fullbits /8 ); goto free_key; }
net/ipv6/esp6.c +5 -5
@@ -544,12 +544,12 @@ static int esp_init_authenc(struct xfrm_state *x)BUG_ON (!aalg_desc); err = -EINVAL ; -if (aalg_desc->uinfo.auth.icv_fullbits/8 != +if (aalg_desc->uinfo.auth.icv_fullbits /8 !=crypto_aead_authsize (aead)) { -NETDEBUG (KERN_INFO "ESP: %s digestsize %u != %hu\n" , - x->aalg->alg_name, -crypto_aead_authsize (aead), - aalg_desc->uinfo.auth.icv_fullbits/8 ); +pr_info ("ESP: %s digestsize %u != %hu\n" , + x->aalg->alg_name, +crypto_aead_authsize (aead), + aalg_desc->uinfo.auth.icv_fullbits /8 ); goto free_key; }
PATCH 1/1 sock.h: Remove unused NETDEBUG macro
It's unused now, just delete it.
---
Assuming the 2 NETDEBUG conversion deletion patches are applied...
include/net/sock.h | 3 --- 1 file changed, 3 deletions(-)
include/net/sock.h +0 -3
@@ -2280,9 +2280,6 @@ bool sk_net_capable(const struct sock *sk, int cap);* Enable debug/info messages */ extern int net_msg_warn; -#define NETDEBUG(fmt, args...) \ - do { if (net_msg_warn) printk(fmt,##args); } while (0) - #define LIMIT_NETDEBUG(fmt, args...) \ do { if (net_msg_warn && net_ratelimit()) printk(fmt,##args); } while(0)
Re: [PATCH net-next] sock.h: Remove unused NETDEBUG macro
From: Joe Perches <[email protected]>
Date: Wed, 05 Nov 2014 15:42:09 -0800
Quoted 3 lines
It's unused now, just delete it.
Signed-off-by Joe Perches <[email protected]>
Applied, thanks for doing this work Joe.
PATCH 1/1 dccp: Convert DCCP_WARN to net_warn_ratelimited
Remove the dependency on the "warning" sysctl (net_msg_warn) which is only used by the LIMIT_NETDEBUG macro.
Convert the LIMIT_NETDEBUG use in DCCP_WARN to the more common net_warn_ratelimited mechanism.
This still ratelimits based on the net_ratelimit() function, but removes the check for the sysctl.
---
Quoted 1 line · David Miller
Applied, thanks for doing this work Joe.
No worries.
What about the LIMIT_NETDEBUG stuff now?
Maybe all of them might as well be net_dbg_ratelimited even if it changes some of the logging levels.
Probably DCCP_WARN should be net_warn_ratelimited so let's start there...
net/dccp/dccp.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
net/dccp/dccp.h +2 -2
@@ -22,8 +22,8 @@/* * DCCP - specific warning and debugging macros. */ -#define DCCP_WARN(fmt, a...) LIMIT_NETDEBUG(KERN_WARNING "%s: " fmt, \ - __func__, ##a) +#define DCCP_WARN (fmt, ...) \ + net_warn_ratelimited("%s: " fmt, __func__, ##__VA_ARGS__) #define DCCP_CRIT(fmt, a...) printk(KERN_CRIT fmt " at %s:%d/%s()\n", ##a, \ __FILE__, __LINE__, __func__) #define DCCP_BUG(a...) do { DCCP_CRIT("BUG: " a); dump_stack(); } while(0)
Re: [PATCH net-next] dccp: Convert DCCP_WARN to net_warn_ratelimited
From: Joe Perches <[email protected]>
Date: Thu, 06 Nov 2014 12:53:41 -0800
Quoted 10 lines
Remove the dependency on the "warning" sysctl (
net_msg_warn) which is only used by theLIMIT_NETDEBUGmacro.Convert the
LIMIT_NETDEBUGuse inDCCP_WARNto the more commonnet_warn_ratelimitedmechanism.This still ratelimits based on the
net_ratelimit()function, but removes the check for the sysctl.Signed-off-by Joe Perches <[email protected]>
Applied, thanks Joe.
Quoted 4 lines
What about the
LIMIT_NETDEBUGstuff now?Maybe all of them might as well be
net_dbg_ratelimitedeven if it changes some of the logging levels.
I think a straight conversion to net_dbg_ratelimited would be fine.
RFC PATCH 1/1 net: Convert LIMIT_NETDEBUG to net_dbg_ratelimited
Use the more common dynamic_debug capable net_dbg_ratelimited and remove the LIMIT_NETDEBUG macro.
This may have some negative impact on messages that were emitted at KERN_INFO that are not not enabled at all unless DEBUG is defined or dynamic_debug is enabled. Even so, these messages are now _not_ emitted by default.
This eliminates the use of the net_msg_warn sysctl "/proc/sys/net/core/warnings".
All messages are still ratelimited.
Some KERN_LEVEL uses are changed to KERN_DEBUG.
Miscellanea:
o Update the sysctl documentation
o Remove the embedded uses of pr_fmt
o Coalesce format fragments
o Realign arguments
---
Let me know if you want this consolidate patch broken up into multiple patches or any of the messages and the macro kept.
Documentation/sysctl/net.txt | 12 ++++++++---- include/net/sock.h | 8 +------- include/net/udplite.h | 6 +++--- net/ipv4/icmp.c | 8 ++++---- net/ipv4/inet_fragment.c | 2 +- net/ipv4/ip_fragment.c | 3 +-- net/ipv4/tcp_input.c | 8 ++++---- net/ipv4/tcp_timer.c | 18 ++++++++++-------- net/ipv4/udp.c | 30 +++++++++++++++--------------- net/ipv6/addrconf.c | 6 ++---- net/ipv6/ah6.c | 7 +++---- net/ipv6/datagram.c | 4 ++-- net/ipv6/esp6.c | 4 ++-- net/ipv6/exthdrs.c | 18 +++++++++--------- net/ipv6/icmp.c | 15 +++++++-------- net/ipv6/mip6.c | 11 ++++++----- net/ipv6/netfilter.c | 2 +- net/ipv6/udp.c | 31 +++++++++++++------------------ net/phonet/af_phonet.c | 9 +++++---- net/phonet/pep-gprs.c | 3 +-- net/phonet/pep.c | 12 ++++++------ 21 files changed, 104 insertions(+), 113 deletions(-)
Documentation/sysctl/net.txt +8 -4
@@ -120,10 +120,14 @@ seconds. warnings -------- -This controls console messages from the networking stack that can occur because -of problems on the network like duplicate address or bad checksums. Normally, -this should be enabled, but if the problem persists the messages can be -disabled. +This sysctl is now unused. + +This was used to control console messages from the networking stack that +occur because of problems on the network like duplicate address or bad +checksums. + +These messages are now emitted at KERN_DEBUG and can generally be enabled +and controlled by the dynamic_debug facility. netdev_budget -------------
include/net/sock.h +1 -7
@@ -2276,13 +2276,7 @@ bool sk_ns_capable(const struct sock *sk,bool sk_capable (const struct sock *sk,int cap);bool sk_net_capable (const struct sock *sk,int cap); -/* -* Enable debug/info messages -*/ -extern int net_msg_warn; -#define LIMIT_NETDEBUG(fmt, args...) \ - do { if (net_msg_warn && net_ratelimit()) printk(fmt,##args); } while(0) - +extern int net_msg_warn;/* Unused, but still a sysctl */ extern __u32 sysctl_wmem_max;extern __u32 sysctl_rmem_max;
include/net/udplite.h +3 -3
@@ -40,7 +40,7 @@ static inline int udplite_checksum_init(struct sk_buff *skb, struct udphdr *uh)* checksum. UDP-Lite (like IPv6) mandates checksums, hence packets * with a zero checksum field are illegal. */ if (uh->check ==0 ) { -LIMIT_NETDEBUG (KERN_DEBUG "UDPLite: zeroed checksum field\n" ); +net_dbg_ratelimited ("UDPLite: zeroed checksum field\n" );return 1 ; }
@@ -52,8 +52,8 @@ static inline int udplite_checksum_init(struct sk_buff *skb, struct udphdr *uh)/* * Coverage length violates RFC 3828: log and discard silently. */ -LIMIT_NETDEBUG (KERN_DEBUG "UDPLite: bad csum coverage %d/%d\n" , - cscov, skb->len); +net_dbg_ratelimited ("UDPLite: bad csum coverage %d/%d\n" , + cscov, skb->len);return 1 ; }else if (cscov < skb->len) {
net/ipv4/icmp.c +4 -4
@@ -784,8 +784,8 @@ static void icmp_unreach(struct sk_buff *skb)*/ switch (net->ipv4.sysctl_ip_no_pmtu_disc) {default : - LIMIT_NETDEBUG(KERN_INFO pr_fmt("%pI4: fragmentation needed and DF set\n"), - &iph->daddr); +net_dbg_ratelimited ("%pI4: fragmentation needed and DF set\n" , + &iph->daddr);break ;case 2 : goto out;
@@ -798,8 +798,8 @@ static void icmp_unreach(struct sk_buff *skb) }break ;case ICMP_SR_FAILED : - LIMIT_NETDEBUG(KERN_INFO pr_fmt("%pI4: Source Route Failed\n"), - &iph->daddr); +net_dbg_ratelimited ("%pI4: Source Route Failed\n" , + &iph->daddr);break ;default :break ;
net/ipv4/inet_fragment.c +1 -1
@@ -458,6 +458,6 @@ void inet_frag_maybe_warn_overflow(struct inet_frag_queue *q,". Dropping fragment.\n" ;if (PTR_ERR (q) == -ENOBUFS ) -LIMIT_NETDEBUG (KERN_WARNING "%s%s" , prefix, msg); +net_dbg_ratelimited ("%s%s" , prefix, msg); }EXPORT_SYMBOL (inet_frag_maybe_warn_overflow);
net/ipv4/ip_fragment.c +1 -2
@@ -618,8 +618,7 @@ static int ip_frag_reasm(struct ipq *qp, struct sk_buff *prev,return 0 ; out_nomem: - LIMIT_NETDEBUG(KERN_ERR pr_fmt("queue_glue: no memory for gluing queue %p\n"), - qp); +net_dbg_ratelimited ("queue_glue: no memory for gluing queue %p\n" , qp); err = -ENOMEM ; goto out_fail; out_oversize:
net/ipv4/tcp_input.c +4 -4
@@ -5854,12 +5854,12 @@ static inline void pr_drop_req(struct request_sock *req, __u16 port, int family)struct inet_request_sock *ireq =inet_rsk (req);if (family ==AF_INET ) - LIMIT_NETDEBUG(KERN_DEBUG pr_fmt("drop open request from %pI4/%u\n"), - &ireq->ir_rmt_addr, port); +net_dbg_ratelimited ("drop open request from %pI4/%u\n" , + &ireq->ir_rmt_addr, port);#if IS_ENABLED (CONFIG_IPV6 ) else if (family == AF_INET6) - LIMIT_NETDEBUG(KERN_DEBUG pr_fmt("drop open request from %pI6/%u\n"), - &ireq->ir_v6_rmt_addr, port); + net_dbg_ratelimited("drop open request from %pI6/%u\n", + &ireq->ir_v6_rmt_addr, port);#endif }
net/ipv4/tcp_timer.c +10 -8
@@ -374,17 +374,19 @@ void tcp_retransmit_timer(struct sock *sk)*/ struct inet_sock *inet =inet_sk (sk);if (sk->sk_family ==AF_INET ) { - LIMIT_NETDEBUG(KERN_DEBUG pr_fmt("Peer %pI4:%u/%u unexpectedly shrunk window %u:%u (repaired)\n"), - &inet->inet_daddr, -ntohs (inet->inet_dport), inet->inet_num, - tp->snd_una, tp->snd_nxt); +net_dbg_ratelimited ("Peer %pI4:%u/%u unexpectedly shrunk window %u:%u (repaired)\n" , + &inet->inet_daddr, +ntohs (inet->inet_dport), + inet->inet_num, + tp->snd_una, tp->snd_nxt); }#if IS_ENABLED (CONFIG_IPV6 ) else if (sk->sk_family == AF_INET6) { - LIMIT_NETDEBUG(KERN_DEBUG pr_fmt("Peer %pI6:%u/%u unexpectedly shrunk window %u:%u (repaired)\n"), - &sk->sk_v6_daddr, -ntohs (inet->inet_dport), inet->inet_num, - tp->snd_una, tp->snd_nxt); +net_dbg_ratelimited ("Peer %pI6:%u/%u unexpectedly shrunk window %u:%u (repaired)\n" , + &sk->sk_v6_daddr, +ntohs (inet->inet_dport), + inet->inet_num, + tp->snd_una, tp->snd_nxt); }#endif if (tcp_time_stamp - tp->rcv_tstamp >TCP_RTO_MAX ) {
net/ipv4/udp.c +15 -15
@@ -1051,7 +1051,7 @@ back_from_confirm:/* ... which is an evident application bug. --ANK */ release_sock (sk); - LIMIT_NETDEBUG(KERN_DEBUG pr_fmt("cork app bug 2\n")); +net_dbg_ratelimited ("cork app bug 2\n" ); err = -EINVAL ; goto out; }
@@ -1133,7 +1133,7 @@ int udp_sendpage(struct sock *sk, struct page *page, int offset,if (unlikely (!up->pending)) {release_sock (sk); - LIMIT_NETDEBUG(KERN_DEBUG pr_fmt("udp cork app bug 3\n")); +net_dbg_ratelimited ("udp cork app bug 3\n" );return -EINVAL ; }
@@ -1546,8 +1546,8 @@ int udp_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)* provided by the application." */ if (up->pcrlen ==0 ) {/* full coverage was set */ -LIMIT_NETDEBUG (KERN_WARNING "UDPLite: partial coverage %d while full coverage %d requested\n" , -UDP_SKB_CB (skb)->cscov, skb->len); +net_dbg_ratelimited ("UDPLite: partial coverage %d while full coverage %d requested\n" , +UDP_SKB_CB (skb)->cscov, skb->len); goto drop; }/* The next case involves violating the min. coverage requested
@@ -1557,8 +1557,8 @@ int udp_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)* Therefore the above ...()->partial_cov statement is essential. */ if (UDP_SKB_CB (skb)->cscov < up->pcrlen) { -LIMIT_NETDEBUG (KERN_WARNING "UDPLite: coverage %d too small, need min %d\n" , -UDP_SKB_CB (skb)->cscov, up->pcrlen); +net_dbg_ratelimited ("UDPLite: coverage %d too small, need min %d\n" , +UDP_SKB_CB (skb)->cscov, up->pcrlen); goto drop; } }
@@ -1827,11 +1827,11 @@ int __udp4_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,return 0 ; short_packet: -LIMIT_NETDEBUG (KERN_DEBUG "UDP%s: short packet: From %pI4:%u %d/%d to %pI4:%u\n" , - proto ==IPPROTO_UDPLITE ?"Lite" :"" , - &saddr,ntohs (uh->source), - ulen, skb->len, - &daddr,ntohs (uh->dest)); +net_dbg_ratelimited ("UDP%s: short packet: From %pI4:%u %d/%d to %pI4:%u\n" , + proto ==IPPROTO_UDPLITE ?"Lite" :"" , + &saddr,ntohs (uh->source), + ulen, skb->len, + &daddr,ntohs (uh->dest)); goto drop; csum_error:
@@ -1839,10 +1839,10 @@ csum_error:* RFC1122: OK. Discards the bad packet silently (as far as * the network is concerned, anyway) as per 4.1.3.4 (MUST). */ -LIMIT_NETDEBUG (KERN_DEBUG "UDP%s: bad checksum. From %pI4:%u to %pI4:%u ulen %d\n" , - proto ==IPPROTO_UDPLITE ?"Lite" :"" , - &saddr,ntohs (uh->source), &daddr,ntohs (uh->dest), - ulen); +net_dbg_ratelimited ("UDP%s: bad checksum. From %pI4:%u to %pI4:%u ulen %d\n" , + proto ==IPPROTO_UDPLITE ?"Lite" :"" , + &saddr,ntohs (uh->source), &daddr,ntohs (uh->dest), + ulen);UDP_INC_STATS_BH (net,UDP_MIB_CSUMERRORS , proto ==IPPROTO_UDPLITE ); drop:UDP_INC_STATS_BH (net,UDP_MIB_INERRORS , proto ==IPPROTO_UDPLITE );
net/ipv6/addrconf.c +2 -4
@@ -1411,10 +1411,8 @@ int ipv6_dev_get_saddr(struct net *net, const struct net_device *dst_dev,if (unlikely (score->addr_type ==IPV6_ADDR_ANY || score->addr_type &IPV6_ADDR_MULTICAST )) { -LIMIT_NETDEBUG (KERN_DEBUG -"ADDRCONF: unspecified / multicast address " -"assigned as unicast address on %s" , - dev->name); +net_dbg_ratelimited ("ADDRCONF: unspecified / multicast address assigned as unicast address on %s" , + dev->name);continue ; }
net/ipv6/ah6.c +3 -4
@@ -272,10 +272,9 @@ static int ipv6_clear_mutable_options(struct ipv6hdr *iph, int len, int dir)ipv6_rearrange_destopt (iph, exthdr.opth);case NEXTHDR_HOP :if (!zero_out_mutable_opts (exthdr.opth)) { -LIMIT_NETDEBUG ( -KERN_WARNING "overrun %sopts\n" , - nexthdr ==NEXTHDR_HOP ? -"hop" :"dest" ); +net_dbg_ratelimited ("overrun %sopts\n" , + nexthdr ==NEXTHDR_HOP ? +"hop" :"dest" );return -EINVAL ; }break ;
net/ipv6/datagram.c +2 -2
@@ -893,8 +893,8 @@ int ip6_datagram_send_ctl(struct net *net, struct sock *sk,break ; }default : -LIMIT_NETDEBUG (KERN_DEBUG "invalid cmsg type: %d\n" , - cmsg->cmsg_type); +net_dbg_ratelimited ("invalid cmsg type: %d\n" , + cmsg->cmsg_type); err = -EINVAL ; goto exit_f; }
net/ipv6/esp6.c +2 -2
@@ -286,8 +286,8 @@ static int esp_input_done2(struct sk_buff *skb, int err) err = -EINVAL ; padlen = nexthdr[0 ];if (padlen +2 + alen >= elen) { -LIMIT_NETDEBUG (KERN_WARNING "ipsec esp packet is garbage " -"padlen=%d, elen=%d\n" , padlen +2 , elen - alen); +net_dbg_ratelimited ("ipsec esp packet is garbage padlen=%d, elen=%d\n" , + padlen +2 , elen - alen); goto out; }
net/ipv6/exthdrs.c +9 -9
@@ -184,7 +184,7 @@ static bool ipv6_dest_hao(struct sk_buff *skb, int optoff)int ret;if (opt->dsthao) { -LIMIT_NETDEBUG (KERN_DEBUG "hao duplicated\n" ); +net_dbg_ratelimited ("hao duplicated\n" ); goto discard; } opt->dsthao = opt->dst1;
@@ -193,14 +193,14 @@ static bool ipv6_dest_hao(struct sk_buff *skb, int optoff) hao = (struct ipv6_destopt_hao *)(skb_network_header (skb) + optoff);if (hao->length !=16 ) { -LIMIT_NETDEBUG ( -KERN_DEBUG "hao invalid option length = %d\n" , hao->length); +net_dbg_ratelimited ("hao invalid option length = %d\n" , + hao->length); goto discard; }if (!(ipv6_addr_type (&hao->addr) &IPV6_ADDR_UNICAST )) { -LIMIT_NETDEBUG ( -KERN_DEBUG "hao is not an unicast addr: %pI6\n" , &hao->addr); +net_dbg_ratelimited ("hao is not an unicast addr: %pI6\n" , + &hao->addr); goto discard; }
@@ -551,8 +551,8 @@ static bool ipv6_hop_ra(struct sk_buff *skb, int optoff)memcpy (&IP6CB (skb)->ra, nh + optoff +2 ,sizeof (IP6CB (skb)->ra));return true; } -LIMIT_NETDEBUG (KERN_DEBUG "ipv6_hop_ra: wrong RA length %d\n" , - nh[optoff +1 ]); +net_dbg_ratelimited ("ipv6_hop_ra: wrong RA length %d\n" , + nh[optoff +1 ]);kfree_skb (skb);return false; }
@@ -566,8 +566,8 @@ static bool ipv6_hop_jumbo(struct sk_buff *skb, int optoff)u32 pkt_len;if (nh[optoff +1 ] !=4 || (optoff &3 ) !=2 ) { -LIMIT_NETDEBUG (KERN_DEBUG "ipv6_hop_jumbo: wrong jumbo opt length/alignment %d\n" , - nh[optoff+1 ]); +net_dbg_ratelimited ("ipv6_hop_jumbo: wrong jumbo opt length/alignment %d\n" , + nh[optoff+1 ]);IP6_INC_STATS_BH (net,ipv6_skb_idev (skb),IPSTATS_MIB_INHDRERRORS ); goto drop;
net/ipv6/icmp.c +7 -8
@@ -338,7 +338,7 @@ static struct dst_entry *icmpv6_route_lookup(struct net *net,* anycast. */ if (((struct rt6_info *)dst)->rt6i_flags &RTF_ANYCAST ) { -LIMIT_NETDEBUG (KERN_DEBUG "icmp6_send: acast source\n" ); +net_dbg_ratelimited ("icmp6_send: acast source\n" );dst_release (dst);return ERR_PTR (-EINVAL ); }
@@ -452,7 +452,7 @@ static void icmp6_send(struct sk_buff *skb, u8 type, u8 code, __u32 info)* and anycast addresses will be checked later. */ if ((addr_type ==IPV6_ADDR_ANY ) || (addr_type &IPV6_ADDR_MULTICAST )) { -LIMIT_NETDEBUG (KERN_DEBUG "icmp6_send: addr_any/mcast source\n" ); +net_dbg_ratelimited ("icmp6_send: addr_any/mcast source\n" );return ; }
@@ -460,7 +460,7 @@ static void icmp6_send(struct sk_buff *skb, u8 type, u8 code, __u32 info)* Never answer to a ICMP packet. */ if (is_ineligible (skb)) { -LIMIT_NETDEBUG (KERN_DEBUG "icmp6_send: no reply to icmp error\n" ); +net_dbg_ratelimited ("icmp6_send: no reply to icmp error\n" );return ; }
@@ -509,7 +509,7 @@ static void icmp6_send(struct sk_buff *skb, u8 type, u8 code, __u32 info) len = skb->len - msg.offset; len = min_t(unsigned int, len, IPV6_MIN_MTU - sizeof(struct ipv6hdr) - sizeof(struct icmp6hdr));if (len <0 ) { -LIMIT_NETDEBUG (KERN_DEBUG "icmp: len problem\n" ); +net_dbg_ratelimited ("icmp: len problem\n" ); goto out_dst_release; }
@@ -706,9 +706,8 @@ static int icmpv6_rcv(struct sk_buff *skb) daddr = &ipv6_hdr (skb)->daddr;if (skb_checksum_validate (skb,IPPROTO_ICMPV6 , ip6_compute_pseudo)) { -LIMIT_NETDEBUG (KERN_DEBUG -"ICMPv6 checksum failed [%pI6c > %pI6c]\n" , - saddr, daddr); +net_dbg_ratelimited ("ICMPv6 checksum failed [%pI6c > %pI6c]\n" , + saddr, daddr); goto csum_error; }
@@ -781,7 +780,7 @@ static int icmpv6_rcv(struct sk_buff *skb)if (type &ICMPV6_INFOMSG_MASK )break ; -LIMIT_NETDEBUG (KERN_DEBUG "icmpv6: msg of unknown type\n" ); +net_dbg_ratelimited ("icmpv6: msg of unknown type\n" );/* * error of unknown type.
net/ipv6/mip6.c +6 -5
@@ -97,16 +97,17 @@ static int mip6_mh_filter(struct sock *sk, struct sk_buff *skb)return -1 ;if (mh->ip6mh_hdrlen <mip6_mh_len (mh->ip6mh_type)) { -LIMIT_NETDEBUG (KERN_DEBUG "mip6: MH message too short: %d vs >=%d\n" , - mh->ip6mh_hdrlen,mip6_mh_len (mh->ip6mh_type)); +net_dbg_ratelimited ("mip6: MH message too short: %d vs >=%d\n" , + mh->ip6mh_hdrlen, +mip6_mh_len (mh->ip6mh_type));mip6_param_prob (skb,0 , offsetof(struct ip6_mh , ip6mh_hdrlen) +skb_network_header_len (skb));return -1 ; }if (mh->ip6mh_proto !=IPPROTO_NONE ) { -LIMIT_NETDEBUG (KERN_DEBUG "mip6: MH invalid payload proto = %d\n" , - mh->ip6mh_proto); +net_dbg_ratelimited ("mip6: MH invalid payload proto = %d\n" , + mh->ip6mh_proto);mip6_param_prob (skb,0 , offsetof(struct ip6_mh , ip6mh_proto) +skb_network_header_len (skb));return -1 ;
@@ -288,7 +289,7 @@ static int mip6_destopt_offset(struct xfrm_state *x, struct sk_buff *skb,* XXX: packet if HAO exists. */ if (ipv6_find_tlv (skb, offset,IPV6_TLV_HAO ) >=0 ) { -LIMIT_NETDEBUG (KERN_WARNING "mip6: hao exists already, override\n" ); +net_dbg_ratelimited ("mip6: hao exists already, override\n" );return offset; }
net/ipv6/netfilter.c +1 -1
@@ -36,7 +36,7 @@ int ip6_route_me_harder(struct sk_buff *skb) err = dst->error;if (err) {IP6_INC_STATS (net,ip6_dst_idev (dst),IPSTATS_MIB_OUTNOROUTES ); -LIMIT_NETDEBUG (KERN_DEBUG "ip6_route_me_harder: No more route.\n" ); +net_dbg_ratelimited ("ip6_route_me_harder: No more route\n" );dst_release (dst);return err; }
net/ipv6/udp.c +13 -18
@@ -659,15 +659,13 @@ int udpv6_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)if ((is_udplite &UDPLITE_RECV_CC ) &&UDP_SKB_CB (skb)->partial_cov) {if (up->pcrlen ==0 ) {/* full coverage was set */ -LIMIT_NETDEBUG (KERN_WARNING "UDPLITE6: partial coverage" -" %d while full coverage %d requested\n" , -UDP_SKB_CB (skb)->cscov, skb->len); +net_dbg_ratelimited ("UDPLITE6: partial coverage %d while full coverage %d requested\n" , +UDP_SKB_CB (skb)->cscov, skb->len); goto drop; }if (UDP_SKB_CB (skb)->cscov < up->pcrlen) { -LIMIT_NETDEBUG (KERN_WARNING "UDPLITE6: coverage %d " -"too small, need min %d\n" , -UDP_SKB_CB (skb)->cscov, up->pcrlen); +net_dbg_ratelimited ("UDPLITE6: coverage %d too small, need min %d\n" , +UDP_SKB_CB (skb)->cscov, up->pcrlen); goto drop; } }
@@ -760,9 +758,9 @@ static void udp6_csum_zero_error(struct sk_buff *skb)/* RFC 2460 section 8.1 says that we SHOULD log * this error. Well, it is reasonable. */ -LIMIT_NETDEBUG (KERN_INFO "IPv6: udp checksum is 0 for [%pI6c]:%u->[%pI6c]:%u\n" , - &ipv6_hdr (skb)->saddr,ntohs (udp_hdr (skb)->source), - &ipv6_hdr (skb)->daddr,ntohs (udp_hdr (skb)->dest)); +net_dbg_ratelimited ("IPv6: udp checksum is 0 for [%pI6c]:%u->[%pI6c]:%u\n" , + &ipv6_hdr (skb)->saddr,ntohs (udp_hdr (skb)->source), + &ipv6_hdr (skb)->daddr,ntohs (udp_hdr (skb)->dest)); }/*
@@ -930,14 +928,11 @@ int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,return 0 ; short_packet: -LIMIT_NETDEBUG (KERN_DEBUG "UDP%sv6: short packet: From [%pI6c]:%u %d/%d to [%pI6c]:%u\n" , - proto ==IPPROTO_UDPLITE ?"-Lite" :"" , - saddr, -ntohs (uh->source), - ulen, - skb->len, - daddr, -ntohs (uh->dest)); +net_dbg_ratelimited ("UDP%sv6: short packet: From [%pI6c]:%u %d/%d to [%pI6c]:%u\n" , + proto ==IPPROTO_UDPLITE ?"-Lite" :"" , + saddr,ntohs (uh->source), + ulen, skb->len, + daddr,ntohs (uh->dest)); goto discard; csum_error:UDP6_INC_STATS_BH (net,UDP_MIB_CSUMERRORS , proto ==IPPROTO_UDPLITE );
@@ -1289,7 +1284,7 @@ back_from_confirm:/* ... which is an evident application bug. --ANK */ release_sock (sk); -LIMIT_NETDEBUG (KERN_DEBUG "udp cork app bug 2\n" ); +net_dbg_ratelimited ("udp cork app bug 2\n" ); err = -EINVAL ; goto out; }
net/phonet/af_phonet.c +5 -4
@@ -426,16 +426,17 @@ static int phonet_rcv(struct sk_buff *skb, struct net_device *dev, out_dev =phonet_route_output (net,pn_sockaddr_get_addr (&sa));if (!out_dev) { -LIMIT_NETDEBUG (KERN_WARNING "No Phonet route to %02X\n" , -pn_sockaddr_get_addr (&sa)); +net_dbg_ratelimited ("No Phonet route to %02X\n" , +pn_sockaddr_get_addr (&sa)); goto out; }__skb_push (skb,sizeof (struct phonethdr )); skb->dev = out_dev;if (out_dev == dev) { -LIMIT_NETDEBUG (KERN_ERR "Phonet loop to %02X on %s\n" , -pn_sockaddr_get_addr (&sa), dev->name); +net_dbg_ratelimited ("Phonet loop to %02X on %s\n" , +pn_sockaddr_get_addr (&sa), + dev->name); goto out_dev; }/* Some drivers (e.g. TUN) do not allocate HW header space */
net/phonet/pep-gprs.c +1 -2
@@ -203,8 +203,7 @@ static netdev_tx_t gprs_xmit(struct sk_buff *skb, struct net_device *dev) len = skb->len; err =pep_write (sk, skb);if (err) { -LIMIT_NETDEBUG (KERN_WARNING "%s: TX error (%d)\n" , - dev->name, err); +net_dbg_ratelimited ("%s: TX error (%d)\n" , dev->name, err); dev->stats.tx_aborted_errors++; dev->stats.tx_errors++; }else {
net/phonet/pep.c +6 -6
@@ -272,8 +272,8 @@ static int pipe_rcv_status(struct sock *sk, struct sk_buff *skb) hdr =pnp_hdr (skb);if (hdr->data[0 ] !=PN_PEP_TYPE_COMMON ) { -LIMIT_NETDEBUG (KERN_DEBUG "Phonet unknown PEP type: %u\n" , - (unsigned int )hdr->data[0 ]); +net_dbg_ratelimited ("Phonet unknown PEP type: %u\n" , + (unsigned int )hdr->data[0 ]);return -EOPNOTSUPP ; }
@@ -304,8 +304,8 @@ static int pipe_rcv_status(struct sock *sk, struct sk_buff *skb)break ;default : -LIMIT_NETDEBUG (KERN_DEBUG "Phonet unknown PEP indication: %u\n" , - (unsigned int )hdr->data[1 ]); +net_dbg_ratelimited ("Phonet unknown PEP indication: %u\n" , + (unsigned int )hdr->data[1 ]);return -EOPNOTSUPP ; }if (wake)
@@ -451,8 +451,8 @@ static int pipe_do_rcv(struct sock *sk, struct sk_buff *skb)break ;default : -LIMIT_NETDEBUG (KERN_DEBUG "Phonet unknown PEP message: %u\n" , - hdr->message_id); +net_dbg_ratelimited ("Phonet unknown PEP message: %u\n" , + hdr->message_id); err = -EINVAL ; } out:
Re: [RFC PATCH net-next] net: Convert LIMIT_NETDEBUG to net_dbg_ratelimited
Quoted 81 lines · Joe Perches
Use the more common
dynamic_debugcapablenet_dbg_ratelimitedand remove theLIMIT_NETDEBUGmacro.This may have some negative impact on messages that were emitted at
KERN_INFOthat are not not enabled at all unless DEBUG is defined ordynamic_debugis enabled. Even so, these messages are now _not_ emitted by default.This eliminates the use of the
net_msg_warnsysctl "/proc/sys/net/core/warnings".All messages are still ratelimited.
Some
KERN_LEVELuses are changed toKERN_DEBUG.Miscellanea:
o Update the sysctl documentation
o Remove the embedded uses ofpr_fmt
o Coalesce format fragments
o Realign argumentsSigned-off-by Joe Perches <[email protected]>---
Let me know if you want this consolidate patch broken up into multiple patches or any of the messages and the macro kept.
Documentation/sysctl/net.txt | 12 ++++++++---- include/net/sock.h | 8 +------- include/net/udplite.h | 6 +++--- net/ipv4/icmp.c | 8 ++++---- net/ipv4/inet_fragment.c | 2 +- net/ipv4/ip_fragment.c | 3 +-- net/ipv4/tcp_input.c | 8 ++++---- net/ipv4/tcp_timer.c | 18 ++++++++++-------- net/ipv4/udp.c | 30 +++++++++++++++--------------- net/ipv6/addrconf.c | 6 ++---- net/ipv6/ah6.c | 7 +++---- net/ipv6/datagram.c | 4 ++-- net/ipv6/esp6.c | 4 ++-- net/ipv6/exthdrs.c | 18 +++++++++--------- net/ipv6/icmp.c | 15 +++++++-------- net/ipv6/mip6.c | 11 ++++++----- net/ipv6/netfilter.c | 2 +- net/ipv6/udp.c | 31 +++++++++++++------------------ net/phonet/af_phonet.c | 9 +++++---- net/phonet/pep-gprs.c | 3 +-- net/phonet/pep.c | 12 ++++++------ 21 files changed, 104 insertions(+), 113 deletions(-)Documentation/sysctl/net.txt +8
-4@@ -120,10 +120,14 @@ seconds. warnings -------- -This controls console messages from the networking stack that can occur because -of problems on the network like duplicate address or bad checksums. Normally, -this should be enabled, but if the problem persists the messages can be -disabled. +This sysctl is now unused. + +This was used to control console messages from the networking stack that +occur because of problems on the network like duplicate address or bad +checksums. + +These messages are now emitted at KERN_DEBUG and can generally be enabled +and controlled by the dynamic_debug facility. netdev_budget -------------include/net/sock.h +0
-0@@ -2276,13 +2276,7 @@ bool sk_ns_capable(const struct sock *sk,bool sk_capable (const struct sock *sk,int cap);
include/net/sock.h bool sk_ns_capable(const struct sock *sk, · line 2279
Quoted 10 lines
include/net/sock.h +1
-7bool sk_net_capable (const struct sock *sk,int cap); -/* -* Enable debug/info messages -*/ -extern int net_msg_warn; -#define LIMIT_NETDEBUG(fmt, args...) \ - do { if (net_msg_warn && net_ratelimit()) printk(fmt,##args); } while(0) - +extern int net_msg_warn;/* Unused, but still a sysctl */
Why not removing this variable from this header and from net/core/utils.c? Just declaring a static variable in net/core/sysctl_net_core.c should be enough. Am I missing something?
Nicolas
Re: [RFC PATCH net-next] net: Convert LIMIT_NETDEBUG to net_dbg_ratelimited
Quoted 11 lines · Nicolas Dichtel
Quoted 10 lines · Joe Perches
Use the more common
dynamic_debugcapablenet_dbg_ratelimitedand remove theLIMIT_NETDEBUGmacro.This may have some negative impact on messages that were emitted at
KERN_INFOthat are not not enabled at all unless DEBUG is defined ordynamic_debugis enabled. Even so, these messages are now _not_ emitted by default.This eliminates the use of the
net_msg_warnsysctl "/proc/sys/net/core/warnings".
[]
Quoted 1 line
include/net/sock.h
Quoted 1 line
include/net/sock.h +0
-0
[]
Quoted 4 lines
Quoted 4 lines
include/net/sock.h +0
-0@@ -2276,13 +2276,7 @@ bool sk_ns_capable(const struct sock *sk,bool sk_capable (const struct sock *sk,int cap);bool sk_net_capable (const struct sock *sk,int cap);
Quoted 11 lines
include/net/sock.h bool sk_ns_capable(const struct sock *sk, · line 2279
Quoted 8 lines
include/net/sock.h +1
-7-/* -* Enable debug/info messages -*/ -extern int net_msg_warn; -#define LIMIT_NETDEBUG(fmt, args...) \ - do { if (net_msg_warn && net_ratelimit()) printk(fmt,##args); } while(0) - +extern int net_msg_warn;/* Unused, but still a sysctl */ Why not removing this variable from this header and from
net/core/utils.c? Just declaring a static variable innet/core/sysctl_net_core.cshould be enough. Am I missing something?
No. It's reasonable to remove its EXPORT_SYMBOL use too.
First let's see if there are any objections to the removal.
David Miller
maintainerRe: [RFC PATCH net-next] net: Convert LIMIT_NETDEBUG to net_dbg_ratelimited
In reply to Joe PerchesFrom: Joe Perches <[email protected]>
Date: Sun, 09 Nov 2014 11:17:22 -0800
Quoted 22 lines
Use the more common
dynamic_debugcapablenet_dbg_ratelimitedand remove theLIMIT_NETDEBUGmacro.This may have some negative impact on messages that were emitted at
KERN_INFOthat are not not enabled at all unless DEBUG is defined ordynamic_debugis enabled. Even so, these messages are now _not_ emitted by default.This eliminates the use of the
net_msg_warnsysctl "/proc/sys/net/core/warnings".All messages are still ratelimited.
Some
KERN_LEVELuses are changed toKERN_DEBUG.Miscellanea:
o Update the sysctl documentation
o Remove the embedded uses ofpr_fmt
o Coalesce format fragments
o Realign arguments
Quoted 6 lines
Signed-off-by Joe Perches <[email protected]>---
Let me know if you want this consolidate patch broken up into multiple patches or any of the messages and the macro kept.
No objections, please respin with the variable moved and the EXPORT_SYMBOL removed.
Thanks.
PATCH v2 1/1 net: Convert LIMIT_NETDEBUG to net_dbg_ratelimited
Use the more common dynamic_debug capable net_dbg_ratelimited and remove the LIMIT_NETDEBUG macro.
All messages are still ratelimited.
Some KERN_<LEVEL> uses are changed to KERN_DEBUG.
This may have some negative impact on messages that were emitted at KERN_INFO that are not not enabled at all unless DEBUG is defined or dynamic_debug is enabled. Even so, these messages are now _not_ emitted by default.
This also eliminates the use of the net_msg_warn sysctl "/proc/sys/net/core/warnings". For backward compatibility, the sysctl is not removed, but it has no function. The extern declaration of net_msg_warn is removed from sock.h and made static in net/core/sysctl_net_core.c
Miscellanea:
o Update the sysctl documentation
o Remove the embedded uses of pr_fmt
o Coalesce format fragments
o Realign arguments
---
V2: Remove the EXPORT_SYMBOL for net_msg_warn and make
it a static in net/core/sysctl_net_core.c
Documentation/sysctl/net.txt | 12 ++++++++---- include/net/sock.h | 7 ------- include/net/udplite.h | 6 +++--- net/core/sysctl_net_core.c | 2 ++ net/core/utils.c | 3 --- net/ipv4/icmp.c | 8 ++++---- net/ipv4/inet_fragment.c | 2 +- net/ipv4/ip_fragment.c | 3 +-- net/ipv4/tcp_input.c | 8 ++++---- net/ipv4/tcp_timer.c | 18 ++++++++++-------- net/ipv4/udp.c | 30 +++++++++++++++--------------- net/ipv6/addrconf.c | 6 ++---- net/ipv6/ah6.c | 7 +++---- net/ipv6/datagram.c | 4 ++-- net/ipv6/esp6.c | 4 ++-- net/ipv6/exthdrs.c | 18 +++++++++--------- net/ipv6/icmp.c | 15 +++++++-------- net/ipv6/mip6.c | 11 ++++++----- net/ipv6/netfilter.c | 2 +- net/ipv6/udp.c | 31 +++++++++++++------------------ net/phonet/af_phonet.c | 9 +++++---- net/phonet/pep-gprs.c | 3 +-- net/phonet/pep.c | 12 ++++++------ 23 files changed, 105 insertions(+), 116 deletions(-)
Documentation/sysctl/net.txt +8 -4
@@ -120,10 +120,14 @@ seconds. warnings -------- -This controls console messages from the networking stack that can occur because -of problems on the network like duplicate address or bad checksums. Normally, -this should be enabled, but if the problem persists the messages can be -disabled. +This sysctl is now unused. + +This was used to control console messages from the networking stack that +occur because of problems on the network like duplicate address or bad +checksums. + +These messages are now emitted at KERN_DEBUG and can generally be enabled +and controlled by the dynamic_debug facility. netdev_budget -------------
include/net/sock.h +0 -7
@@ -2288,13 +2288,6 @@ bool sk_ns_capable(const struct sock *sk,bool sk_capable (const struct sock *sk,int cap);bool sk_net_capable (const struct sock *sk,int cap); -/* -* Enable debug/info messages -*/ -extern int net_msg_warn; -#define LIMIT_NETDEBUG(fmt, args...) \ - do { if (net_msg_warn && net_ratelimit()) printk(fmt,##args); } while(0) -extern __u32 sysctl_wmem_max;extern __u32 sysctl_rmem_max;
include/net/udplite.h +3 -3
@@ -40,7 +40,7 @@ static inline int udplite_checksum_init(struct sk_buff *skb, struct udphdr *uh)* checksum. UDP-Lite (like IPv6) mandates checksums, hence packets * with a zero checksum field are illegal. */ if (uh->check ==0 ) { -LIMIT_NETDEBUG (KERN_DEBUG "UDPLite: zeroed checksum field\n" ); +net_dbg_ratelimited ("UDPLite: zeroed checksum field\n" );return 1 ; }
@@ -52,8 +52,8 @@ static inline int udplite_checksum_init(struct sk_buff *skb, struct udphdr *uh)/* * Coverage length violates RFC 3828: log and discard silently. */ -LIMIT_NETDEBUG (KERN_DEBUG "UDPLite: bad csum coverage %d/%d\n" , - cscov, skb->len); +net_dbg_ratelimited ("UDPLite: bad csum coverage %d/%d\n" , + cscov, skb->len);return 1 ; }else if (cscov < skb->len) {
net/core/sysctl_net_core.c +2 -0
@@ -26,6 +26,8 @@ static int zero = 0;static int one =1 ;static int ushort_max =USHRT_MAX ; +static int net_msg_warn;/* Unused, but still a sysctl */ +#ifdef CONFIG_RPS static int rps_sock_flow_sysctl (struct ctl_table *table,int write,void __user *buffer,size_t *lenp,loff_t *ppos)
net/core/utils.c +0 -3
@@ -33,9 +33,6 @@#include <asm/byteorder.h> #include <asm/uaccess.h> -int net_msg_warn__read_mostly =1 ; -EXPORT_SYMBOL (net_msg_warn); -DEFINE_RATELIMIT_STATE (net_ratelimit_state,5 *HZ ,10 );/* * All net warning printk()s should be guarded by this function.
net/ipv4/icmp.c +4 -4
@@ -784,8 +784,8 @@ static void icmp_unreach(struct sk_buff *skb)*/ switch (net->ipv4.sysctl_ip_no_pmtu_disc) {default : - LIMIT_NETDEBUG(KERN_INFO pr_fmt("%pI4: fragmentation needed and DF set\n"), - &iph->daddr); +net_dbg_ratelimited ("%pI4: fragmentation needed and DF set\n" , + &iph->daddr);break ;case 2 : goto out;
@@ -798,8 +798,8 @@ static void icmp_unreach(struct sk_buff *skb) }break ;case ICMP_SR_FAILED : - LIMIT_NETDEBUG(KERN_INFO pr_fmt("%pI4: Source Route Failed\n"), - &iph->daddr); +net_dbg_ratelimited ("%pI4: Source Route Failed\n" , + &iph->daddr);break ;default :break ;
net/ipv4/inet_fragment.c +1 -1
@@ -458,6 +458,6 @@ void inet_frag_maybe_warn_overflow(struct inet_frag_queue *q,". Dropping fragment.\n" ;if (PTR_ERR (q) == -ENOBUFS ) -LIMIT_NETDEBUG (KERN_WARNING "%s%s" , prefix, msg); +net_dbg_ratelimited ("%s%s" , prefix, msg); }EXPORT_SYMBOL (inet_frag_maybe_warn_overflow);
net/ipv4/ip_fragment.c +1 -2
@@ -618,8 +618,7 @@ static int ip_frag_reasm(struct ipq *qp, struct sk_buff *prev,return 0 ; out_nomem: - LIMIT_NETDEBUG(KERN_ERR pr_fmt("queue_glue: no memory for gluing queue %p\n"), - qp); +net_dbg_ratelimited ("queue_glue: no memory for gluing queue %p\n" , qp); err = -ENOMEM ; goto out_fail; out_oversize:
net/ipv4/tcp_input.c +4 -4
@@ -5854,12 +5854,12 @@ static inline void pr_drop_req(struct request_sock *req, __u16 port, int family)struct inet_request_sock *ireq =inet_rsk (req);if (family ==AF_INET ) - LIMIT_NETDEBUG(KERN_DEBUG pr_fmt("drop open request from %pI4/%u\n"), - &ireq->ir_rmt_addr, port); +net_dbg_ratelimited ("drop open request from %pI4/%u\n" , + &ireq->ir_rmt_addr, port);#if IS_ENABLED (CONFIG_IPV6 ) else if (family == AF_INET6) - LIMIT_NETDEBUG(KERN_DEBUG pr_fmt("drop open request from %pI6/%u\n"), - &ireq->ir_v6_rmt_addr, port); + net_dbg_ratelimited("drop open request from %pI6/%u\n", + &ireq->ir_v6_rmt_addr, port);#endif }
net/ipv4/tcp_timer.c +10 -8
@@ -374,17 +374,19 @@ void tcp_retransmit_timer(struct sock *sk)*/ struct inet_sock *inet =inet_sk (sk);if (sk->sk_family ==AF_INET ) { - LIMIT_NETDEBUG(KERN_DEBUG pr_fmt("Peer %pI4:%u/%u unexpectedly shrunk window %u:%u (repaired)\n"), - &inet->inet_daddr, -ntohs (inet->inet_dport), inet->inet_num, - tp->snd_una, tp->snd_nxt); +net_dbg_ratelimited ("Peer %pI4:%u/%u unexpectedly shrunk window %u:%u (repaired)\n" , + &inet->inet_daddr, +ntohs (inet->inet_dport), + inet->inet_num, + tp->snd_una, tp->snd_nxt); }#if IS_ENABLED (CONFIG_IPV6 ) else if (sk->sk_family == AF_INET6) { - LIMIT_NETDEBUG(KERN_DEBUG pr_fmt("Peer %pI6:%u/%u unexpectedly shrunk window %u:%u (repaired)\n"), - &sk->sk_v6_daddr, -ntohs (inet->inet_dport), inet->inet_num, - tp->snd_una, tp->snd_nxt); +net_dbg_ratelimited ("Peer %pI6:%u/%u unexpectedly shrunk window %u:%u (repaired)\n" , + &sk->sk_v6_daddr, +ntohs (inet->inet_dport), + inet->inet_num, + tp->snd_una, tp->snd_nxt); }#endif if (tcp_time_stamp - tp->rcv_tstamp >TCP_RTO_MAX ) {
net/ipv4/udp.c +15 -15
@@ -1051,7 +1051,7 @@ back_from_confirm:/* ... which is an evident application bug. --ANK */ release_sock (sk); - LIMIT_NETDEBUG(KERN_DEBUG pr_fmt("cork app bug 2\n")); +net_dbg_ratelimited ("cork app bug 2\n" ); err = -EINVAL ; goto out; }
@@ -1133,7 +1133,7 @@ int udp_sendpage(struct sock *sk, struct page *page, int offset,if (unlikely (!up->pending)) {release_sock (sk); - LIMIT_NETDEBUG(KERN_DEBUG pr_fmt("udp cork app bug 3\n")); +net_dbg_ratelimited ("udp cork app bug 3\n" );return -EINVAL ; }
@@ -1547,8 +1547,8 @@ int udp_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)* provided by the application." */ if (up->pcrlen ==0 ) {/* full coverage was set */ -LIMIT_NETDEBUG (KERN_WARNING "UDPLite: partial coverage %d while full coverage %d requested\n" , -UDP_SKB_CB (skb)->cscov, skb->len); +net_dbg_ratelimited ("UDPLite: partial coverage %d while full coverage %d requested\n" , +UDP_SKB_CB (skb)->cscov, skb->len); goto drop; }/* The next case involves violating the min. coverage requested
@@ -1558,8 +1558,8 @@ int udp_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)* Therefore the above ...()->partial_cov statement is essential. */ if (UDP_SKB_CB (skb)->cscov < up->pcrlen) { -LIMIT_NETDEBUG (KERN_WARNING "UDPLite: coverage %d too small, need min %d\n" , -UDP_SKB_CB (skb)->cscov, up->pcrlen); +net_dbg_ratelimited ("UDPLite: coverage %d too small, need min %d\n" , +UDP_SKB_CB (skb)->cscov, up->pcrlen); goto drop; } }
@@ -1828,11 +1828,11 @@ int __udp4_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,return 0 ; short_packet: -LIMIT_NETDEBUG (KERN_DEBUG "UDP%s: short packet: From %pI4:%u %d/%d to %pI4:%u\n" , - proto ==IPPROTO_UDPLITE ?"Lite" :"" , - &saddr,ntohs (uh->source), - ulen, skb->len, - &daddr,ntohs (uh->dest)); +net_dbg_ratelimited ("UDP%s: short packet: From %pI4:%u %d/%d to %pI4:%u\n" , + proto ==IPPROTO_UDPLITE ?"Lite" :"" , + &saddr,ntohs (uh->source), + ulen, skb->len, + &daddr,ntohs (uh->dest)); goto drop; csum_error:
@@ -1840,10 +1840,10 @@ csum_error:* RFC1122: OK. Discards the bad packet silently (as far as * the network is concerned, anyway) as per 4.1.3.4 (MUST). */ -LIMIT_NETDEBUG (KERN_DEBUG "UDP%s: bad checksum. From %pI4:%u to %pI4:%u ulen %d\n" , - proto ==IPPROTO_UDPLITE ?"Lite" :"" , - &saddr,ntohs (uh->source), &daddr,ntohs (uh->dest), - ulen); +net_dbg_ratelimited ("UDP%s: bad checksum. From %pI4:%u to %pI4:%u ulen %d\n" , + proto ==IPPROTO_UDPLITE ?"Lite" :"" , + &saddr,ntohs (uh->source), &daddr,ntohs (uh->dest), + ulen);UDP_INC_STATS_BH (net,UDP_MIB_CSUMERRORS , proto ==IPPROTO_UDPLITE ); drop:UDP_INC_STATS_BH (net,UDP_MIB_INERRORS , proto ==IPPROTO_UDPLITE );
net/ipv6/addrconf.c +2 -4
@@ -1411,10 +1411,8 @@ int ipv6_dev_get_saddr(struct net *net, const struct net_device *dst_dev,if (unlikely (score->addr_type ==IPV6_ADDR_ANY || score->addr_type &IPV6_ADDR_MULTICAST )) { -LIMIT_NETDEBUG (KERN_DEBUG -"ADDRCONF: unspecified / multicast address " -"assigned as unicast address on %s" , - dev->name); +net_dbg_ratelimited ("ADDRCONF: unspecified / multicast address assigned as unicast address on %s" , + dev->name);continue ; }
net/ipv6/ah6.c +3 -4
@@ -272,10 +272,9 @@ static int ipv6_clear_mutable_options(struct ipv6hdr *iph, int len, int dir)ipv6_rearrange_destopt (iph, exthdr.opth);case NEXTHDR_HOP :if (!zero_out_mutable_opts (exthdr.opth)) { -LIMIT_NETDEBUG ( -KERN_WARNING "overrun %sopts\n" , - nexthdr ==NEXTHDR_HOP ? -"hop" :"dest" ); +net_dbg_ratelimited ("overrun %sopts\n" , + nexthdr ==NEXTHDR_HOP ? +"hop" :"dest" );return -EINVAL ; }break ;
net/ipv6/datagram.c +2 -2
@@ -893,8 +893,8 @@ int ip6_datagram_send_ctl(struct net *net, struct sock *sk,break ; }default : -LIMIT_NETDEBUG (KERN_DEBUG "invalid cmsg type: %d\n" , - cmsg->cmsg_type); +net_dbg_ratelimited ("invalid cmsg type: %d\n" , + cmsg->cmsg_type); err = -EINVAL ; goto exit_f; }
net/ipv6/esp6.c +2 -2
@@ -286,8 +286,8 @@ static int esp_input_done2(struct sk_buff *skb, int err) err = -EINVAL ; padlen = nexthdr[0 ];if (padlen +2 + alen >= elen) { -LIMIT_NETDEBUG (KERN_WARNING "ipsec esp packet is garbage " -"padlen=%d, elen=%d\n" , padlen +2 , elen - alen); +net_dbg_ratelimited ("ipsec esp packet is garbage padlen=%d, elen=%d\n" , + padlen +2 , elen - alen); goto out; }
net/ipv6/exthdrs.c +9 -9
@@ -184,7 +184,7 @@ static bool ipv6_dest_hao(struct sk_buff *skb, int optoff)int ret;if (opt->dsthao) { -LIMIT_NETDEBUG (KERN_DEBUG "hao duplicated\n" ); +net_dbg_ratelimited ("hao duplicated\n" ); goto discard; } opt->dsthao = opt->dst1;
@@ -193,14 +193,14 @@ static bool ipv6_dest_hao(struct sk_buff *skb, int optoff) hao = (struct ipv6_destopt_hao *)(skb_network_header (skb) + optoff);if (hao->length !=16 ) { -LIMIT_NETDEBUG ( -KERN_DEBUG "hao invalid option length = %d\n" , hao->length); +net_dbg_ratelimited ("hao invalid option length = %d\n" , + hao->length); goto discard; }if (!(ipv6_addr_type (&hao->addr) &IPV6_ADDR_UNICAST )) { -LIMIT_NETDEBUG ( -KERN_DEBUG "hao is not an unicast addr: %pI6\n" , &hao->addr); +net_dbg_ratelimited ("hao is not an unicast addr: %pI6\n" , + &hao->addr); goto discard; }
@@ -551,8 +551,8 @@ static bool ipv6_hop_ra(struct sk_buff *skb, int optoff)memcpy (&IP6CB (skb)->ra, nh + optoff +2 ,sizeof (IP6CB (skb)->ra));return true; } -LIMIT_NETDEBUG (KERN_DEBUG "ipv6_hop_ra: wrong RA length %d\n" , - nh[optoff +1 ]); +net_dbg_ratelimited ("ipv6_hop_ra: wrong RA length %d\n" , + nh[optoff +1 ]);kfree_skb (skb);return false; }
@@ -566,8 +566,8 @@ static bool ipv6_hop_jumbo(struct sk_buff *skb, int optoff)u32 pkt_len;if (nh[optoff +1 ] !=4 || (optoff &3 ) !=2 ) { -LIMIT_NETDEBUG (KERN_DEBUG "ipv6_hop_jumbo: wrong jumbo opt length/alignment %d\n" , - nh[optoff+1 ]); +net_dbg_ratelimited ("ipv6_hop_jumbo: wrong jumbo opt length/alignment %d\n" , + nh[optoff+1 ]);IP6_INC_STATS_BH (net,ipv6_skb_idev (skb),IPSTATS_MIB_INHDRERRORS ); goto drop;
net/ipv6/icmp.c +7 -8
@@ -338,7 +338,7 @@ static struct dst_entry *icmpv6_route_lookup(struct net *net,* anycast. */ if (((struct rt6_info *)dst)->rt6i_flags &RTF_ANYCAST ) { -LIMIT_NETDEBUG (KERN_DEBUG "icmp6_send: acast source\n" ); +net_dbg_ratelimited ("icmp6_send: acast source\n" );dst_release (dst);return ERR_PTR (-EINVAL ); }
@@ -452,7 +452,7 @@ static void icmp6_send(struct sk_buff *skb, u8 type, u8 code, __u32 info)* and anycast addresses will be checked later. */ if ((addr_type ==IPV6_ADDR_ANY ) || (addr_type &IPV6_ADDR_MULTICAST )) { -LIMIT_NETDEBUG (KERN_DEBUG "icmp6_send: addr_any/mcast source\n" ); +net_dbg_ratelimited ("icmp6_send: addr_any/mcast source\n" );return ; }
@@ -460,7 +460,7 @@ static void icmp6_send(struct sk_buff *skb, u8 type, u8 code, __u32 info)* Never answer to a ICMP packet. */ if (is_ineligible (skb)) { -LIMIT_NETDEBUG (KERN_DEBUG "icmp6_send: no reply to icmp error\n" ); +net_dbg_ratelimited ("icmp6_send: no reply to icmp error\n" );return ; }
@@ -509,7 +509,7 @@ static void icmp6_send(struct sk_buff *skb, u8 type, u8 code, __u32 info) len = skb->len - msg.offset; len = min_t(unsigned int, len, IPV6_MIN_MTU - sizeof(struct ipv6hdr) - sizeof(struct icmp6hdr));if (len <0 ) { -LIMIT_NETDEBUG (KERN_DEBUG "icmp: len problem\n" ); +net_dbg_ratelimited ("icmp: len problem\n" ); goto out_dst_release; }
@@ -706,9 +706,8 @@ static int icmpv6_rcv(struct sk_buff *skb) daddr = &ipv6_hdr (skb)->daddr;if (skb_checksum_validate (skb,IPPROTO_ICMPV6 , ip6_compute_pseudo)) { -LIMIT_NETDEBUG (KERN_DEBUG -"ICMPv6 checksum failed [%pI6c > %pI6c]\n" , - saddr, daddr); +net_dbg_ratelimited ("ICMPv6 checksum failed [%pI6c > %pI6c]\n" , + saddr, daddr); goto csum_error; }
@@ -781,7 +780,7 @@ static int icmpv6_rcv(struct sk_buff *skb)if (type &ICMPV6_INFOMSG_MASK )break ; -LIMIT_NETDEBUG (KERN_DEBUG "icmpv6: msg of unknown type\n" ); +net_dbg_ratelimited ("icmpv6: msg of unknown type\n" );/* * error of unknown type.
net/ipv6/mip6.c +6 -5
@@ -97,16 +97,17 @@ static int mip6_mh_filter(struct sock *sk, struct sk_buff *skb)return -1 ;if (mh->ip6mh_hdrlen <mip6_mh_len (mh->ip6mh_type)) { -LIMIT_NETDEBUG (KERN_DEBUG "mip6: MH message too short: %d vs >=%d\n" , - mh->ip6mh_hdrlen,mip6_mh_len (mh->ip6mh_type)); +net_dbg_ratelimited ("mip6: MH message too short: %d vs >=%d\n" , + mh->ip6mh_hdrlen, +mip6_mh_len (mh->ip6mh_type));mip6_param_prob (skb,0 , offsetof(struct ip6_mh , ip6mh_hdrlen) +skb_network_header_len (skb));return -1 ; }if (mh->ip6mh_proto !=IPPROTO_NONE ) { -LIMIT_NETDEBUG (KERN_DEBUG "mip6: MH invalid payload proto = %d\n" , - mh->ip6mh_proto); +net_dbg_ratelimited ("mip6: MH invalid payload proto = %d\n" , + mh->ip6mh_proto);mip6_param_prob (skb,0 , offsetof(struct ip6_mh , ip6mh_proto) +skb_network_header_len (skb));return -1 ;
@@ -288,7 +289,7 @@ static int mip6_destopt_offset(struct xfrm_state *x, struct sk_buff *skb,* XXX: packet if HAO exists. */ if (ipv6_find_tlv (skb, offset,IPV6_TLV_HAO ) >=0 ) { -LIMIT_NETDEBUG (KERN_WARNING "mip6: hao exists already, override\n" ); +net_dbg_ratelimited ("mip6: hao exists already, override\n" );return offset; }
net/ipv6/netfilter.c +1 -1
@@ -36,7 +36,7 @@ int ip6_route_me_harder(struct sk_buff *skb) err = dst->error;if (err) {IP6_INC_STATS (net,ip6_dst_idev (dst),IPSTATS_MIB_OUTNOROUTES ); -LIMIT_NETDEBUG (KERN_DEBUG "ip6_route_me_harder: No more route.\n" ); +net_dbg_ratelimited ("ip6_route_me_harder: No more route\n" );dst_release (dst);return err; }
net/ipv6/udp.c +13 -18
@@ -660,15 +660,13 @@ int udpv6_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)if ((is_udplite &UDPLITE_RECV_CC ) &&UDP_SKB_CB (skb)->partial_cov) {if (up->pcrlen ==0 ) {/* full coverage was set */ -LIMIT_NETDEBUG (KERN_WARNING "UDPLITE6: partial coverage" -" %d while full coverage %d requested\n" , -UDP_SKB_CB (skb)->cscov, skb->len); +net_dbg_ratelimited ("UDPLITE6: partial coverage %d while full coverage %d requested\n" , +UDP_SKB_CB (skb)->cscov, skb->len); goto drop; }if (UDP_SKB_CB (skb)->cscov < up->pcrlen) { -LIMIT_NETDEBUG (KERN_WARNING "UDPLITE6: coverage %d " -"too small, need min %d\n" , -UDP_SKB_CB (skb)->cscov, up->pcrlen); +net_dbg_ratelimited ("UDPLITE6: coverage %d too small, need min %d\n" , +UDP_SKB_CB (skb)->cscov, up->pcrlen); goto drop; } }
@@ -761,9 +759,9 @@ static void udp6_csum_zero_error(struct sk_buff *skb)/* RFC 2460 section 8.1 says that we SHOULD log * this error. Well, it is reasonable. */ -LIMIT_NETDEBUG (KERN_INFO "IPv6: udp checksum is 0 for [%pI6c]:%u->[%pI6c]:%u\n" , - &ipv6_hdr (skb)->saddr,ntohs (udp_hdr (skb)->source), - &ipv6_hdr (skb)->daddr,ntohs (udp_hdr (skb)->dest)); +net_dbg_ratelimited ("IPv6: udp checksum is 0 for [%pI6c]:%u->[%pI6c]:%u\n" , + &ipv6_hdr (skb)->saddr,ntohs (udp_hdr (skb)->source), + &ipv6_hdr (skb)->daddr,ntohs (udp_hdr (skb)->dest)); }/*
@@ -931,14 +929,11 @@ int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,return 0 ; short_packet: -LIMIT_NETDEBUG (KERN_DEBUG "UDP%sv6: short packet: From [%pI6c]:%u %d/%d to [%pI6c]:%u\n" , - proto ==IPPROTO_UDPLITE ?"-Lite" :"" , - saddr, -ntohs (uh->source), - ulen, - skb->len, - daddr, -ntohs (uh->dest)); +net_dbg_ratelimited ("UDP%sv6: short packet: From [%pI6c]:%u %d/%d to [%pI6c]:%u\n" , + proto ==IPPROTO_UDPLITE ?"-Lite" :"" , + saddr,ntohs (uh->source), + ulen, skb->len, + daddr,ntohs (uh->dest)); goto discard; csum_error:UDP6_INC_STATS_BH (net,UDP_MIB_CSUMERRORS , proto ==IPPROTO_UDPLITE );
@@ -1290,7 +1285,7 @@ back_from_confirm:/* ... which is an evident application bug. --ANK */ release_sock (sk); -LIMIT_NETDEBUG (KERN_DEBUG "udp cork app bug 2\n" ); +net_dbg_ratelimited ("udp cork app bug 2\n" ); err = -EINVAL ; goto out; }
net/phonet/af_phonet.c +5 -4
@@ -426,16 +426,17 @@ static int phonet_rcv(struct sk_buff *skb, struct net_device *dev, out_dev =phonet_route_output (net,pn_sockaddr_get_addr (&sa));if (!out_dev) { -LIMIT_NETDEBUG (KERN_WARNING "No Phonet route to %02X\n" , -pn_sockaddr_get_addr (&sa)); +net_dbg_ratelimited ("No Phonet route to %02X\n" , +pn_sockaddr_get_addr (&sa)); goto out; }__skb_push (skb,sizeof (struct phonethdr )); skb->dev = out_dev;if (out_dev == dev) { -LIMIT_NETDEBUG (KERN_ERR "Phonet loop to %02X on %s\n" , -pn_sockaddr_get_addr (&sa), dev->name); +net_dbg_ratelimited ("Phonet loop to %02X on %s\n" , +pn_sockaddr_get_addr (&sa), + dev->name); goto out_dev; }/* Some drivers (e.g. TUN) do not allocate HW header space */
net/phonet/pep-gprs.c +1 -2
@@ -203,8 +203,7 @@ static netdev_tx_t gprs_xmit(struct sk_buff *skb, struct net_device *dev) len = skb->len; err =pep_write (sk, skb);if (err) { -LIMIT_NETDEBUG (KERN_WARNING "%s: TX error (%d)\n" , - dev->name, err); +net_dbg_ratelimited ("%s: TX error (%d)\n" , dev->name, err); dev->stats.tx_aborted_errors++; dev->stats.tx_errors++; }else {
net/phonet/pep.c +6 -6
@@ -272,8 +272,8 @@ static int pipe_rcv_status(struct sock *sk, struct sk_buff *skb) hdr =pnp_hdr (skb);if (hdr->data[0 ] !=PN_PEP_TYPE_COMMON ) { -LIMIT_NETDEBUG (KERN_DEBUG "Phonet unknown PEP type: %u\n" , - (unsigned int )hdr->data[0 ]); +net_dbg_ratelimited ("Phonet unknown PEP type: %u\n" , + (unsigned int )hdr->data[0 ]);return -EOPNOTSUPP ; }
@@ -304,8 +304,8 @@ static int pipe_rcv_status(struct sock *sk, struct sk_buff *skb)break ;default : -LIMIT_NETDEBUG (KERN_DEBUG "Phonet unknown PEP indication: %u\n" , - (unsigned int )hdr->data[1 ]); +net_dbg_ratelimited ("Phonet unknown PEP indication: %u\n" , + (unsigned int )hdr->data[1 ]);return -EOPNOTSUPP ; }if (wake)
@@ -451,8 +451,8 @@ static int pipe_do_rcv(struct sock *sk, struct sk_buff *skb)break ;default : -LIMIT_NETDEBUG (KERN_DEBUG "Phonet unknown PEP message: %u\n" , - hdr->message_id); +net_dbg_ratelimited ("Phonet unknown PEP message: %u\n" , + hdr->message_id); err = -EINVAL ; } out:
Signature · 1 line
2.1.2
Re: [PATCH V2 net-next] net: Convert LIMIT_NETDEBUG to net_dbg_ratelimited
From: Joe Perches <[email protected]>
Date: Tue, 11 Nov 2014 10:59:17 -0800
Quoted 25 lines
Use the more common
dynamic_debugcapablenet_dbg_ratelimitedand remove theLIMIT_NETDEBUGmacro.All messages are still ratelimited.
Some KERN_<LEVEL> uses are changed to
KERN_DEBUG.This may have some negative impact on messages that were emitted at
KERN_INFOthat are not not enabled at all unless DEBUG is defined ordynamic_debugis enabled. Even so, these messages are now _not_ emitted by default.This also eliminates the use of the
net_msg_warnsysctl "/proc/sys/net/core/warnings". For backward compatibility, the sysctl is not removed, but it has no function. The extern declaration ofnet_msg_warnis removed fromsock.hand made static innet/core/sysctl_net_core.cMiscellanea:
o Update the sysctl documentation
o Remove the embedded uses ofpr_fmt
o Coalesce format fragments
o Realign arguments
Quoted 5 lines
Signed-off-by Joe Perches <[email protected]>---
V2: Remove the
EXPORT_SYMBOLfornet_msg_warnand make
it a static innet/core/sysctl_net_core.c
Applied, thanks a lot Joe.
From: Joe Perches <[email protected]>
Date: Wed, 05 Nov 2014 15:36:08 -0800
Quoted 11 lines
Commit
64ce207306de("[NET]: Make NETDEBUG pure printk wrappers") originally had these NETDEBUG printks as always emitting.Commit
a2a316fd068c("[NET]: ReplaceCONFIG_NET_DEBUGwith sysctl") added anet_msg_warnsysctl to these NETDEBUG uses.Convert these NETDEBUG uses to normal
pr_infocalls.This changes the output prefix from "ESP: " to include "IPSec: " for the ipv4 case and "IPv6: " for the ipv6 case.
Quoted 8 lines
These output lines are now like the other messages in the files.
Other miscellanea:
Neaten the arithmetic spacing to be consistent with other arithmetic spacing in the files.
Signed-off-by Joe Perches <[email protected]>
Applied.