net: Use net_<level>_ratelimit
Subsystems (16)
cover net: Use net_<level>_ratelimit
net_ratelimit() like __ratelimit() is too easy to misuse.
Add simplifying macros similar to pr_<level>_ratelimited that combines the test of net_ratelimit and logging.
Joe Perches (2):
net: Add net_ratelimited_function and net_<level>_ratelimited macros
net: Convert net_ratelimit uses to net_<level>_ratelimited
include/linux/net.h | 23 +++++++++++ net/atm/ioctl.c | 8 +-- net/caif/caif_socket.c | 10 ++--- net/core/dev.c | 30 ++++++-------- net/core/pktgen.c | 7 +-- net/core/rtnetlink.c | 8 +-- net/core/skbuff.c | 11 ++--- net/decnet/dn_fib.c | 5 +- net/decnet/dn_neigh.c | 22 ++++------- net/decnet/dn_nsp_in.c | 11 +++-- net/decnet/dn_nsp_out.c | 5 +- net/decnet/dn_route.c | 15 ++----- net/decnet/dn_table.c | 4 +- net/decnet/netfilter/dn_rtmsg.c | 3 +- net/ipv4/icmp.c | 20 ++++----- net/ipv4/ip_fragment.c | 3 +- net/ipv4/ip_input.c | 13 +++--- net/ipv4/ip_options.c | 6 ++- net/ipv4/ip_output.c | 4 +- net/ipv4/ipconfig.c | 11 ++--- net/ipv4/ipmr.c | 3 +- net/ipv4/netfilter/arp_tables.c | 5 +- net/ipv4/netfilter/ip_tables.c | 3 +- net/ipv4/netfilter/ipt_CLUSTERIP.c | 3 +- net/ipv4/netfilter/nf_nat_h323.c | 26 ++++-------- net/ipv4/netfilter/nf_nat_snmp_basic.c | 8 +-- net/ipv4/route.c | 40 ++++++++----------- net/ipv4/tcp.c | 14 +++--- net/ipv4/tcp_input.c | 7 +-- net/ipv4/tcp_ipv4.c | 11 ++--- net/ipv4/tcp_output.c | 3 +- net/ipv6/addrconf.c | 17 +++----- net/ipv6/ah6.c | 4 +- net/ipv6/ip6_output.c | 3 +- net/ipv6/ip6_tunnel.c | 33 +++++---------- net/ipv6/ip6mr.c | 3 +- net/ipv6/netfilter/ip6_tables.c | 3 +- net/ipv6/netfilter/ip6t_REJECT.c | 6 +-- net/ipv6/netfilter/ip6table_mangle.c | 3 +- net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c | 3 +- net/ipv6/netfilter/nf_conntrack_reasm.c | 7 +-- net/ipv6/reassembly.c | 6 +-- net/ipv6/route.c | 12 +---- net/ipv6/sit.c | 6 +-- net/ipv6/tcp_ipv6.c | 10 ++--- net/llc/af_llc.c | 7 +-- net/mac80211/agg-rx.c | 13 ++---- net/mac80211/ht.c | 8 ++-- net/mac80211/ibss.c | 10 ++--- net/mac80211/mlme.c | 12 ++--- net/mac80211/rx.c | 11 ++--- net/mac80211/tx.c | 17 +++----- net/netfilter/nf_conntrack_amanda.c | 3 +- net/netfilter/nf_conntrack_core.c | 5 +-- net/netfilter/nf_conntrack_expect.c | 4 +- net/netfilter/nf_conntrack_h323_main.c | 9 +--- net/netfilter/nf_conntrack_irc.c | 8 +-- net/netfilter/nfnetlink_queue.c | 9 +--- net/netfilter/xt_TCPMSS.c | 10 ++--- net/netfilter/xt_hashlimit.c | 3 +- net/openvswitch/vport-netdev.c | 6 +- net/sched/act_ipt.c | 7 +-- net/sched/act_mirred.c | 5 +- net/sched/cls_u32.c | 3 +- net/sched/ematch.c | 4 +- net/sched/sch_api.c | 10 ++--- net/sched/sch_generic.c | 11 ++--- net/sched/sch_gred.c | 12 ++---- net/sctp/sm_sideeffect.c | 5 +- net/sctp/sm_statefuns.c | 18 ++++----- net/sctp/socket.c | 6 +-- net/socket.c | 3 +- net/sunrpc/svc.c | 18 ++++----- net/sunrpc/svc_xprt.c | 13 ++---- net/sunrpc/svcsock.c | 28 +++++-------- net/wireless/lib80211_crypt_ccmp.c | 33 +++++---------- net/wireless/lib80211_crypt_tkip.c | 50 ++++++++---------------- 77 files changed, 329 insertions(+), 490 deletions(-)
Signature · 1 line
1.7.8.111.gad25c.dirty
RFC 1/2 net: Add net_ratelimited_function and net_<level>_ratelimited macros
__ratelimit() can be considered an inverted bool test because it returns true when not ratelimited. Several tests in the kernel tree use this __ratelimit() function incorrectly.
No net_ratelimit uses are incorrect currently though.
Most uses of net_ratelimit are to log something via printk or pr_<level>.
In order to minimize the uses of net_ratelimit, and to start standardizing the code style used for __ratelimit() and net_ratelimit(), add a net_ratelimited_function() macro and net_<level>_ratelimited() logging macros similar to pr_<level>_ratelimited that use the global net_ratelimit instead of a static per call site "struct ratelimit_state".
--- include/linux/net.h | 23 +++++++++++++++++++++++ 1 files changed, 23 insertions(+), 0 deletions(-)
include/linux/net.h +23 -0
@@ -250,6 +250,29 @@ extern struct socket *sockfd_lookup(int fd, int *err);#define sockfd_put (sock) fput(sock->file)extern int net_ratelimit (void ); +#define net_ratelimited_function (function, ...) \ +do { \ + if (net_ratelimit()) \ + function(__VA_ARGS__); \ +} while (0) + +#define net_emerg_ratelimited (fmt, ...) \ + net_ratelimited_function(pr_emerg, fmt, ##__VA_ARGS__) +#define net_alert_ratelimited (fmt, ...) \ + net_ratelimited_function(pr_alert, fmt, ##__VA_ARGS__) +#define net_crit_ratelimited (fmt, ...) \ + net_ratelimited_function(pr_crit, fmt, ##__VA_ARGS__) +#define net_err_ratelimited (fmt, ...) \ + net_ratelimited_function(pr_err, fmt, ##__VA_ARGS__) +#define net_notice_ratelimited (fmt, ...) \ + net_ratelimited_function(pr_notice, fmt, ##__VA_ARGS__) +#define net_warn_ratelimited (fmt, ...) \ + net_ratelimited_function(pr_warn, fmt, ##__VA_ARGS__) +#define net_info_ratelimited (fmt, ...) \ + net_ratelimited_function(pr_info, fmt, ##__VA_ARGS__) +#define net_dbg_ratelimited (fmt, ...) \ + net_ratelimited_function(pr_debug, fmt, ##__VA_ARGS__) +#define net_random () random32()#define net_srandom (seed) srandom32((__force u32)seed)
Signature · 1 line
1.7.8.111.gad25c.dirty
RFC 2/2 net: Convert net_ratelimit uses to net_<level>_ratelimited
In reply to Joe PerchesStandardize the net core ratelimited logging functions.
Coalesce formats, align arguments.
Change a printk then vprintk sequence to use printf extension %pV.
--- net/atm/ioctl.c | 8 +-- net/caif/caif_socket.c | 10 ++--- net/core/dev.c | 30 ++++++-------- net/core/pktgen.c | 7 +-- net/core/rtnetlink.c | 8 +-- net/core/skbuff.c | 11 ++--- net/decnet/dn_fib.c | 5 +- net/decnet/dn_neigh.c | 22 ++++------- net/decnet/dn_nsp_in.c | 11 +++-- net/decnet/dn_nsp_out.c | 5 +- net/decnet/dn_route.c | 15 ++----- net/decnet/dn_table.c | 4 +- net/decnet/netfilter/dn_rtmsg.c | 3 +- net/ipv4/icmp.c | 20 ++++----- net/ipv4/ip_fragment.c | 3 +- net/ipv4/ip_input.c | 13 +++--- net/ipv4/ip_options.c | 6 ++- net/ipv4/ip_output.c | 4 +- net/ipv4/ipconfig.c | 11 ++--- net/ipv4/ipmr.c | 3 +- net/ipv4/netfilter/arp_tables.c | 5 +- net/ipv4/netfilter/ip_tables.c | 3 +- net/ipv4/netfilter/ipt_CLUSTERIP.c | 3 +- net/ipv4/netfilter/nf_nat_h323.c | 26 ++++-------- net/ipv4/netfilter/nf_nat_snmp_basic.c | 8 +-- net/ipv4/route.c | 40 ++++++++----------- net/ipv4/tcp.c | 14 +++--- net/ipv4/tcp_input.c | 7 +-- net/ipv4/tcp_ipv4.c | 11 ++--- net/ipv4/tcp_output.c | 3 +- net/ipv6/addrconf.c | 17 +++----- net/ipv6/ah6.c | 4 +- net/ipv6/ip6_output.c | 3 +- net/ipv6/ip6_tunnel.c | 33 +++++---------- net/ipv6/ip6mr.c | 3 +- net/ipv6/netfilter/ip6_tables.c | 3 +- net/ipv6/netfilter/ip6t_REJECT.c | 6 +-- net/ipv6/netfilter/ip6table_mangle.c | 3 +- net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c | 3 +- net/ipv6/netfilter/nf_conntrack_reasm.c | 7 +-- net/ipv6/reassembly.c | 6 +-- net/ipv6/route.c | 12 +---- net/ipv6/sit.c | 6 +-- net/ipv6/tcp_ipv6.c | 10 ++--- net/llc/af_llc.c | 7 +-- net/mac80211/agg-rx.c | 13 ++---- net/mac80211/ht.c | 8 ++-- net/mac80211/ibss.c | 10 ++--- net/mac80211/mlme.c | 12 ++--- net/mac80211/rx.c | 11 ++--- net/mac80211/tx.c | 17 +++----- net/netfilter/nf_conntrack_amanda.c | 3 +- net/netfilter/nf_conntrack_core.c | 5 +-- net/netfilter/nf_conntrack_expect.c | 4 +- net/netfilter/nf_conntrack_h323_main.c | 9 +--- net/netfilter/nf_conntrack_irc.c | 8 +-- net/netfilter/nfnetlink_queue.c | 9 +--- net/netfilter/xt_TCPMSS.c | 10 ++--- net/netfilter/xt_hashlimit.c | 3 +- net/openvswitch/vport-netdev.c | 6 +- net/sched/act_ipt.c | 7 +-- net/sched/act_mirred.c | 5 +- net/sched/cls_u32.c | 3 +- net/sched/ematch.c | 4 +- net/sched/sch_api.c | 10 ++--- net/sched/sch_generic.c | 11 ++--- net/sched/sch_gred.c | 12 ++---- net/sctp/sm_sideeffect.c | 5 +- net/sctp/sm_statefuns.c | 18 ++++----- net/sctp/socket.c | 6 +-- net/socket.c | 3 +- net/sunrpc/svc.c | 18 ++++----- net/sunrpc/svc_xprt.c | 13 ++---- net/sunrpc/svcsock.c | 28 +++++-------- net/wireless/lib80211_crypt_ccmp.c | 33 +++++---------- net/wireless/lib80211_crypt_tkip.c | 50 ++++++++---------------- 76 files changed, 306 insertions(+), 490 deletions(-)
net/atm/ioctl.c +3 -5
@@ -97,9 +97,8 @@ static int do_vcc_ioctl(struct socket *sock, unsigned int cmd, error =sock_get_timestampns (sk, argp); goto done;case ATM_SETSC : -if (net_ratelimit ()) -pr_warning ("ATM_SETSC is obsolete; used by %s:%d\n" , - current->comm,task_pid_nr (current)); +net_warn_ratelimited ("ATM_SETSC is obsolete; used by %s:%d\n" , + current->comm,task_pid_nr (current)); error =0 ; goto done;case ATMSIGD_CTRL :
@@ -123,8 +122,7 @@ static int do_vcc_ioctl(struct socket *sock, unsigned int cmd,work for 32-bit userspace. TBH I don't really want to think about it at all. dwmw2. */ if (compat) { -if (net_ratelimit ()) -pr_warning ("32-bit task cannot be atmsigd\n" ); +net_warn_ratelimited ("32-bit task cannot be atmsigd\n" ); error = -EINVAL ; goto done; }
net/caif/caif_socket.c +4 -6
@@ -131,10 +131,9 @@ static int caif_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)if (atomic_read (&sk->sk_rmem_alloc) + skb->truesize > (unsigned int )sk->sk_rcvbuf &&rx_flow_is_on (cf_sk)) { -if (net_ratelimit ()) -pr_debug ("sending flow OFF (queue len = %d %d)\n" , -atomic_read (&cf_sk->sk.sk_rmem_alloc), -sk_rcvbuf_lowwater (cf_sk)); +net_dbg_ratelimited ("sending flow OFF (queue len = %d %d)\n" , +atomic_read (&cf_sk->sk.sk_rmem_alloc), +sk_rcvbuf_lowwater (cf_sk));set_rx_flow_off (cf_sk);caif_flow_ctrl (sk,CAIF_MODEMCMD_FLOW_OFF_REQ ); }
@@ -144,8 +143,7 @@ static int caif_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)return err;if (!sk_rmem_schedule (sk, skb->truesize) &&rx_flow_is_on (cf_sk)) {set_rx_flow_off (cf_sk); -if (net_ratelimit ()) -pr_debug ("sending flow OFF due to rmem_schedule\n" ); +net_dbg_ratelimited ("sending flow OFF due to rmem_schedule\n" );caif_flow_ctrl (sk,CAIF_MODEMCMD_FLOW_OFF_REQ ); } skb->dev =NULL ;
net/core/dev.c +12 -18
@@ -1673,10 +1673,9 @@ static void dev_queue_xmit_nit(struct sk_buff *skb, struct net_device *dev)if (skb_network_header (skb2) < skb2->data || skb2->network_header > skb2->tail) { -if (net_ratelimit ()) -pr_crit ("protocol %04x is buggy, dev %s\n" , -ntohs (skb2->protocol), - dev->name); +net_crit_ratelimited ("protocol %04x is buggy, dev %s\n" , +ntohs (skb2->protocol), + dev->name);skb_reset_network_header (skb2); }
@@ -2343,11 +2342,9 @@ EXPORT_SYMBOL(__skb_tx_hash);static inline u16 dev_cap_txqueue (struct net_device *dev,u16 queue_index) {if (unlikely (queue_index >= dev->real_num_tx_queues)) { -if (net_ratelimit ()) { -pr_warn ("%s selects TX queue %d, but real number of TX queues is %d\n" , - dev->name, queue_index, - dev->real_num_tx_queues); - } +net_warn_ratelimited ("%s selects TX queue %d, but real number of TX queues is %d\n" , + dev->name, queue_index, + dev->real_num_tx_queues);return 0 ; }return queue_index;
@@ -2589,17 +2586,15 @@ int dev_queue_xmit(struct sk_buff *skb) } }HARD_TX_UNLOCK (dev, txq); -if (net_ratelimit ()) -pr_crit ("Virtual device %s asks to queue packet!\n" , - dev->name); +net_crit_ratelimited ("Virtual device %s asks to queue packet!\n" , + dev->name); }else {/* Recursion is detected! It is possible, * unfortunately */ recursion_alert: -if (net_ratelimit ()) -pr_crit ("Dead loop on virtual device %s, fix it urgently!\n" , - dev->name); +net_crit_ratelimited ("Dead loop on virtual device %s, fix it urgently!\n" , + dev->name); } }
@@ -3080,9 +3075,8 @@ static int ing_filter(struct sk_buff *skb, struct netdev_queue *rxq)struct Qdisc *q;if (unlikely (MAX_RED_LOOP < ttl++)) { -if (net_ratelimit ()) -pr_warn ("Redir loop detected Dropping packet (%d->%d)\n" , - skb->skb_iif, dev->ifindex); +net_warn_ratelimited ("Redir loop detected Dropping packet (%d->%d)\n" , + skb->skb_iif, dev->ifindex);return TC_ACT_SHOT ; }
net/core/pktgen.c +3 -4
@@ -2934,8 +2934,7 @@ static struct sk_buff *fill_packet_ipv6(struct net_device *odev,if (datalen <sizeof (struct pktgen_hdr )) { datalen =sizeof (struct pktgen_hdr ); -if (net_ratelimit ()) -pr_info ("increased datalen to %d\n" , datalen); +net_info_ratelimited ("increased datalen to %d\n" , datalen); } udph->source =htons (pkt_dev->cur_udp_src);
@@ -3365,8 +3364,8 @@ static void pktgen_xmit(struct pktgen_dev *pkt_dev) pkt_dev->errors++;break ;default :/* Drivers are not supposed to return other values! */ -if (net_ratelimit ()) -pr_info ("%s xmit error: %d\n" , pkt_dev->odevname, ret); +net_info_ratelimited ("%s xmit error: %d\n" , + pkt_dev->odevname, ret); pkt_dev->errors++;/* fallthru */ case NETDEV_TX_LOCKED :
net/core/rtnetlink.c +3 -5
@@ -1524,11 +1524,9 @@ static int do_setlink(struct net_device *dev, struct ifinfomsg *ifm, err =0 ; errout: -if (err <0 && modified &&net_ratelimit ()) -printk (KERN_WARNING "A link change request failed with " -"some changes committed already. Interface %s may " -"have been left with an inconsistent configuration, " -"please check.\n" , dev->name); +if (err <0 && modified) +net_warn_ratelimited ("A link change request failed with some changes committed already. Interface %s may have been left with an inconsistent configuration, please check.\n" , + dev->name);if (send_addr_notify)call_netdevice_notifiers (NETDEV_CHANGEADDR , dev);
net/core/skbuff.c +4 -7
@@ -3299,10 +3299,8 @@ bool skb_partial_csum_set(struct sk_buff *skb, u16 start, u16 off) {if (unlikely (start >skb_headlen (skb)) ||unlikely ((int )start + off >skb_headlen (skb) -2 )) { -if (net_ratelimit ()) -printk (KERN_WARNING -"bad partial csum: csum=%u/%u len=%u\n" , - start, off,skb_headlen (skb)); +net_warn_ratelimited ("bad partial csum: csum=%u/%u len=%u\n" , + start, off,skb_headlen (skb));return false; } skb->ip_summed =CHECKSUM_PARTIAL ;
@@ -3314,8 +3312,7 @@ EXPORT_SYMBOL_GPL(skb_partial_csum_set);void __skb_warn_lro_forwarding (const struct sk_buff *skb) { -if (net_ratelimit ()) -pr_warning ("%s: received packets cannot be forwarded" -" while LRO is enabled\n" , skb->dev->name); +net_warn_ratelimited ("%s: received packets cannot be forwarded while LRO is enabled\n" , + skb->dev->name); }EXPORT_SYMBOL (__skb_warn_lro_forwarding);
net/decnet/dn_fib.c +2 -3
@@ -438,9 +438,8 @@ int dn_fib_semantic_match(int type, struct dn_fib_info *fi, const struct flowidn res->fi =NULL ;return 1 ;default : -if (net_ratelimit ()) -printk ("DECnet: impossible routing event : dn_fib_semantic_match type=%d\n" , - type); +net_err_ratelimited ("DECnet: impossible routing event : dn_fib_semantic_match type=%d\n" , + type); res->fi =NULL ;return -EINVAL ; }
net/decnet/dn_neigh.c +8 -14
@@ -162,8 +162,8 @@ static int dn_neigh_construct(struct neighbour *neigh)else if ((dev->type =ARPHRD_ETHER ) || (dev->type =ARPHRD_LOOPBACK ))dn_dn2eth (neigh->ha, dn->addr);else { -if (net_ratelimit ()) -printk (KERN_DEBUG "Trying to create neigh for hw %d\n" , dev->type); +net_dbg_ratelimited ("Trying to create neigh for hw %d\n" , + dev->type);return -EINVAL ; }
@@ -236,15 +236,13 @@ static int dn_long_output(struct neighbour *neigh, struct sk_buff *skb)if (skb_headroom (skb) < headroom) {struct sk_buff *skb2 =skb_realloc_headroom (skb, headroom);if (skb2 =NULL ) { -if (net_ratelimit ()) -printk (KERN_CRIT "dn_long_output: no memory\n" ); +net_crit_ratelimited ("dn_long_output: no memory\n" );kfree_skb (skb);return -ENOBUFS ; }kfree_skb (skb); skb = skb2; -if (net_ratelimit ()) -printk (KERN_INFO "dn_long_output: Increasing headroom\n" ); +net_info_ratelimited ("dn_long_output: Increasing headroom\n" ); } data =skb_push (skb,sizeof (struct dn_long_packet ) +3 );
@@ -281,15 +279,13 @@ static int dn_short_output(struct neighbour *neigh, struct sk_buff *skb)if (skb_headroom (skb) < headroom) {struct sk_buff *skb2 =skb_realloc_headroom (skb, headroom);if (skb2 =NULL ) { -if (net_ratelimit ()) -printk (KERN_CRIT "dn_short_output: no memory\n" ); +net_crit_ratelimited ("dn_short_output: no memory\n" );kfree_skb (skb);return -ENOBUFS ; }kfree_skb (skb); skb = skb2; -if (net_ratelimit ()) -printk (KERN_INFO "dn_short_output: Increasing headroom\n" ); +net_info_ratelimited ("dn_short_output: Increasing headroom\n" ); } data =skb_push (skb,sizeof (struct dn_short_packet ) +2 );
@@ -322,15 +318,13 @@ static int dn_phase3_output(struct neighbour *neigh, struct sk_buff *skb)if (skb_headroom (skb) < headroom) {struct sk_buff *skb2 =skb_realloc_headroom (skb, headroom);if (skb2 =NULL ) { -if (net_ratelimit ()) -printk (KERN_CRIT "dn_phase3_output: no memory\n" ); +net_crit_ratelimited ("dn_phase3_output: no memory\n" );kfree_skb (skb);return -ENOBUFS ; }kfree_skb (skb); skb = skb2; -if (net_ratelimit ()) -printk (KERN_INFO "dn_phase3_output: Increasing headroom\n" ); +net_info_ratelimited ("dn_phase3_output: Increasing headroom\n" ); } data =skb_push (skb,sizeof (struct dn_short_packet ) +2 );
net/decnet/dn_nsp_in.c +7 -4
@@ -80,12 +80,15 @@ extern int decnet_log_martians;static void dn_log_martian (struct sk_buff *skb,const char *msg) { -if (decnet_log_martians &&net_ratelimit ()) { +if (decnet_log_martians) {char *devname = skb->dev ? skb->dev->name :"???" ;struct dn_skb_cb *cb =DN_SKB_CB (skb); -printk (KERN_INFO "DECnet: Martian packet (%s) dev=%s src=0x%04hx dst=0x%04hx srcport=0x%04hx dstport=0x%04hx\n" , - msg, devname,le16_to_cpu (cb->src),le16_to_cpu (cb->dst), -le16_to_cpu (cb->src_port),le16_to_cpu (cb->dst_port)); +net_info_ratelimited ("DECnet: Martian packet (%s) dev=%s src=0x%04hx dst=0x%04hx srcport=0x%04hx dstport=0x%04hx\n" , + msg, devname, +le16_to_cpu (cb->src), +le16_to_cpu (cb->dst), +le16_to_cpu (cb->src_port), +le16_to_cpu (cb->dst_port)); } }
net/decnet/dn_nsp_out.c +2 -3
@@ -1,4 +1,3 @@ -/* * DECnet An implementation of the DECnet protocol suite for the LINUX * operating system. DECnet is implemented using the BSD Socket
@@ -554,8 +553,8 @@ static __inline__ void dn_nsp_do_disc(struct sock *sk, unsigned char msgflg,unsigned char *msg;if ((dst =NULL ) || (rem =0 )) { -if (net_ratelimit ()) -printk (KERN_DEBUG "DECnet: dn_nsp_do_disc: BUG! Please report this to [email protected] rem=%u dst=%p\n" ,le16_to_cpu (rem), dst); +net_dbg_ratelimited ("DECnet: dn_nsp_do_disc: BUG! Please report this to [email protected] rem=%u dst=%p\n" , +le16_to_cpu (rem), dst);return ; }
net/decnet/dn_route.c +5 -10
@@ -748,8 +748,7 @@ static int dn_output(struct sk_buff *skb) dn_to_neigh_output); error: -if (net_ratelimit ()) -printk (KERN_DEBUG "dn_output: This should not happen\n" ); +net_dbg_ratelimited ("dn_output: This should not happen\n" );kfree_skb (skb);
@@ -807,12 +806,10 @@ drop:*/ static int dn_rt_bug (struct sk_buff *skb) { -if (net_ratelimit ()) { -struct dn_skb_cb *cb =DN_SKB_CB (skb); +struct dn_skb_cb *cb =DN_SKB_CB (skb); -printk (KERN_DEBUG "dn_rt_bug: skb from:%04x to:%04x\n" , -le16_to_cpu (cb->src),le16_to_cpu (cb->dst)); - } +net_dbg_ratelimited ("dn_rt_bug: skb from:%04x to:%04x\n" , +le16_to_cpu (cb->src),le16_to_cpu (cb->dst));kfree_skb (skb);
@@ -1327,9 +1324,7 @@ static int dn_route_input_slow(struct sk_buff *skb) out_dev =DN_FIB_RES_DEV (res);if (out_dev =NULL ) { -if (net_ratelimit ()) -printk (KERN_CRIT "Bug in dn_route_input_slow() " -"No output device\n" ); +net_crit_ratelimited ("Bug in dn_route_input_slow() No output device\n" ); goto e_inval; }dev_hold (out_dev);
net/decnet/dn_table.c +2 -2
@@ -836,8 +836,8 @@ struct dn_fib_table *dn_fib_get_table(u32 n, int create)if (!create)return NULL ; -if (in_interrupt () &&net_ratelimit ()) { -printk (KERN_DEBUG "DECnet: BUG! Attempt to create routing table from interrupt\n" ); +if (in_interrupt ()) { +net_dbg_ratelimited ("DECnet: BUG! Attempt to create routing table from interrupt\n" );return NULL ; }
net/decnet/netfilter/dn_rtmsg.c +1 -2
@@ -57,8 +57,7 @@ nlmsg_failure:if (skb)kfree_skb (skb); *errp = -ENOMEM ; -if (net_ratelimit ()) -printk (KERN_ERR "dn_rtmsg: error creating netlink message\n" ); +net_err_ratelimited ("dn_rtmsg: error creating netlink message\n" );return NULL ; }
net/ipv4/icmp.c +9 -11
@@ -713,11 +713,10 @@ static void icmp_unreach(struct sk_buff *skb)if (!net->ipv4.sysctl_icmp_ignore_bogus_error_responses &&inet_addr_type (net, iph->daddr) =RTN_BROADCAST ) { -if (net_ratelimit ()) -pr_warn ("%pI4 sent an invalid ICMP type %u, code %u error to a broadcast: %pI4 on %s\n" , - &ip_hdr (skb)->saddr, - icmph->type, icmph->code, - &iph->daddr, skb->dev->name); +net_warn_ratelimited ("%pI4 sent an invalid ICMP type %u, code %u error to a broadcast: %pI4 on %s\n" , + &ip_hdr (skb)->saddr, + icmph->type, icmph->code, + &iph->daddr, skb->dev->name); goto out; }
@@ -906,8 +905,7 @@ out_err:static void icmp_address (struct sk_buff *skb) {#if 0 -if (net_ratelimit ()) -printk (KERN_DEBUG "a guy asks for address mask. Who is it?\n" ); +net_dbg_ratelimited ("a guy asks for address mask. Who is it?\n" );#endif }
@@ -943,10 +941,10 @@ static void icmp_address_reply(struct sk_buff *skb) inet_ifa_match(ip_hdr(skb)->saddr, ifa))break ; } -if (!ifa &&net_ratelimit ()) { -pr_info ("Wrong address mask %pI4 from %s/%pI4\n" , - mp, dev->name, &ip_hdr (skb)->saddr); - } +if (!ifa) +net_info_ratelimited ("Wrong address mask %pI4 from %s/%pI4\n" , + mp, + dev->name, &ip_hdr (skb)->saddr); } }
net/ipv4/ip_fragment.c +1 -2
@@ -644,8 +644,7 @@ out_nomem: err = -ENOMEM ; goto out_fail; out_oversize: -if (net_ratelimit ()) -pr_info ("Oversized IP packet from %pI4\n" , &qp->saddr); +net_info_ratelimited ("Oversized IP packet from %pI4\n" , &qp->saddr); out_fail:IP_INC_STATS_BH (net,IPSTATS_MIB_REASMFAILS );return err;
net/ipv4/ip_input.c +6 -7
@@ -210,9 +210,8 @@ static int ip_local_deliver_finish(struct sk_buff *skb)int ret;if (!net_eq (net, &init_net) && !ipprot->netns_ok) { -if (net_ratelimit ()) -printk ("%s: proto %d isn't netns-ready\n" , - __func__, protocol); +net_info_ratelimited ("%s: proto %d isn't netns-ready\n" , + __func__, protocol);kfree_skb (skb); goto out; }
@@ -298,10 +297,10 @@ static inline bool ip_rcv_options(struct sk_buff *skb)if (in_dev) {if (!IN_DEV_SOURCE_ROUTE (in_dev)) { -if (IN_DEV_LOG_MARTIANS (in_dev) && -net_ratelimit ()) -pr_info ("source route option %pI4 -> %pI4\n" , - &iph->saddr, &iph->daddr); +if (IN_DEV_LOG_MARTIANS (in_dev)) +net_info_ratelimited ("source route option %pI4 -> %pI4\n" , + &iph->saddr, + &iph->daddr); goto drop; } }
net/ipv4/ip_options.c +4 -2
@@ -578,8 +578,10 @@ void ip_forward_options(struct sk_buff *skb)ip_hdr (skb)->daddr = opt->nexthop;ip_rt_get_source (&optptr[srrptr-1 ], skb, rt); optptr[2 ] = srrptr+4 ; - }else if (net_ratelimit ()) -pr_crit ("%s(): Argh! Destination lost!\n" , __func__); + }else { +net_crit_ratelimited ("%s(): Argh! Destination lost!\n" , + __func__); + }if (opt->ts_needaddr) { optptr = raw + opt->ts;ip_rt_get_source (&optptr[optptr[2 ]-9 ], skb, rt);
net/ipv4/ip_output.c +2 -2
@@ -214,8 +214,8 @@ static inline int ip_finish_output2(struct sk_buff *skb) }rcu_read_unlock (); -if (net_ratelimit ()) -printk (KERN_DEBUG "ip_finish_output2: No header cache and no neighbour!\n" ); +net_dbg_ratelimited ("%s: No header cache and no neighbour!\n" , + __func__);kfree_skb (skb);return -EINVAL ; }
net/ipv4/ipconfig.c +4 -7
@@ -955,8 +955,7 @@ static int __init ic_bootp_recv(struct sk_buff *skb, struct net_device *dev, str/* Fragments are not supported */ if (ip_is_fragment (h)) { -if (net_ratelimit ()) -pr_err ("DHCP/BOOTP: Ignoring fragmented reply\n" ); +net_err_ratelimited ("DHCP/BOOTP: Ignoring fragmented reply\n" ); goto drop; }
@@ -1004,16 +1003,14 @@ static int __init ic_bootp_recv(struct sk_buff *skb, struct net_device *dev, str/* Is it a reply to our BOOTP request? */ if (b->op !=BOOTP_REPLY || b->xid != d->xid) { -if (net_ratelimit ()) -pr_err ("DHCP/BOOTP: Reply not for us, op[%x] xid[%x]\n" , - b->op, b->xid); +net_err_ratelimited ("DHCP/BOOTP: Reply not for us, op[%x] xid[%x]\n" , + b->op, b->xid); goto drop_unlock; }/* Is it a reply for the device we are configuring? */ if (b->xid != ic_dev_xid) { -if (net_ratelimit ()) -pr_err ("DHCP/BOOTP: Ignoring delayed packet\n" ); +net_err_ratelimited ("DHCP/BOOTP: Ignoring delayed packet\n" ); goto drop_unlock; }
net/ipv4/ipmr.c +1 -2
@@ -949,8 +949,7 @@ static int ipmr_cache_report(struct mr_table *mrt, ret =sock_queue_rcv_skb (mroute_sk, skb);rcu_read_unlock ();if (ret <0 ) { -if (net_ratelimit ()) -pr_warn ("mroute: pending queue full, dropping entries\n" ); +net_warn_ratelimited ("mroute: pending queue full, dropping entries\n" );kfree_skb (skb); }
net/ipv4/netfilter/arp_tables.c +2 -3
@@ -221,9 +221,8 @@ static inline int arp_checkentry(const struct arpt_arp *arp)static unsigned int arpt_error (struct sk_buff *skb,const struct xt_action_param *par) { -if (net_ratelimit ()) -pr_err ("arp_tables: error: '%s'\n" , - (const char *)par->targinfo); +net_err_ratelimited ("arp_tables: error: '%s'\n" , + (const char *)par->targinfo);return NF_DROP ; }
net/ipv4/netfilter/ip_tables.c +1 -2
@@ -153,8 +153,7 @@ ip_checkentry(const struct ipt_ip *ip)static unsigned int ipt_error (struct sk_buff *skb,const struct xt_action_param *par) { -if (net_ratelimit ()) -pr_info ("error: `%s'\n" , (const char *)par->targinfo); +net_info_ratelimited ("error: `%s'\n" , (const char *)par->targinfo);return NF_DROP ; }
net/ipv4/netfilter/ipt_CLUSTERIP.c +1 -2
@@ -246,8 +246,7 @@ clusterip_hashfn(const struct sk_buff *skb, dport = ports[1 ]; } }else { -if (net_ratelimit ()) -pr_info ("unknown protocol %u\n" , iph->protocol); +net_info_ratelimited ("unknown protocol %u\n" , iph->protocol); }switch (config->hash_mode) {
net/ipv4/netfilter/nf_nat_h323.c +8 -18
@@ -42,9 +42,7 @@ static int set_addr(struct sk_buff *skb,if (!nf_nat_mangle_tcp_packet (skb, ct, ctinfo, addroff,sizeof (buf), (char *) &buf,sizeof (buf))) { -if (net_ratelimit ()) -pr_notice ("nf_nat_h323: nf_nat_mangle_tcp_packet" -" error\n" ); +net_notice_ratelimited ("nf_nat_h323: nf_nat_mangle_tcp_packet error\n" );return -1 ; }
@@ -58,9 +56,7 @@ static int set_addr(struct sk_buff *skb,if (!nf_nat_mangle_udp_packet (skb, ct, ctinfo, addroff,sizeof (buf), (char *) &buf,sizeof (buf))) { -if (net_ratelimit ()) -pr_notice ("nf_nat_h323: nf_nat_mangle_udp_packet" -" error\n" ); +net_notice_ratelimited ("nf_nat_h323: nf_nat_mangle_udp_packet error\n" );return -1 ; }/* nf_nat_mangle_udp_packet uses skb_make_writable() to copy
@@ -214,8 +210,7 @@ static int nat_rtp_rtcp(struct sk_buff *skb, struct nf_conn *ct,/* Run out of expectations */ if (i >=H323_RTP_CHANNEL_MAX ) { -if (net_ratelimit ()) -pr_notice ("nf_nat_h323: out of expectations\n" ); +net_notice_ratelimited ("nf_nat_h323: out of expectations\n" );return 0 ; }
@@ -244,8 +239,7 @@ static int nat_rtp_rtcp(struct sk_buff *skb, struct nf_conn *ct, }if (nated_port =0 ) {/* No port available */ -if (net_ratelimit ()) -pr_notice ("nf_nat_h323: out of RTP ports\n" ); +net_notice_ratelimited ("nf_nat_h323: out of RTP ports\n" );return 0 ; }
@@ -308,8 +302,7 @@ static int nat_t120(struct sk_buff *skb, struct nf_conn *ct, }if (nated_port =0 ) {/* No port available */ -if (net_ratelimit ()) -pr_notice ("nf_nat_h323: out of TCP ports\n" ); +net_notice_ratelimited ("nf_nat_h323: out of TCP ports\n" );return 0 ; }
@@ -365,8 +358,7 @@ static int nat_h245(struct sk_buff *skb, struct nf_conn *ct, }if (nated_port =0 ) {/* No port available */ -if (net_ratelimit ()) -pr_notice ("nf_nat_q931: out of TCP ports\n" ); +net_notice_ratelimited ("nf_nat_q931: out of TCP ports\n" );return 0 ; }
@@ -456,8 +448,7 @@ static int nat_q931(struct sk_buff *skb, struct nf_conn *ct, }if (nated_port =0 ) {/* No port available */ -if (net_ratelimit ()) -pr_notice ("nf_nat_ras: out of TCP ports\n" ); +net_notice_ratelimited ("nf_nat_ras: out of TCP ports\n" );return 0 ; }
@@ -545,8 +536,7 @@ static int nat_callforwarding(struct sk_buff *skb, struct nf_conn *ct, }if (nated_port =0 ) {/* No port available */ -if (net_ratelimit ()) -pr_notice ("nf_nat_q931: out of TCP ports\n" ); +net_notice_ratelimited ("nf_nat_q931: out of TCP ports\n" );return 0 ; }
net/ipv4/netfilter/nf_nat_snmp_basic.c +3 -5
@@ -1206,8 +1206,7 @@ static int snmp_translate(struct nf_conn *ct,if (!snmp_parse_mangle ((unsigned char *)udph +sizeof (struct udphdr ), paylen, &map, &udph->check)) { -if (net_ratelimit ()) -printk (KERN_WARNING "bsalg: parser failed\n" ); +net_warn_ratelimited ("bsalg: parser failed\n" );return NF_DROP ; }return NF_ACCEPT ;
@@ -1241,9 +1240,8 @@ static int help(struct sk_buff *skb, unsigned int protoff,* can mess around with the payload. */ if (ntohs (udph->len) != skb->len - (iph->ihl <<2 )) { -if (net_ratelimit ()) -printk (KERN_WARNING "SNMP: dropping malformed packet src=%pI4 dst=%pI4\n" , - &iph->saddr, &iph->daddr); +net_warn_ratelimited ("SNMP: dropping malformed packet src=%pI4 dst=%pI4\n" , + &iph->saddr, &iph->daddr);return NF_DROP ; }
net/ipv4/route.c +17 -23
@@ -960,8 +960,7 @@ void rt_cache_flush_batch(struct net *net)static void rt_emergency_hash_rebuild (struct net *net) { -if (net_ratelimit ()) -pr_warn ("Route hash chain too long!\n" ); +net_warn_ratelimited ("Route hash chain too long!\n" );rt_cache_invalidate (net); }
@@ -1084,8 +1083,7 @@ static int rt_garbage_collect(struct dst_ops *ops) goto out;if (dst_entries_get_slow (&ipv4_dst_ops) < ip_rt_max_size) goto out; -if (net_ratelimit ()) -pr_warn ("dst cache overflow\n" ); +net_warn_ratelimited ("dst cache overflow\n" );RT_CACHE_STAT_INC (gc_dst_overflow);return 1 ;
@@ -1182,8 +1180,7 @@ restart:if (rt->rt_type =RTN_UNICAST ||rt_is_output_route (rt)) {int err =rt_bind_neighbour (rt);if (err) { -if (net_ratelimit ()) -pr_warn ("Neighbour table failure & not caching routes\n" ); +net_warn_ratelimited ("Neighbour table failure & not caching routes\n" );ip_rt_put (rt);return ERR_PTR (err); }
@@ -1299,8 +1296,7 @@ restart: goto restart; } -if (net_ratelimit ()) -pr_warn ("Neighbour table overflow\n" ); +net_warn_ratelimited ("Neighbour table overflow\n" );rt_drop (rt);return ERR_PTR (-ENOBUFS ); }
@@ -1503,11 +1499,11 @@ void ip_rt_redirect(__be32 old_gw, __be32 daddr, __be32 new_gw, reject_redirect:#ifdef CONFIG_IP_ROUTE_VERBOSE -if (IN_DEV_LOG_MARTIANS (in_dev) &&net_ratelimit ()) -pr_info ("Redirect from %pI4 on %s about %pI4 ignored\n" -" Advised path = %pI4 -> %pI4\n" , - &old_gw, dev->name, &new_gw, - &saddr, &daddr); +if (IN_DEV_LOG_MARTIANS (in_dev)) +net_info_ratelimited ("Redirect from %pI4 on %s about %pI4 ignored\n" +" Advised path = %pI4 -> %pI4\n" , + &old_gw, dev->name, &new_gw, + &saddr, &daddr);#endif ; }
@@ -1617,11 +1613,10 @@ void ip_rt_send_redirect(struct sk_buff *skb) ++peer->rate_tokens;#ifdef CONFIG_IP_ROUTE_VERBOSE if (log_martians && - peer->rate_tokens = ip_rt_redirect_number && -net_ratelimit ()) -pr_warn ("host %pI4/if%d ignores redirects for %pI4 to %pI4\n" , - &ip_hdr (skb)->saddr, rt->rt_iif, - &rt->rt_dst, &rt->rt_gateway); + peer->rate_tokens = ip_rt_redirect_number) +net_warn_ratelimited ("host %pI4/if%d ignores redirects for %pI4 to %pI4\n" , + &ip_hdr (skb)->saddr, rt->rt_iif, + &rt->rt_dst, &rt->rt_gateway);#endif } }
@@ -2135,8 +2130,7 @@ static int __mkroute_input(struct sk_buff *skb,/* get a working reference to the output device */ out_dev =__in_dev_get_rcu (FIB_RES_DEV (*res));if (out_dev =NULL ) { -if (net_ratelimit ()) -pr_crit ("Bug in ip_route_input_slow(). Please report.\n" ); +net_crit_ratelimited ("Bug in ip_route_input_slow(). Please report.\n" );return -EINVAL ; }
@@ -2407,9 +2401,9 @@ no_route: martian_destination:RT_CACHE_STAT_INC (in_martian_dst);#ifdef CONFIG_IP_ROUTE_VERBOSE -if (IN_DEV_LOG_MARTIANS (in_dev) &&net_ratelimit ()) -pr_warn ("martian destination %pI4 from %pI4, dev %s\n" , - &daddr, &saddr, dev->name); +if (IN_DEV_LOG_MARTIANS (in_dev)) +net_warn_ratelimited ("martian destination %pI4 from %pI4, dev %s\n" , + &daddr, &saddr, dev->name);#endif e_hostunreach:
net/ipv4/tcp.c +7 -7
@@ -1745,9 +1745,9 @@ do_prequeue: }if ((flags &MSG_PEEK ) && (peek_seq - copied - urg_hole != tp->copied_seq)) { -if (net_ratelimit ()) -printk (KERN_DEBUG "TCP(%s:%d): Application bug, race in MSG_PEEK.\n" , - current->comm,task_pid_nr (current)); +net_dbg_ratelimited ("TCP(%s:%d): Application bug, race in MSG_PEEK\n" , + current->comm, +task_pid_nr (current)); peek_seq = tp->copied_seq; }continue ;
@@ -2002,10 +2002,10 @@ bool tcp_check_oom(struct sock *sk, int shift) too_many_orphans =tcp_too_many_orphans (sk, shift); out_of_socket_memory =tcp_out_of_memory (sk); -if (too_many_orphans &&net_ratelimit ()) -pr_info ("too many orphaned sockets\n" ); -if (out_of_socket_memory &&net_ratelimit ()) -pr_info ("out of memory -- consider tuning tcp_mem\n" ); +if (too_many_orphans) +net_info_ratelimited ("too many orphaned sockets\n" ); +if (out_of_socket_memory) +net_info_ratelimited ("out of memory -- consider tuning tcp_mem\n" );return too_many_orphans || out_of_socket_memory; }
net/ipv4/tcp_input.c +3 -4
@@ -3952,10 +3952,9 @@ void tcp_parse_options(const struct sk_buff *skb, struct tcp_options_received *o__u8 snd_wscale = *(__u8 *)ptr; opt_rx->wscale_ok =1 ;if (snd_wscale >14 ) { -if (net_ratelimit ()) -pr_info ("%s: Illegal window scaling value %d >14 received\n" , - __func__, - snd_wscale); +net_info_ratelimited ("%s: Illegal window scaling value %d >14 received\n" , + __func__, + snd_wscale); snd_wscale =14 ; } opt_rx->snd_wscale = snd_wscale;
net/ipv4/tcp_ipv4.c +5 -6
@@ -1239,12 +1239,11 @@ static int tcp_v4_inbound_md5_hash(struct sock *sk, const struct sk_buff *skb) NULL, NULL, skb);if (genhash ||memcmp (hash_location, newhash,16 ) !=0 ) { -if (net_ratelimit ()) { -pr_info ("MD5 Hash failed for (%pI4, %d)->(%pI4, %d)%s\n" , - &iph->saddr,ntohs (th->source), - &iph->daddr,ntohs (th->dest), - genhash ?" tcp_v4_calc_md5_hash failed" :"" ); - } +net_info_ratelimited ("MD5 Hash failed for (%pI4, %d)->(%pI4, %d)%s\n" , + &iph->saddr,ntohs (th->source), + &iph->daddr,ntohs (th->dest), + genhash ?" tcp_v4_calc_md5_hash failed" + :"" );return 1 ; }return 0 ;
net/ipv4/tcp_output.c +1 -2
@@ -2181,8 +2181,7 @@ int tcp_retransmit_skb(struct sock *sk, struct sk_buff *skb)#if FASTRETRANS_DEBUG >0 if (TCP_SKB_CB (skb)->sacked &TCPCB_SACKED_RETRANS ) { -if (net_ratelimit ()) -printk (KERN_DEBUG "retrans_out leaked.\n" ); +net_dbg_ratelimited ("retrans_out leaked\n" ); }#endif if (!tp->retrans_out)
net/ipv6/addrconf.c +7 -10
@@ -1415,9 +1415,8 @@ void addrconf_dad_failure(struct inet6_ifaddr *ifp)return ; } -if (net_ratelimit ()) -printk (KERN_INFO "%s: IPv6 duplicate address %pI6c detected!\n" , - ifp->idev->dev->name, &ifp->addr); +net_info_ratelimited ("%s: IPv6 duplicate address %pI6c detected!\n" , + ifp->idev->dev->name, &ifp->addr);if (idev->cnf.accept_dad >1 && !idev->cnf.disable_ipv6) {struct in6_addr addr;
@@ -1847,16 +1846,15 @@ void addrconf_prefix_rcv(struct net_device *dev, u8 *opt, int len, bool sllao) prefered_lft =ntohl (pinfo->prefered);if (prefered_lft > valid_lft) { -if (net_ratelimit ()) -printk (KERN_WARNING "addrconf: prefix option has invalid lifetime\n" ); +net_warn_ratelimited ("addrconf: prefix option has invalid lifetime\n" );return ; } in6_dev =in6_dev_get (dev);if (in6_dev =NULL ) { -if (net_ratelimit ()) -printk (KERN_DEBUG "addrconf: device %s not configured\n" , dev->name); +net_dbg_ratelimited ("addrconf: device %s not configured\n" , + dev->name);return ; }
@@ -1931,9 +1929,8 @@ void addrconf_prefix_rcv(struct net_device *dev, u8 *opt, int len, bool sllao) } goto ok; } -if (net_ratelimit ()) -printk (KERN_DEBUG "IPv6 addrconf: prefix with wrong length %d\n" , - pinfo->prefix_len); +net_dbg_ratelimited ("IPv6 addrconf: prefix with wrong length %d\n" , + pinfo->prefix_len);in6_dev_put (in6_dev);return ;
net/ipv6/ah6.c +2 -2
@@ -189,8 +189,8 @@ static void ipv6_rearrange_destopt(struct ipv6hdr *iph, struct ipv6_opt_hdr *des hao = (struct ipv6_destopt_hao *)&opt[off];if (hao->length !=sizeof (hao->addr)) { -if (net_ratelimit ()) -printk (KERN_WARNING "destopt hao: invalid header length: %u\n" , hao->length); +net_warn_ratelimited ("destopt hao: invalid header length: %u\n" , + hao->length); goto bad; } final_addr = hao->addr;
net/ipv6/ip6_output.c +1 -2
@@ -252,8 +252,7 @@ int ip6_xmit(struct sock *sk, struct sk_buff *skb, struct flowi6 *fl6, dst->dev, dst_output); } -if (net_ratelimit ()) -printk (KERN_DEBUG "IPv6: sending pkt_too_big to self\n" ); +net_dbg_ratelimited ("IPv6: sending pkt_too_big to self\n" ); skb->dev = dst->dev;icmpv6_send (skb,ICMPV6_PKT_TOOBIG ,0 , mtu);IP6_INC_STATS (net,ip6_dst_idev (skb_dst (skb)),IPSTATS_MIB_FRAGFAILS );
net/ipv6/ip6_tunnel.c +11 -22
@@ -460,19 +460,14 @@ ip6_tnl_err(struct sk_buff *skb, __u8 ipproto, struct inet6_skb_parm *opt,struct ipv6_tlv_tnl_enc_lim *tel;__u32 mtu;case ICMPV6_DEST_UNREACH : -if (net_ratelimit ()) -printk (KERN_WARNING -"%s: Path to destination invalid " -"or inactive!\n" , t->parms.name); +net_warn_ratelimited ("%s: Path to destination invalid or inactive!\n" , + t->parms.name); rel_msg =1 ;break ;case ICMPV6_TIME_EXCEED :if ((*code) =ICMPV6_EXC_HOPLIMIT ) { -if (net_ratelimit ()) -printk (KERN_WARNING -"%s: Too small hop limit or " -"routing loop in tunnel!\n" , - t->parms.name); +net_warn_ratelimited ("%s: Too small hop limit or routing loop in tunnel!\n" , + t->parms.name); rel_msg =1 ; }break ;
@@ -484,17 +479,13 @@ ip6_tnl_err(struct sk_buff *skb, __u8 ipproto, struct inet6_skb_parm *opt,if (teli && teli = *info -2 ) { tel = (struct ipv6_tlv_tnl_enc_lim *) &skb->data[teli];if (tel->encap_limit =0 ) { -if (net_ratelimit ()) -printk (KERN_WARNING -"%s: Too small encapsulation " -"limit or routing loop in " -"tunnel!\n" , t->parms.name); +net_warn_ratelimited ("%s: Too small encapsulation limit or routing loop in tunnel!\n" , + t->parms.name); rel_msg =1 ; } - }else if (net_ratelimit ()) { -printk (KERN_WARNING -"%s: Recipient unable to parse tunneled " -"packet!\n " , t->parms.name); + }else { +net_warn_ratelimited ("%s: Recipient unable to parse tunneled packet!\n" , + t->parms.name); }break ;case ICMPV6_PKT_TOOBIG :
@@ -919,10 +910,8 @@ static int ip6_tnl_xmit2(struct sk_buff *skb,if (tdev = dev) { stats->collisions++; -if (net_ratelimit ()) -printk (KERN_WARNING -"%s: Local routing loop detected!\n" , - t->parms.name); +net_warn_ratelimited ("%s: Local routing loop detected!\n" , + t->parms.name); goto tx_err_dst_release; } mtu =dst_mtu (dst) -sizeof (*ipv6h);
net/ipv6/ip6mr.c +1 -2
@@ -1147,8 +1147,7 @@ static int ip6mr_cache_report(struct mr6_table *mrt, struct sk_buff *pkt,*/ ret =sock_queue_rcv_skb (mrt->mroute6_sk, skb);if (ret <0 ) { -if (net_ratelimit ()) -printk (KERN_WARNING "mroute6: pending queue full, dropping entries.\n" ); +net_warn_ratelimited ("mroute6: pending queue full, dropping entries\n" );kfree_skb (skb); }
net/ipv6/netfilter/ip6_tables.c +1 -2
@@ -181,8 +181,7 @@ ip6_checkentry(const struct ip6t_ip6 *ipv6)static unsigned int ip6t_error (struct sk_buff *skb,const struct xt_action_param *par) { -if (net_ratelimit ()) -pr_info ("error: `%s'\n" , (const char *)par->targinfo); +net_info_ratelimited ("error: `%s'\n" , (const char *)par->targinfo);return NF_DROP ; }
net/ipv6/netfilter/ip6t_REJECT.c +2 -4
@@ -114,8 +114,7 @@ static void send_reset(struct net *net, struct sk_buff *oldskb) GFP_ATOMIC);if (!nskb) { -if (net_ratelimit ()) -pr_debug ("cannot alloc skb\n" ); +net_dbg_ratelimited ("cannot alloc skb\n" );dst_release (dst);return ; }
@@ -210,8 +209,7 @@ reject_tg6(struct sk_buff *skb, const struct xt_action_param *par)send_reset (net, skb);break ;default : -if (net_ratelimit ()) -pr_info ("case %u not handled yet\n" , reject->with); +net_info_ratelimited ("case %u not handled yet\n" , reject->with);break ; }
net/ipv6/netfilter/ip6table_mangle.c +1 -2
@@ -42,8 +42,7 @@ ip6t_mangle_out(struct sk_buff *skb, const struct net_device *out)/* root is playing with raw sockets. */ if (skb->len <sizeof (struct iphdr ) ||ip_hdrlen (skb) <sizeof (struct iphdr )) { -if (net_ratelimit ()) -pr_warning ("ip6t_hook: happy cracking.\n" ); +net_warn_ratelimited ("ip6t_hook: happy cracking\n" );return NF_ACCEPT ; }#endif
net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c +1 -2
@@ -232,8 +232,7 @@ static unsigned int ipv6_conntrack_local(unsigned int hooknum, {/* root is playing with raw sockets. */ if (skb->len <sizeof (struct ipv6hdr )) { -if (net_ratelimit ()) -pr_notice ("ipv6_conntrack_local: packet too short\n" ); +net_notice_ratelimited ("ipv6_conntrack_local: packet too short\n" );return NF_ACCEPT ; }return __ipv6_conntrack_in (dev_net (out), hooknum, skb, okfn);
net/ipv6/netfilter/nf_conntrack_reasm.c +3 -4
@@ -444,12 +444,11 @@ nf_ct_frag6_reasm(struct nf_ct_frag6_queue *fq, struct net_device *dev)return head; out_oversize: -if (net_ratelimit ()) -printk (KERN_DEBUG "nf_ct_frag6_reasm: payload len = %d\n" , payload_len); +net_dbg_ratelimited ("nf_ct_frag6_reasm: payload len = %d\n" , + payload_len); goto out_fail; out_oom: -if (net_ratelimit ()) -printk (KERN_DEBUG "nf_ct_frag6_reasm: no memory for reassembly\n" ); +net_dbg_ratelimited ("nf_ct_frag6_reasm: no memory for reassembly\n" ); out_fail:return NULL ; }
net/ipv6/reassembly.c +2 -4
@@ -518,12 +518,10 @@ static int ip6_frag_reasm(struct frag_queue *fq, struct sk_buff *prev,return 1 ; out_oversize: -if (net_ratelimit ()) -printk (KERN_DEBUG "ip6_frag_reasm: payload len = %d\n" , payload_len); +net_dbg_ratelimited ("ip6_frag_reasm: payload len = %d\n" , payload_len); goto out_fail; out_oom: -if (net_ratelimit ()) -printk (KERN_DEBUG "ip6_frag_reasm: no memory for reassembly\n" ); +net_dbg_ratelimited ("ip6_frag_reasm: no memory for reassembly\n" ); out_fail:rcu_read_lock ();IP6_INC_STATS_BH (net,__in6_dev_get (dev),IPSTATS_MIB_REASMFAILS );
net/ipv6/route.c +3 -9
@@ -794,9 +794,7 @@ static struct rt6_info *rt6_alloc_cow(struct rt6_info *ort, goto retry; } -if (net_ratelimit ()) -printk (KERN_WARNING -"ipv6: Neighbour table overflow.\n" ); +net_warn_ratelimited ("ipv6: Neighbour table overflow\n" );dst_free (&rt->dst);return NULL ; }
@@ -1643,9 +1641,7 @@ void rt6_redirect(const struct in6_addr *dest, const struct in6_addr *src, rt =ip6_route_redirect (dest, src, saddr, neigh->dev);if (rt = net->ipv6.ip6_null_entry) { -if (net_ratelimit ()) -printk (KERN_DEBUG "rt6_redirect: source isn't a valid nexthop " -"for redirect target\n" ); +net_dbg_ratelimited ("rt6_redirect: source isn't a valid nexthop for redirect target\n" ); goto out; }
@@ -2106,9 +2102,7 @@ struct rt6_info *addrconf_dst_alloc(struct inet6_dev *idev,int err;if (!rt) { -if (net_ratelimit ()) -pr_warning ("IPv6: Maximum number of routes reached," -" consider increasing route/max_size.\n" ); +net_warn_ratelimited ("IPv6: Maximum number of routes reached, consider increasing route/max_size\n" );return ERR_PTR (-ENOMEM ); }
net/ipv6/sit.c +2 -4
@@ -702,8 +702,7 @@ static netdev_tx_t ipip6_tunnel_xmit(struct sk_buff *skb, neigh =dst_neigh_lookup (skb_dst (skb), &iph6->daddr);if (neigh =NULL ) { -if (net_ratelimit ()) -printk (KERN_DEBUG "sit: nexthop = NULL\n" ); +net_dbg_ratelimited ("sit: nexthop = NULL\n" ); goto tx_error; }
@@ -732,8 +731,7 @@ static netdev_tx_t ipip6_tunnel_xmit(struct sk_buff *skb, neigh =dst_neigh_lookup (skb_dst (skb), &iph6->daddr);if (neigh =NULL ) { -if (net_ratelimit ()) -printk (KERN_DEBUG "sit: nexthop = NULL\n" ); +net_dbg_ratelimited ("sit: nexthop = NULL\n" ); goto tx_error; }
net/ipv6/tcp_ipv6.c +4 -6
@@ -723,12 +723,10 @@ static int tcp_v6_inbound_md5_hash(struct sock *sk, const struct sk_buff *skb) NULL, NULL, skb);if (genhash ||memcmp (hash_location, newhash,16 ) !=0 ) { -if (net_ratelimit ()) { -printk (KERN_INFO "MD5 Hash %s for [%pI6c]:%u->[%pI6c]:%u\n" , - genhash ?"failed" :"mismatch" , - &ip6h->saddr,ntohs (th->source), - &ip6h->daddr,ntohs (th->dest)); - } +net_info_ratelimited ("MD5 Hash %s for [%pI6c]:%u->[%pI6c]:%u\n" , + genhash ?"failed" :"mismatch" , + &ip6h->saddr,ntohs (th->source), + &ip6h->daddr,ntohs (th->dest));return 1 ; }return 0 ;
net/llc/af_llc.c +3 -4
@@ -806,10 +806,9 @@ static int llc_ui_recvmsg(struct kiocb *iocb, struct socket *sock,sk_wait_data (sk, &timeo);if ((flags &MSG_PEEK ) && peek_seq != llc->copied_seq) { -if (net_ratelimit ()) -printk (KERN_DEBUG "LLC(%s:%d): Application " -"bug, race in MSG_PEEK.\n" , - current->comm,task_pid_nr (current)); +net_dbg_ratelimited ("LLC(%s:%d): Application bug, race in MSG_PEEK\n" , + current->comm, +task_pid_nr (current)); peek_seq = llc->copied_seq; }continue ;
net/mac80211/agg-rx.c +4 -9
@@ -260,11 +260,8 @@ void ieee80211_process_addba_request(struct ieee80211_local *local, (buf_size > IEEE80211_MAX_AMPDU_BUF)) { status =WLAN_STATUS_INVALID_QOS_PARAM ;#ifdef CONFIG_MAC80211_HT_DEBUG -if (net_ratelimit ()) -printk (KERN_DEBUG "AddBA Req with bad params from " -"%pM on tid %u. policy %d, buffer size %d\n" , - mgmt->sa, tid, ba_policy, - buf_size); +net_dbg_ratelimited ("AddBA Req with bad params from %pM on tid %u. policy %d, buffer size %d\n" , + mgmt->sa, tid, ba_policy, buf_size);#endif /* CONFIG_MAC80211_HT_DEBUG */ goto end_no_lock; }
@@ -281,10 +278,8 @@ void ieee80211_process_addba_request(struct ieee80211_local *local,if (sta->ampdu_mlme.tid_rx[tid]) {#ifdef CONFIG_MAC80211_HT_DEBUG -if (net_ratelimit ()) -printk (KERN_DEBUG "unexpected AddBA Req from " -"%pM on tid %u\n" , - mgmt->sa, tid); +net_dbg_ratelimited ("unexpected AddBA Req from %pM on tid %u\n" , + mgmt->sa, tid);#endif /* CONFIG_MAC80211_HT_DEBUG */ /* delete existing Rx BA session on the same tid */
net/mac80211/ht.c +4 -4
@@ -306,10 +306,10 @@ void ieee80211_process_delba(struct ieee80211_sub_if_data *sdata, initiator = (params &IEEE80211_DELBA_PARAM_INITIATOR_MASK ) >>11 ;#ifdef CONFIG_MAC80211_HT_DEBUG -if (net_ratelimit ()) -printk (KERN_DEBUG "delba from %pM (%s) tid %d reason code %d\n" , - mgmt->sa, initiator ?"initiator" :"recipient" , tid, -le16_to_cpu (mgmt->u.action.u.delba.reason_code)); +net_dbg_ratelimited ("delba from %pM (%s) tid %d reason code %d\n" , + mgmt->sa, initiator ?"initiator" :"recipient" , + tid, +le16_to_cpu (mgmt->u.action.u.delba.reason_code));#endif /* CONFIG_MAC80211_HT_DEBUG */ if (initiator =WLAN_BACK_INITIATOR )
net/mac80211/ibss.c +4 -6
@@ -303,9 +303,8 @@ ieee80211_ibss_add_sta(struct ieee80211_sub_if_data *sdata,* allow new one to be added. */ if (local->num_sta >=IEEE80211_IBSS_MAX_STA_ENTRIES ) { -if (net_ratelimit ()) -printk (KERN_DEBUG "%s: No room for a new IBSS STA entry %pM\n" , - sdata->name, addr); +net_dbg_ratelimited ("%s: No room for a new IBSS STA entry %pM\n" , + sdata->name, addr);rcu_read_lock ();return NULL ; }
@@ -582,9 +581,8 @@ void ieee80211_ibss_rx_no_sta(struct ieee80211_sub_if_data *sdata,* allow new one to be added. */ if (local->num_sta >=IEEE80211_IBSS_MAX_STA_ENTRIES ) { -if (net_ratelimit ()) -printk (KERN_DEBUG "%s: No room for a new IBSS STA entry %pM\n" , - sdata->name, addr); +net_dbg_ratelimited ("%s: No room for a new IBSS STA entry %pM\n" , + sdata->name, addr);return ; }
net/mac80211/mlme.c +5 -7
@@ -1567,9 +1567,9 @@ static void ieee80211_mgd_probe_ap(struct ieee80211_sub_if_data *sdata, }#ifdef CONFIG_MAC80211_VERBOSE_DEBUG -if (beacon &&net_ratelimit ()) -printk (KERN_DEBUG "%s: detected beacon loss from AP " -"- sending probe request\n" , sdata->name); +if (beacon) +net_dbg_ratelimited ("%s: detected beacon loss from AP - sending probe request\n" , + sdata->name);#endif /*
@@ -2404,10 +2404,8 @@ static void ieee80211_rx_mgmt_beacon(struct ieee80211_sub_if_data *sdata,if (ifmgd->flags &IEEE80211_STA_BEACON_POLL ) {#ifdef CONFIG_MAC80211_VERBOSE_DEBUG -if (net_ratelimit ()) { -printk (KERN_DEBUG "%s: cancelling probereq poll due " -"to a received beacon\n" , sdata->name); - } +net_dbg_ratelimited ("%s: cancelling probereq poll due to a received beacon\n" , + sdata->name);#endif ifmgd->flags &= ~IEEE80211_STA_BEACON_POLL ;mutex_lock (&local->iflist_mtx);
net/mac80211/rx.c +5 -6
@@ -1752,9 +1752,9 @@ ieee80211_deliver_skb(struct ieee80211_rx_data *rx)* local net stack and back to the wireless medium */ xmit_skb =skb_copy (skb,GFP_ATOMIC ); -if (!xmit_skb &&net_ratelimit ()) -printk (KERN_DEBUG "%s: failed to clone " -"multicast frame\n" , dev->name); +if (!xmit_skb) +net_dbg_ratelimited ("%s: failed to clone multicast frame\n" , + dev->name); }else { dsta =sta_info_get (sdata, skb->data);if (dsta) {
@@ -1957,9 +1957,8 @@ ieee80211_rx_h_mesh_fwding(struct ieee80211_rx_data *rx) fwd_skb =skb_copy (skb,GFP_ATOMIC );if (!fwd_skb) { -if (net_ratelimit ()) -printk (KERN_DEBUG "%s: failed to clone mesh frame\n" , - sdata->name); +net_dbg_ratelimited ("%s: failed to clone mesh frame\n" , + sdata->name); goto out; }
net/mac80211/tx.c +6 -11
@@ -413,9 +413,8 @@ ieee80211_tx_h_multicast_ps_buf(struct ieee80211_tx_data *tx)if (skb_queue_len (&tx->sdata->bss->ps_bc_buf) >=AP_MAX_BC_BUFFER ) {#ifdef CONFIG_MAC80211_VERBOSE_PS_DEBUG -if (net_ratelimit ()) -printk (KERN_DEBUG "%s: BC TX buffer full - dropping the oldest frame\n" , - tx->sdata->name); +net_dbg_ratelimited ("%s: BC TX buffer full - dropping the oldest frame\n" , + tx->sdata->name);#endif dev_kfree_skb (skb_dequeue (&tx->sdata->bss->ps_bc_buf)); }else
@@ -476,10 +475,8 @@ ieee80211_tx_h_unicast_ps_buf(struct ieee80211_tx_data *tx)if (skb_queue_len (&sta->ps_tx_buf[ac]) >=STA_MAX_TX_BUFFER ) {struct sk_buff *old =skb_dequeue (&sta->ps_tx_buf[ac]);#ifdef CONFIG_MAC80211_VERBOSE_PS_DEBUG -if (net_ratelimit ()) -printk (KERN_DEBUG "%s: STA %pM TX buffer for " -"AC %d full - dropping oldest frame\n" , - tx->sdata->name, sta->sta.addr, ac); +net_dbg_ratelimited ("%s: STA %pM TX buffer for AC %d full - dropping oldest frame\n" , + tx->sdata->name, sta->sta.addr, ac);#endif dev_kfree_skb (old); }else
@@ -1965,10 +1962,8 @@ netdev_tx_t ieee80211_subif_start_xmit(struct sk_buff *skb, (cpu_to_be16(ethertype) != sdata->control_port_protocol || !ether_addr_equal(sdata->vif.addr, skb->data + ETH_ALEN)))) {#ifdef CONFIG_MAC80211_VERBOSE_DEBUG -if (net_ratelimit ()) -printk (KERN_DEBUG "%s: dropped frame to %pM" -" (unauthorized port)\n" , dev->name, - hdr.addr1); +net_dbg_ratelimited ("%s: dropped frame to %pM (unauthorized port)\n" , + dev->name, hdr.addr1);#endif I802_DEBUG_INC (local->tx_handlers_drop_unauth_port);
net/netfilter/nf_conntrack_amanda.c +1 -2
@@ -107,8 +107,7 @@ static int amanda_help(struct sk_buff *skb,/* No data? */ dataoff = protoff +sizeof (struct udphdr );if (dataoff >= skb->len) { -if (net_ratelimit ()) -printk (KERN_ERR "amanda_help: skblen = %u\n" , skb->len); +net_err_ratelimited ("amanda_help: skblen = %u\n" , skb->len);return NF_ACCEPT ; }
net/netfilter/nf_conntrack_core.c +1 -4
@@ -683,10 +683,7 @@ __nf_conntrack_alloc(struct net *net, u16 zone, unlikely(atomic_read(&net->ct.count) > nf_conntrack_max)) {if (!early_drop (net,hash_bucket (hash, net))) {atomic_dec (&net->ct.count); -if (net_ratelimit ()) -printk (KERN_WARNING -"nf_conntrack: table full, dropping" -" packet.\n" ); +net_warn_ratelimited ("nf_conntrack: table full, dropping packet\n" );return ERR_PTR (-ENOMEM ); } }
net/netfilter/nf_conntrack_expect.c +1 -3
@@ -424,9 +424,7 @@ static inline int __nf_ct_expect_check(struct nf_conntrack_expect *expect) }if (net->ct.expect_count >= nf_ct_expect_max) { -if (net_ratelimit ()) -printk (KERN_WARNING -"nf_conntrack: expectation table full\n" ); +net_warn_ratelimited ("nf_conntrack: expectation table full\n" ); ret = -EMFILE ; } out:
net/netfilter/nf_conntrack_h323_main.c +3 -6
@@ -605,8 +605,7 @@ static int h245_help(struct sk_buff *skb, unsigned int protoff, drop:spin_unlock_bh (&nf_h323_lock); -if (net_ratelimit ()) -pr_info ("nf_ct_h245: packet dropped\n" ); +net_info_ratelimited ("nf_ct_h245: packet dropped\n" );return NF_DROP ; }
@@ -1156,8 +1155,7 @@ static int q931_help(struct sk_buff *skb, unsigned int protoff, drop:spin_unlock_bh (&nf_h323_lock); -if (net_ratelimit ()) -pr_info ("nf_ct_q931: packet dropped\n" ); +net_info_ratelimited ("nf_ct_q931: packet dropped\n" );return NF_DROP ; }
@@ -1731,8 +1729,7 @@ static int ras_help(struct sk_buff *skb, unsigned int protoff, drop:spin_unlock_bh (&nf_h323_lock); -if (net_ratelimit ()) -pr_info ("nf_ct_ras: packet dropped\n" ); +net_info_ratelimited ("nf_ct_ras: packet dropped\n" );return NF_DROP ; }
net/netfilter/nf_conntrack_irc.c +3 -5
@@ -185,11 +185,9 @@ static int help(struct sk_buff *skb, unsigned int protoff, tuple = &ct->tuplehash[dir].tuple;if (tuple->src.u3.ip != dcc_ip && tuple->dst.u3.ip != dcc_ip) { -if (net_ratelimit ()) -printk (KERN_WARNING -"Forged DCC command from %pI4: %pI4:%u\n" , - &tuple->src.u3.ip, - &dcc_ip, dcc_port); +net_warn_ratelimited ("Forged DCC command from %pI4: %pI4:%u\n" , + &tuple->src.u3.ip, + &dcc_ip, dcc_port);continue ; }
net/netfilter/nfnetlink_queue.c +3 -6
@@ -395,8 +395,7 @@ nlmsg_failure: nla_put_failure:if (skb)kfree_skb (skb); -if (net_ratelimit ()) -printk (KERN_ERR "nf_queue: error creating packet message\n" ); +net_err_ratelimited ("nf_queue: error creating packet message\n" );return NULL ; }
@@ -433,10 +432,8 @@ nfqnl_enqueue_packet(struct nf_queue_entry *entry, unsigned int queuenum) }if (queue->queue_total >= queue->queue_maxlen) { queue->queue_dropped++; -if (net_ratelimit ()) -printk (KERN_WARNING "nf_queue: full at %d entries, " -"dropping packets(s).\n" , - queue->queue_total); +net_warn_ratelimited ("nf_queue: full at %d entries, dropping packets(s)\n" , + queue->queue_total); goto err_out_free_nskb; } entry->id = ++queue->id_sequence;
net/netfilter/xt_TCPMSS.c +4 -6
@@ -67,15 +67,13 @@ tcpmss_mangle_packet(struct sk_buff *skb,if (info->mss =XT_TCPMSS_CLAMP_PMTU ) {if (dst_mtu (skb_dst (skb)) <= minlen) { -if (net_ratelimit ()) -pr_err ("unknown or invalid path-MTU (%u)\n" , -dst_mtu (skb_dst (skb))); +net_err_ratelimited ("unknown or invalid path-MTU (%u)\n" , +dst_mtu (skb_dst (skb)));return -1 ; }if (in_mtu <= minlen) { -if (net_ratelimit ()) -pr_err ("unknown or invalid path-MTU (%u)\n" , - in_mtu); +net_err_ratelimited ("unknown or invalid path-MTU (%u)\n" , + in_mtu);return -1 ; } newmss =min (dst_mtu (skb_dst (skb)), in_mtu) - minlen;
net/netfilter/xt_hashlimit.c +1 -2
@@ -171,8 +171,7 @@ dsthash_alloc_init(struct xt_hashlimit_htable *ht,if (ht->cfg.max && ht->count >= ht->cfg.max) {/* FIXME: do something. question is what.. */ -if (net_ratelimit ()) -pr_err ("max count of %u reached\n" , ht->cfg.max); +net_err_ratelimited ("max count of %u reached\n" , ht->cfg.max); ent =NULL ; }else ent =kmem_cache_alloc (hashlimit_cachep,GFP_ATOMIC );
net/openvswitch/vport-netdev.c +3 -3
@@ -157,9 +157,9 @@ static int netdev_send(struct vport *vport, struct sk_buff *skb)int len;if (unlikely (packet_length (skb) > mtu && !skb_is_gso (skb))) { -if (net_ratelimit ()) -pr_warn ("%s: dropped over-mtu packet: %d > %d\n" , -ovs_dp_name (vport->dp),packet_length (skb), mtu); +net_warn_ratelimited ("%s: dropped over-mtu packet: %d > %d\n" , +ovs_dp_name (vport->dp), +packet_length (skb), mtu); goto error; }
net/sched/act_ipt.c +3 -4
@@ -1,5 +1,5 @@/* -* net/sched/ipt.c iptables target interface +* net/sched/ipt.c iptables target interface * *TODO: Add other tables. For now we only support the ipv4 table targets *
@@ -235,9 +235,8 @@ static int tcf_ipt(struct sk_buff *skb, const struct tc_action *a, result =TC_ACT_PIPE ;break ;default : -if (net_ratelimit ()) -pr_notice ("tc filter: Bogus netfilter code" -" %d assume ACCEPT\n" , ret); +net_notice_ratelimited ("tc filter: Bogus netfilter code %d assume ACCEPT\n" , + ret); result =TC_POLICE_OK ;break ; }
net/sched/act_mirred.c +2 -3
@@ -174,9 +174,8 @@ static int tcf_mirred(struct sk_buff *skb, const struct tc_action *a, }if (!(dev->flags &IFF_UP )) { -if (net_ratelimit ()) -pr_notice ("tc mirred to Houston: device %s is down\n" , - dev->name); +net_notice_ratelimited ("tc mirred to Houston: device %s is down\n" , + dev->name); goto out; }
net/sched/cls_u32.c +1 -2
@@ -234,8 +234,7 @@ out:return -1 ; deadloop: -if (net_ratelimit ()) -pr_warning ("cls_u32: dead loop\n" ); +net_warn_ratelimited ("cls_u32: dead loop\n" );return -1 ; }
net/sched/ematch.c +1 -3
@@ -537,9 +537,7 @@ pop_stack:return res; stack_overflow: -if (net_ratelimit ()) -pr_warning ("tc ematch: local stack overflow," -" increase NET_EMATCH_STACK\n" ); +net_warn_ratelimited ("tc ematch: local stack overflow, increase NET_EMATCH_STACK\n" );return -1 ; }EXPORT_SYMBOL (__tcf_em_tree_match);
net/sched/sch_api.c +4 -6
@@ -1691,12 +1691,10 @@ reclassify: tp = otp;if (verd++ >=MAX_REC_LOOP ) { -if (net_ratelimit ()) -pr_notice ("%s: packet reclassify loop" -" rule prio %u protocol %02x\n" , - tp->q->ops->id, - tp->prio &0xffff , -ntohs (tp->protocol)); +net_notice_ratelimited ("%s: packet reclassify loop rule prio %u protocol %02x\n" , + tp->q->ops->id, + tp->prio &0xffff , +ntohs (tp->protocol));return TC_ACT_SHOT ; } skb->tc_verd =SET_TC_VERD (skb->tc_verd, verd);
net/sched/sch_generic.c +5 -6
@@ -86,9 +86,8 @@ static inline int handle_dev_cpu_collision(struct sk_buff *skb,* deadloop is detected. Return OK to try the next skb. */ kfree_skb (skb); -if (net_ratelimit ()) -pr_warning ("Dead loop on netdevice %s, fix it urgently!\n" , - dev_queue->dev->name); +net_warn_ratelimited ("Dead loop on netdevice %s, fix it urgently!\n" , + dev_queue->dev->name); ret =qdisc_qlen (q); }else {/*
@@ -136,9 +135,9 @@ int sch_direct_xmit(struct sk_buff *skb, struct Qdisc *q, ret =handle_dev_cpu_collision (skb, txq, q); }else {/* Driver returned NETDEV_TX_BUSY - requeue skb */ -if (unlikely (ret !=NETDEV_TX_BUSY &&net_ratelimit ())) -pr_warning ("BUG %s code %d qlen %d\n" , - dev->name, ret, q->q.qlen); +if (unlikely (ret !=NETDEV_TX_BUSY )) +net_warn_ratelimited ("BUG %s code %d qlen %d\n" , + dev->name, ret, q->q.qlen); ret =dev_requeue_skb (skb, q); }
net/sched/sch_gred.c +4 -8
@@ -255,10 +255,8 @@ static struct sk_buff *gred_dequeue(struct Qdisc *sch)u16 dp =tc_index_to_dp (skb);if (dp >= t->DPs || (q = t->tab[dp]) =NULL ) { -if (net_ratelimit ()) -pr_warning ("GRED: Unable to relocate VQ 0x%x " -"after dequeue, screwing up " -"backlog.\n" ,tc_index_to_dp (skb)); +net_warn_ratelimited ("GRED: Unable to relocate VQ 0x%x after dequeue, screwing up backlog\n" , +tc_index_to_dp (skb)); }else { q->backlog -=qdisc_pkt_len (skb);
@@ -287,10 +285,8 @@ static unsigned int gred_drop(struct Qdisc *sch)u16 dp =tc_index_to_dp (skb);if (dp >= t->DPs || (q = t->tab[dp]) =NULL ) { -if (net_ratelimit ()) -pr_warning ("GRED: Unable to relocate VQ 0x%x " -"while dropping, screwing up " -"backlog.\n" ,tc_index_to_dp (skb)); +net_warn_ratelimited ("GRED: Unable to relocate VQ 0x%x while dropping, screwing up backlog\n" , +tc_index_to_dp (skb)); }else { q->backlog -= len; q->stats.other++;
net/sctp/sm_sideeffect.c +2 -3
@@ -1161,9 +1161,8 @@ static int sctp_side_effects(sctp_event_t event_type, sctp_subtype_t subtype,break ;case SCTP_DISPOSITION_VIOLATION : -if (net_ratelimit ()) -pr_err ("protocol violation state %d chunkid %d\n" , - state, subtype.chunk); +net_err_ratelimited ("protocol violation state %d chunkid %d\n" , + state, subtype.chunk);break ;case SCTP_DISPOSITION_NOT_IMPL :
net/sctp/sm_statefuns.c +8 -10
@@ -1129,17 +1129,15 @@ sctp_disposition_t sctp_sf_backbeat_8_3(const struct sctp_endpoint *ep,/* This should never happen, but lets log it if so. */ if (unlikely (!link)) {if (from_addr.sa.sa_family =AF_INET6 ) { -if (net_ratelimit ()) -pr_warn ("%s association %p could not find address %pI6\n" , - __func__, - asoc, - &from_addr.v6.sin6_addr); +net_warn_ratelimited ("%s association %p could not find address %pI6\n" , + __func__, + asoc, + &from_addr.v6.sin6_addr); }else { -if (net_ratelimit ()) -pr_warn ("%s association %p could not find address %pI4\n" , - __func__, - asoc, - &from_addr.v4.sin_addr.s_addr); +net_warn_ratelimited ("%s association %p could not find address %pI4\n" , + __func__, + asoc, + &from_addr.v4.sin_addr.s_addr); }return SCTP_DISPOSITION_DISCARD ; }
net/sctp/socket.c +2 -4
@@ -5840,10 +5840,8 @@ SCTP_STATIC int sctp_listen_start(struct sock *sk, int backlog)if (!sctp_sk (sk)->hmac && sctp_hmac_alg) { tfm =crypto_alloc_hash (sctp_hmac_alg,0 ,CRYPTO_ALG_ASYNC );if (IS_ERR (tfm)) { -if (net_ratelimit ()) { -pr_info ("failed to load transform for %s: %ld\n" , - sctp_hmac_alg,PTR_ERR (tfm)); - } +net_info_ratelimited ("failed to load transform for %s: %ld\n" , + sctp_hmac_alg,PTR_ERR (tfm));return -ENOSYS ; }sctp_sk (sk)->hmac = tfm;
net/socket.c +1 -2
@@ -1234,8 +1234,7 @@ int __sock_create(struct net *net, int family, int type, int protocol,*/ sock =sock_alloc ();if (!sock) { -if (net_ratelimit ()) -printk (KERN_WARNING "socket: no more sockets\n" ); +net_warn_ratelimited ("socket: no more sockets\n" );return -ENFILE ;/* Not exactly a match, but its the closest posix thing */ }
net/sunrpc/svc.c +8 -10
@@ -1041,23 +1041,21 @@ static void svc_unregister(const struct svc_serv *serv, struct net *net)* Printk the given error with the address of the client that caused it. */ static __printf(2, 3) -int svc_printk(struct svc_rqst *rqstp, const char *fmt, ...) +void svc_printk(struct svc_rqst *rqstp, const char *fmt, ...) { + struct va_format vaf;va_list args; -int r;char buf[RPC_MAX_ADDRBUFLEN ]; -if (!net_ratelimit ()) -return 0 ; +va_start (args, fmt); -printk (KERN_WARNING "svc: %s: " , -svc_print_addr (rqstp, buf,sizeof (buf))); + vaf.fmt = fmt; + vaf.va = &args; -va_start (args, fmt); - r =vprintk (fmt, args); -va_end (args); +net_warn_ratelimited ("svc: %s: %pV" , +svc_print_addr (rqstp, buf,sizeof (buf)), &vaf); -return r; +va_end (args); }/*
net/sunrpc/svc_xprt.c +5 -8
@@ -544,14 +544,11 @@ static void svc_check_conn_limits(struct svc_serv *serv)struct svc_xprt *xprt =NULL ;spin_lock_bh (&serv->sv_lock);if (!list_empty (&serv->sv_tempsocks)) { -if (net_ratelimit ()) { -/* Try to help the admin */ -printk (KERN_NOTICE "%s: too many open " -"connections, consider increasing %s\n" , - serv->sv_name, serv->sv_maxconn ? -"the max number of connections." : -"the number of threads." ); - } +/* Try to help the admin */ +net_notice_ratelimited ("%s: too many open connections, consider increasing the %s\n" , + serv->sv_name, serv->sv_maxconn ? +"max number of connections" : +"number of threads" );/* * Always select the oldest connection. It's not fair, * but so is life
net/sunrpc/svcsock.c +10 -18
@@ -617,11 +617,8 @@ static int svc_udp_recvfrom(struct svc_rqst *rqstp) rqstp->rq_prot =IPPROTO_UDP ;if (!svc_udp_get_dest_address (rqstp, cmh)) { -if (net_ratelimit ()) -printk (KERN_WARNING -"svc: received unknown control message %d/%d; " -"dropping RPC reply datagram\n" , - cmh->cmsg_level, cmh->cmsg_type); +net_warn_ratelimited ("svc: received unknown control message %d/%d; dropping RPC reply datagram\n" , + cmh->cmsg_level, cmh->cmsg_type);skb_free_datagram_locked (svsk->sk_sk, skb);return 0 ; }
@@ -871,18 +868,17 @@ static struct svc_xprt *svc_tcp_accept(struct svc_xprt *xprt)if (err = -ENOMEM )printk (KERN_WARNING "%s: no more sockets!\n" , serv->sv_name); -else if (err != -EAGAIN &&net_ratelimit ()) -printk (KERN_WARNING "%s: accept failed (err %d)!\n" , - serv->sv_name, -err); +else if (err != -EAGAIN ) +net_warn_ratelimited ("%s: accept failed (err %d)!\n" , + serv->sv_name, -err);return NULL ; }set_bit (XPT_CONN , &svsk->sk_xprt.xpt_flags); err =kernel_getpeername (newsock, sin, &slen);if (err <0 ) { -if (net_ratelimit ()) -printk (KERN_WARNING "%s: peername failed (err %d)!\n" , - serv->sv_name, -err); +net_warn_ratelimited ("%s: peername failed (err %d)!\n" , + serv->sv_name, -err); goto failed;/* aborted connection or whatever */ }
@@ -1012,19 +1008,15 @@ static int svc_tcp_recv_record(struct svc_sock *svsk, struct svc_rqst *rqstp)* bit set in the fragment length header. * But apparently no known nfs clients send fragmented * records. */ -if (net_ratelimit ()) -printk (KERN_NOTICE "RPC: multiple fragments " -"per record not supported\n" ); +net_notice_ratelimited ("RPC: multiple fragments per record not supported\n" ); goto err_delete; } svsk->sk_reclen &=RPC_FRAGMENT_SIZE_MASK ;dprintk ("svc: TCP record, %d bytes\n" , svsk->sk_reclen);if (svsk->sk_reclen > serv->sv_max_mesg) { -if (net_ratelimit ()) -printk (KERN_NOTICE "RPC: " -"fragment too large: 0x%08lx\n" , - (unsigned long )svsk->sk_reclen); +net_notice_ratelimited ("RPC: fragment too large: 0x%08lx\n" , + (unsigned long )svsk->sk_reclen); goto err_delete; } }
net/wireless/lib80211_crypt_ccmp.c +11 -22
@@ -304,10 +304,8 @@ static int lib80211_ccmp_decrypt(struct sk_buff *skb, int hdr_len, void *priv) pos = skb->data + hdr_len; keyidx = pos[3 ];if (!(keyidx & (1 <<5 ))) { -if (net_ratelimit ()) { -printk (KERN_DEBUG "CCMP: received packet without ExtIV" -" flag from %pM\n" , hdr->addr2); - } +net_dbg_ratelimited ("CCMP: received packet without ExtIV flag from %pM\n" , + hdr->addr2); key->dot11RSNAStatsCCMPFormatErrors++;return -2 ; }
@@ -318,11 +316,8 @@ static int lib80211_ccmp_decrypt(struct sk_buff *skb, int hdr_len, void *priv)return -6 ; }if (!key->key_set) { -if (net_ratelimit ()) { -printk (KERN_DEBUG "CCMP: received packet from %pM" -" with keyid=%d that does not have a configured" -" key\n" , hdr->addr2, keyidx); - } +net_dbg_ratelimited ("CCMP: received packet from %pM with keyid=%d that does not have a configured key\n" , + hdr->addr2, keyidx);return -3 ; }
@@ -336,15 +331,11 @@ static int lib80211_ccmp_decrypt(struct sk_buff *skb, int hdr_len, void *priv)if (ccmp_replay_check (pn, key->rx_pn)) {#ifdef CONFIG_LIB80211_DEBUG -if (net_ratelimit ()) { -printk (KERN_DEBUG "CCMP: replay detected: STA=%pM " -"previous PN %02x%02x%02x%02x%02x%02x " -"received PN %02x%02x%02x%02x%02x%02x\n" , - hdr->addr2, - key->rx_pn[0 ], key->rx_pn[1 ], key->rx_pn[2 ], - key->rx_pn[3 ], key->rx_pn[4 ], key->rx_pn[5 ], - pn[0 ], pn[1 ], pn[2 ], pn[3 ], pn[4 ], pn[5 ]); - } +net_dbg_ratelimited ("CCMP: replay detected: STA=%pM previous PN %02x%02x%02x%02x%02x%02x received PN %02x%02x%02x%02x%02x%02x\n" , + hdr->addr2, + key->rx_pn[0 ], key->rx_pn[1 ], key->rx_pn[2 ], + key->rx_pn[3 ], key->rx_pn[4 ], key->rx_pn[5 ], + pn[0 ], pn[1 ], pn[2 ], pn[3 ], pn[4 ], pn[5 ]);#endif key->dot11RSNAStatsCCMPReplays++;return -4 ;
@@ -370,10 +361,8 @@ static int lib80211_ccmp_decrypt(struct sk_buff *skb, int hdr_len, void *priv) }if (memcmp (mic, a,CCMP_MIC_LEN ) !=0 ) { -if (net_ratelimit ()) { -printk (KERN_DEBUG "CCMP: decrypt failed: STA=" -"%pM\n" , hdr->addr2); - } +net_dbg_ratelimited ("CCMP: decrypt failed: STA=%pM\n" , + hdr->addr2); key->dot11RSNAStatsCCMPDecryptErrors++;return -5 ; }
net/wireless/lib80211_crypt_tkip.c +16 -33
91 lines not on this page · raw message
Signature · 1 line
1.7.8.111.gad25c.dirty
David Miller
maintainerFrom: Joe Perches <[email protected]>
Date: Mon, 14 May 2012 00:56:24 -0700
Quoted 8 lines
net_ratelimit()like__ratelimit()is too easy to misuse.Add simplifying macros similar to pr_<level>_ratelimited that combines the test of
net_ratelimitand logging.Joe Perches (2):
net: Addnet_ratelimited_functionand net_<level>_ratelimited macros
net: Convertnet_ratelimituses to net_<level>_ratelimited
These look fine to me so I've applied them to net-next and am sanity checking the build right now.
Thanks Joe.
Quoted 8 lines · David Miller
From: Joe Perches <[email protected]>
Date: Mon, 14 May 2012 00:56:24 -0700Quoted 5 lines
net_ratelimit()like__ratelimit()is too easy to misuse.Add simplifying macros similar to pr_<level>_ratelimited that combines the test of
net_ratelimitand logging.
Quoted 6 lines
Quoted 3 lines
Joe Perches (2):
net: Addnet_ratelimited_functionand net_<level>_ratelimited macros
net: Convertnet_ratelimituses to net_<level>_ratelimitedThese look fine to me so I've applied them to net-next and am sanity checking the build right now.
OK, but fyi, there's a possible issue with !CONFIG_DEBUG builds because these patches converted some uses of
if (net_ratelimit())
printk(KERN_DEBUG ...
to
net_dbg_ratelimited()
These messages are no longer emitted when DEBUG isn't defined and not using dynamic_debug. I'm not sure that's a real problem, but it's a difference.
I could produce a net_printk_ratelimited that would keep the original behavior if necessary.
net_printk_ratelimited(KERN_DEBUG etc...)
cheers, Joe
Johannes Berg
maintainerQuoted 23 lines · Joe Perches
Quoted 8 lines · David Miller
From: Joe Perches <[email protected]>
Date: Mon, 14 May 2012 00:56:24 -0700Quoted 5 lines
net_ratelimit()like__ratelimit()is too easy to misuse.Add simplifying macros similar to pr_<level>_ratelimited that combines the test of
net_ratelimitand logging.Quoted 6 lines
Quoted 3 lines
Joe Perches (2):
net: Addnet_ratelimited_functionand net_<level>_ratelimited macros
net: Convertnet_ratelimituses to net_<level>_ratelimitedThese look fine to me so I've applied them to net-next and am sanity checking the build right now.
OK, but fyi, there's a possible issue with !CONFIG_DEBUG builds because these patches converted some uses of
if (net_ratelimit())
printk(KERN_DEBUG ...
to
net_dbg_ratelimited()
Quoted 8 lines
These messages are no longer emitted when DEBUG isn't defined and not using
dynamic_debug. I'm not sure that's a real problem, but it's a difference.I could produce a
net_printk_ratelimitedthat would keep the original behavior if necessary.
net_printk_ratelimited(KERN_DEBUG etc...)
Oops. Yes, please do that, mac80211 doesn't have DEBUG yet
johannes
David Miller
maintainerFrom: Johannes Berg <[email protected]>
Date: Tue, 15 May 2012 20:03:48 +0200
Quoted 1 line
Oops. Yes, please do that, mac80211 doesn't have DEBUG yet
If you want debugging messages you would turn on dynamic_debug via sysctl or whatever, not define DEBUG in your sources.
I don't think we should add yet another interface just to get KERN_DEBUG in there.
Johannes Berg
maintainerQuoted 10 lines · David Miller
From: Johannes Berg <[email protected]>
Date: Tue, 15 May 2012 20:03:48 +0200Quoted 1 line
Oops. Yes, please do that, mac80211 doesn't have DEBUG yet
If you want debugging messages you would turn on
dynamic_debugvia sysctl or whatever, not define DEBUG in your sources.I don't think we should add yet another interface just to get
KERN_DEBUGin there.
But don't you have to do something in the sources to actually get dynamic_debug enabled? I'm concerned this will make mac80211 debugging inconsistent - the normal bits are just printk() still, and the rate-limited bits need some special enabling? That seems odd.
johannes
David Miller
maintainerFrom: Johannes Berg <[email protected]>
Date: Tue, 15 May 2012 20:21:34 +0200
Quoted 9 lines · David Miller
Quoted 8 lines
From: Johannes Berg <[email protected]>
Date: Tue, 15 May 2012 20:03:48 +0200Quoted 1 line
Oops. Yes, please do that, mac80211 doesn't have DEBUG yet
If you want debugging messages you would turn on
dynamic_debugvia sysctl or whatever, not define DEBUG in your sources.
Quoted 7 lines
Quoted 2 lines
I don't think we should add yet another interface just to get
KERN_DEBUGin there.But don't you have to do something in the sources to actually get
dynamic_debugenabled? I'm concerned this will make mac80211 debugging inconsistent - the normal bits are justprintk()still, and the rate-limited bits need some special enabling? That seems odd.
You can turn them all off or on with a simple flip of a boolean switch at run-time. Or, alternatively, you can turn them on or off in a finer grained manner with other run-time facilities.
There should be a transition away from explicit KERN_DEBUG.
Johannes Berg
maintainerQuoted 10 lines · David Miller
Quoted 4 lines
But don't you have to do something in the sources to actually get
dynamic_debugenabled? I'm concerned this will make mac80211 debugging inconsistent - the normal bits are justprintk()still, and the rate-limited bits need some special enabling? That seems odd.You can turn them all off or on with a simple flip of a boolean switch at run-time. Or, alternatively, you can turn them on or off in a finer grained manner with other run-time facilities.
There should be a transition away from explicit
KERN_DEBUG.
I support that, but I think it's confusing to have things mixed. Also, we seem to have printk_ratelimit(), so I'd prefer to have that used in mac80211 instead until everything there moves over to newer facilities.
johannes
David Miller
maintainerFrom: Johannes Berg <[email protected]>
Date: Tue, 15 May 2012 20:29:08 +0200
Quoted 11 lines · David Miller
Quoted 10 lines
Quoted 5 lines
But don't you have to do something in the sources to actually get
dynamic_debugenabled? I'm concerned this will make mac80211 debugging inconsistent - the normal bits are justprintk()still, and the rate-limited bits need some special enabling? That seems odd.You can turn them all off or on with a simple flip of a boolean switch at run-time. Or, alternatively, you can turn them on or off in a finer grained manner with other run-time facilities.
Quoted 5 lines
Quoted 1 line
There should be a transition away from explicit
KERN_DEBUG.I support that, but I think it's confusing to have things mixed. Also, we seem to have
printk_ratelimit(), so I'd prefer to have that used in mac80211 instead until everything there moves over to newer facilities.
No, you don't want that, it's different from the networking ratelimit mechanism. Joe explained this, and I just explaing it to you once again in another reply.
cover net: mac80211: Neaten debugging
In reply to Johannes BergAlways use pr_debug variants instead of printk(KERN_DEBUG...)
Joe Perches (3):
net: mac80211: Convert printk(KERN_DEBUG to pr_debug
net: mac80211: Add and use ht_vdbg debugging macro
net: mac80211: Add and use ibss_vdbg debugging macro
include/net/mac80211.h | 24 ++++++++ net/mac80211/agg-rx.c | 30 +++------ net/mac80211/agg-tx.c | 109 +++++++++------------------------- net/mac80211/cfg.c | 4 +- net/mac80211/debugfs_netdev.c | 2 +- net/mac80211/ibss.c | 111 ++++++++++++---------------------- net/mac80211/iface.c | 4 +- net/mac80211/mesh.c | 3 +- net/mac80211/mesh_hwmp.c | 2 +- net/mac80211/mesh_pathtbl.c | 2 +- net/mac80211/mesh_plink.c | 2 +- net/mac80211/mesh_sync.c | 2 +- net/mac80211/mlme.c | 131 ++++++++++++++++++----------------------- net/mac80211/rx.c | 22 +++---- net/mac80211/sta_info.c | 23 +++----- net/mac80211/status.c | 2 +- net/mac80211/tkip.c | 21 +++---- net/mac80211/tx.c | 14 ++--- 18 files changed, 204 insertions(+), 304 deletions(-)
Signature · 1 line
1.7.8.111.gad25c.dirty
PATCH 1/3 net: mac80211: Convert printk(KERN_DEBUG to pr_debug
Standardize the debugging to be able to use dynamic_debug.
Coalesce formats, align arguments.
--- net/mac80211/agg-rx.c | 20 +++---- net/mac80211/agg-tx.c | 68 +++++++++------------ net/mac80211/cfg.c | 4 +- net/mac80211/debugfs_netdev.c | 2 +- net/mac80211/ibss.c | 88 ++++++++++++--------------- net/mac80211/iface.c | 4 +- net/mac80211/mesh.c | 3 +- net/mac80211/mesh_hwmp.c | 2 +- net/mac80211/mesh_pathtbl.c | 2 +- net/mac80211/mesh_plink.c | 2 +- net/mac80211/mesh_sync.c | 2 +- net/mac80211/mlme.c | 131 ++++++++++++++++++----------------------- net/mac80211/rx.c | 22 +++---- net/mac80211/sta_info.c | 21 +++---- net/mac80211/status.c | 2 +- net/mac80211/tkip.c | 21 +++---- net/mac80211/tx.c | 14 ++--- 17 files changed, 181 insertions(+), 227 deletions(-)
net/mac80211/agg-rx.c +9 -11
@@ -75,17 +75,16 @@ void ___ieee80211_stop_rx_ba_session(struct sta_info *sta, u16 tid,RCU_INIT_POINTER (sta->ampdu_mlme.tid_rx[tid],NULL );#ifdef CONFIG_MAC80211_HT_DEBUG -printk (KERN_DEBUG -"Rx BA session stop requested for %pM tid %u %s reason: %d\n" , - sta->sta.addr, tid, - initiator ==WLAN_BACK_RECIPIENT ?"recipient" :"inititator" , - (int )reason); +pr_debug ("Rx BA session stop requested for %pM tid %u %s reason: %d\n" , + sta->sta.addr, tid, + initiator ==WLAN_BACK_RECIPIENT ?"recipient" :"inititator" , + (int )reason);#endif /* CONFIG_MAC80211_HT_DEBUG */ if (drv_ampdu_action (local, sta->sdata,IEEE80211_AMPDU_RX_STOP , &sta->sta, tid,NULL ,0 )) -printk (KERN_DEBUG "HW problem - can not stop rx " -"aggregation for tid %d\n" , tid); +pr_debug ("HW problem - can not stop rx aggregation for tid %d\n" , + tid);/* check if this is a self generated aggregation halt */ if (initiator ==WLAN_BACK_RECIPIENT && tx)
@@ -156,7 +155,7 @@ static void sta_rx_agg_session_timer_expired(unsigned long data) }#ifdef CONFIG_MAC80211_HT_DEBUG -printk (KERN_DEBUG "rx session timer expired on tid %d\n" , (u16)*ptid); +pr_debug ("rx session timer expired on tid %d\n" , (u16)*ptid);#endif set_bit (*ptid, sta->ampdu_mlme.tid_rx_timer_expired);ieee80211_queue_work (&sta->local->hw, &sta->ampdu_mlme.work);
@@ -245,8 +244,7 @@ void ieee80211_process_addba_request(struct ieee80211_local *local,if (test_sta_flag (sta,WLAN_STA_BLOCK_BA )) {#ifdef CONFIG_MAC80211_HT_DEBUG -printk (KERN_DEBUG "Suspend in progress. " -"Denying ADDBA request\n" ); +pr_debug ("Suspend in progress - Denying ADDBA request\n" );#endif goto end_no_lock; }
@@ -320,7 +318,7 @@ void ieee80211_process_addba_request(struct ieee80211_local *local, ret =drv_ampdu_action (local, sta->sdata,IEEE80211_AMPDU_RX_START , &sta->sta, tid, &start_seq_num,0 );#ifdef CONFIG_MAC80211_HT_DEBUG -printk (KERN_DEBUG "Rx A-MPDU request on tid %d result %d\n" , tid, ret); +pr_debug ("Rx A-MPDU request on tid %d result %d\n" , tid, ret);#endif /* CONFIG_MAC80211_HT_DEBUG */ if (ret) {
net/mac80211/agg-tx.c +30 -38
198 lines not on this page · raw message
net/mac80211/cfg.c +2 -2
@@ -2677,7 +2677,7 @@ static int ieee80211_tdls_mgmt(struct wiphy *wiphy, struct net_device *dev,return -EINVAL ;#ifdef CONFIG_MAC80211_VERBOSE_TDLS_DEBUG -printk (KERN_DEBUG "TDLS mgmt action %d peer %pM\n" , action_code, peer); +pr_debug ("TDLS mgmt action %d peer %pM\n" , action_code, peer);#endif skb = dev_alloc_skb(local->hw.extra_tx_headroom +
@@ -2788,7 +2788,7 @@ static int ieee80211_tdls_oper(struct wiphy *wiphy, struct net_device *dev,return -EINVAL ;#ifdef CONFIG_MAC80211_VERBOSE_TDLS_DEBUG -printk (KERN_DEBUG "TDLS oper %d peer %pM\n" , oper, peer); +pr_debug ("TDLS oper %d peer %pM\n" , oper, peer);#endif switch (oper) {
net/mac80211/debugfs_netdev.c +1 -1
@@ -683,6 +683,6 @@ void ieee80211_debugfs_rename_netdev(struct ieee80211_sub_if_data *sdata)sprintf (buf,"netdev:%s" , sdata->name);if (!debugfs_rename (dir->d_parent, dir, dir->d_parent, buf)) -printk (KERN_ERR "mac80211: debugfs: failed to rename debugfs " +pr_err ("mac80211: debugfs: failed to rename debugfs " "dir to %s\n" , buf); }
net/mac80211/ibss.c +39 -49
177 lines not on this page · raw message
net/mac80211/iface.c +2 -2
@@ -58,7 +58,7 @@ static int ieee80211_change_mtu(struct net_device *dev, int new_mtu) }#ifdef CONFIG_MAC80211_VERBOSE_DEBUG -printk (KERN_DEBUG "%s: setting MTU %d\n" , dev->name, new_mtu); +pr_debug ("%s: setting MTU %d\n" , dev->name, new_mtu);#endif /* CONFIG_MAC80211_VERBOSE_DEBUG */ dev->mtu = new_mtu;return 0 ;
@@ -1224,7 +1224,7 @@ static void ieee80211_assign_perm_addr(struct ieee80211_local *local,if (__ffs64 (mask) +hweight64 (mask) !=fls64 (mask)) {/* not a contiguous mask ... not handled now! */ -printk (KERN_DEBUG "not contiguous\n" ); +pr_debug ("not contiguous\n" );break ; }
net/mac80211/mesh.c +1 -2
@@ -522,8 +522,7 @@ static void ieee80211_mesh_housekeeping(struct ieee80211_sub_if_data *sdata,bool free_plinks;#ifdef CONFIG_MAC80211_VERBOSE_DEBUG -printk (KERN_DEBUG "%s: running mesh housekeeping\n" , - sdata->name); +pr_debug ("%s: running mesh housekeeping\n" , sdata->name);#endif ieee80211_sta_expire (sdata,IEEE80211_MESH_PEER_INACTIVITY_LIMIT );
net/mac80211/mesh_hwmp.c +1 -1
@@ -15,7 +15,7 @@#ifdef CONFIG_MAC80211_VERBOSE_MHWMP_DEBUG #define mhwmp_dbg(fmt, args...) \ - printk(KERN_DEBUG "Mesh HWMP (%s): " fmt "\n", sdata->name, ##args) + pr_debug("Mesh HWMP (%s): " fmt "\n", sdata->name, ##args)#else #define mhwmp_dbg(fmt, args...) do { (void)(0); } while (0)#endif
net/mac80211/mesh_pathtbl.c +1 -1
@@ -19,7 +19,7 @@#include "mesh.h" #ifdef CONFIG_MAC80211_VERBOSE_MPATH_DEBUG -#define mpath_dbg(fmt, args...) printk(KERN_DEBUG fmt, ##args) +#define mpath_dbg(fmt, args...) pr_debug(fmt, ##args)#else #define mpath_dbg(fmt, args...) do { (void)(0); } while (0)#endif
net/mac80211/mesh_plink.c +1 -1
@@ -14,7 +14,7 @@#include "mesh.h" #ifdef CONFIG_MAC80211_VERBOSE_MPL_DEBUG -#define mpl_dbg(fmt, args...) printk(KERN_DEBUG fmt, ##args) +#define mpl_dbg(fmt, args...) pr_debug(fmt, ##args)#else #define mpl_dbg(fmt, args...) do { (void)(0); } while (0)#endif
net/mac80211/mesh_sync.c +1 -1
@@ -14,7 +14,7 @@#ifdef CONFIG_MAC80211_VERBOSE_MESH_SYNC_DEBUG #define msync_dbg(fmt, args...) \ - printk(KERN_DEBUG "Mesh sync (%s): " fmt "\n", sdata->name, ##args) + pr_debug("Mesh sync (%s): " fmt "\n", sdata->name, ##args)#else #define msync_dbg(fmt, args...) do { (void)(0); } while (0)#endif
net/mac80211/mlme.c +58 -73
300 lines not on this page · raw message
net/mac80211/rx.c +10 -12
@@ -1137,22 +1137,22 @@ static void ap_sta_ps_start(struct sta_info *sta)if (!(local->hw.flags &IEEE80211_HW_AP_LINK_PS ))drv_sta_notify (local, sdata,STA_NOTIFY_SLEEP , &sta->sta);#ifdef CONFIG_MAC80211_VERBOSE_PS_DEBUG -printk (KERN_DEBUG "%s: STA %pM aid %d enters power save mode\n" , - sdata->name, sta->sta.addr, sta->sta.aid); +pr_debug ("%s: STA %pM aid %d enters power save mode\n" , + sdata->name, sta->sta.addr, sta->sta.aid);#endif /* CONFIG_MAC80211_VERBOSE_PS_DEBUG */ }static void ap_sta_ps_end (struct sta_info *sta) {#ifdef CONFIG_MAC80211_VERBOSE_PS_DEBUG -printk (KERN_DEBUG "%s: STA %pM aid %d exits power save mode\n" , - sta->sdata->name, sta->sta.addr, sta->sta.aid); +pr_debug ("%s: STA %pM aid %d exits power save mode\n" , + sta->sdata->name, sta->sta.addr, sta->sta.aid);#endif /* CONFIG_MAC80211_VERBOSE_PS_DEBUG */ if (test_sta_flag (sta,WLAN_STA_PS_DRIVER )) {#ifdef CONFIG_MAC80211_VERBOSE_PS_DEBUG -printk (KERN_DEBUG "%s: STA %pM aid %d driver-ps-blocked\n" , - sta->sdata->name, sta->sta.addr, sta->sta.aid); +pr_debug ("%s: STA %pM aid %d driver-ps-blocked\n" , + sta->sdata->name, sta->sta.addr, sta->sta.aid);#endif /* CONFIG_MAC80211_VERBOSE_PS_DEBUG */ return ; }
@@ -1387,12 +1387,10 @@ ieee80211_reassemble_add(struct ieee80211_sub_if_data *sdata,#ifdef CONFIG_MAC80211_VERBOSE_DEBUG struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) entry->skb_list.next->data; -printk (KERN_DEBUG "%s: RX reassembly removed oldest " -"fragment entry (idx=%d age=%lu seq=%d last_frag=%d " -"addr1=%pM addr2=%pM\n" , - sdata->name, idx, - jiffies - entry->first_frag_time, entry->seq, - entry->last_frag, hdr->addr1, hdr->addr2); +pr_debug ("%s: RX reassembly removed oldest fragment entry (idx=%d age=%lu seq=%d last_frag=%d addr1=%pM addr2=%pM\n" , + sdata->name, idx, + jiffies - entry->first_frag_time, entry->seq, + entry->last_frag, hdr->addr1, hdr->addr2);#endif __skb_queue_purge (&entry->skb_list); }
net/mac80211/sta_info.c +9 -12
@@ -333,9 +333,8 @@ static int sta_info_insert_drv_state(struct ieee80211_local *local, }if (sdata->vif.type ==NL80211_IFTYPE_ADHOC ) { -printk (KERN_DEBUG -"%s: failed to move IBSS STA %pM to state %d (%d) - keeping it anyway.\n" , - sdata->name, sta->sta.addr, state +1 , err); +pr_debug ("%s: failed to move IBSS STA %pM to state %d (%d) - keeping it anyway\n" , + sdata->name, sta->sta.addr, state +1 , err); err =0 ; }
@@ -619,8 +618,7 @@ static bool sta_info_cleanup_expire_buffered_ac(struct ieee80211_local *local, local->total_ps_buffered--;#ifdef CONFIG_MAC80211_VERBOSE_PS_DEBUG -printk (KERN_DEBUG "Buffered frame expired (STA %pM)\n" , - sta->sta.addr); +pr_debug ("Buffered frame expired (STA %pM)\n" , sta->sta.addr);#endif dev_kfree_skb (skb); }
@@ -890,8 +888,8 @@ void ieee80211_sta_expire(struct ieee80211_sub_if_data *sdata,if (time_after (jiffies, sta->last_rx + exp_time)) {#ifdef CONFIG_MAC80211_IBSS_DEBUG -printk (KERN_DEBUG "%s: expiring inactive STA %pM\n" , - sdata->name, sta->sta.addr); +pr_debug ("%s: expiring inactive STA %pM\n" , + sdata->name, sta->sta.addr);#endif WARN_ON (__sta_info_destroy (sta)); }
@@ -991,9 +989,8 @@ void ieee80211_sta_ps_deliver_wakeup(struct sta_info *sta)sta_info_recalc_tim (sta);#ifdef CONFIG_MAC80211_VERBOSE_PS_DEBUG -printk (KERN_DEBUG "%s: STA %pM aid %d sending %d filtered/%d PS frames " -"since STA not sleeping anymore\n" , sdata->name, - sta->sta.addr, sta->sta.aid, filtered, buffered); +pr_debug ("%s: STA %pM aid %d sending %d filtered/%d PS frames since STA not sleeping anymore\n" , + sdata->name, sta->sta.addr, sta->sta.aid, filtered, buffered);#endif /* CONFIG_MAC80211_VERBOSE_PS_DEBUG */ }
@@ -1385,8 +1382,8 @@ int sta_info_move_state(struct sta_info *sta, }#ifdef CONFIG_MAC80211_VERBOSE_DEBUG -printk (KERN_DEBUG "%s: moving STA %pM to state %d\n" , - sta->sdata->name, sta->sta.addr, new_state); +pr_debug ("%s: moving STA %pM to state %d\n" , + sta->sdata->name, sta->sta.addr, new_state);#endif /*
net/mac80211/status.c +1 -1
@@ -589,7 +589,7 @@ void ieee80211_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb)/* send frame to monitor interfaces now */ rtap_len =ieee80211_tx_radiotap_len (info);if (WARN_ON_ONCE (skb_headroom (skb) < rtap_len)) { -printk (KERN_ERR "ieee80211_tx_status: headroom too small\n" ); +pr_err ("ieee80211_tx_status: headroom too small\n" );dev_kfree_skb (skb);return ; }
net/mac80211/tkip.c +9 -12
@@ -263,12 +263,11 @@ int ieee80211_tkip_decrypt_data(struct crypto_cipher *tfm,#ifdef CONFIG_MAC80211_TKIP_DEBUG {int i; -printk (KERN_DEBUG "TKIP decrypt: data(len=%zd)" , payload_len); +pr_debug ("TKIP decrypt: data(len=%zd)" , payload_len);for (i =0 ; i < payload_len; i++)printk (" %02x" , payload[i]);printk ("\n" ); -printk (KERN_DEBUG "TKIP decrypt: iv16=%04x iv32=%08x\n" , - iv16, iv32); +pr_debug ("TKIP decrypt: iv16=%04x iv32=%08x\n" , iv16, iv32); }#endif
@@ -283,11 +282,10 @@ int ieee80211_tkip_decrypt_data(struct crypto_cipher *tfm, (iv32 == key->u.tkip.rx[queue].iv32 && iv16 <= key->u.tkip.rx[queue].iv16))) {#ifdef CONFIG_MAC80211_TKIP_DEBUG -printk (KERN_DEBUG "TKIP replay detected for RX frame from " -"%pM (RX IV (%04x,%02x) <= prev. IV (%04x,%02x)\n" , - ta, - iv32, iv16, key->u.tkip.rx[queue].iv32, - key->u.tkip.rx[queue].iv16); +pr_debug ("TKIP replay detected for RX frame from %pM (RX IV (%04x,%02x) <= prev. IV (%04x,%02x)\n" , + ta, iv32, iv16, + key->u.tkip.rx[queue].iv32, + key->u.tkip.rx[queue].iv16);#endif return TKIP_DECRYPT_REPLAY ; }
@@ -306,13 +304,12 @@ int ieee80211_tkip_decrypt_data(struct crypto_cipher *tfm, {int i;u8 key_offset =NL80211_TKIP_DATA_OFFSET_ENCR_KEY ; -printk (KERN_DEBUG "TKIP decrypt: Phase1 TA=%pM" -" TK=" , ta); +pr_debug ("TKIP decrypt: Phase1 TA=%pM TK=" , ta);for (i =0 ; i <16 ; i++)printk ("%02x " , key->conf.key[key_offset + i]);printk ("\n" ); -printk (KERN_DEBUG "TKIP decrypt: P1K=" ); +pr_debug ("TKIP decrypt: P1K=" );for (i =0 ; i <5 ; i++)printk ("%04x " , key->u.tkip.rx[queue].p1k[i]);printk ("\n" );
@@ -336,7 +333,7 @@ int ieee80211_tkip_decrypt_data(struct crypto_cipher *tfm,#ifdef CONFIG_MAC80211_TKIP_DEBUG {int i; -printk (KERN_DEBUG "TKIP decrypt: Phase2 rc4key=" ); +pr_debug ("TKIP decrypt: Phase2 rc4key=" );for (i =0 ; i <16 ; i++)printk ("%02x " , rc4key[i]);printk ("\n" );
net/mac80211/tx.c +6 -8
@@ -297,9 +297,8 @@ ieee80211_tx_h_check_assoc(struct ieee80211_tx_data *tx)if (unlikely (!assoc &&ieee80211_is_data (hdr->frame_control))) {#ifdef CONFIG_MAC80211_VERBOSE_DEBUG -printk (KERN_DEBUG "%s: dropped data frame to not " -"associated station %pM\n" , - tx->sdata->name, hdr->addr1); +pr_debug ("%s: dropped data frame to not associated station %pM\n" , + tx->sdata->name, hdr->addr1);#endif /* CONFIG_MAC80211_VERBOSE_DEBUG */ I802_DEBUG_INC (tx->local->tx_handlers_drop_not_assoc);return TX_DROP ;
@@ -467,8 +466,8 @@ ieee80211_tx_h_unicast_ps_buf(struct ieee80211_tx_data *tx) }#ifdef CONFIG_MAC80211_VERBOSE_PS_DEBUG -printk (KERN_DEBUG "STA %pM aid %d: PS buffer for AC %d\n" , - sta->sta.addr, sta->sta.aid, ac); +pr_debug ("STA %pM aid %d: PS buffer for AC %d\n" , + sta->sta.addr, sta->sta.aid, ac);#endif /* CONFIG_MAC80211_VERBOSE_PS_DEBUG */ if (tx->local->total_ps_buffered >=TOTAL_MAX_TX_BUFFER )purge_old_ps_buffers (tx->local);
@@ -502,9 +501,8 @@ ieee80211_tx_h_unicast_ps_buf(struct ieee80211_tx_data *tx) }#ifdef CONFIG_MAC80211_VERBOSE_PS_DEBUG else if (unlikely(test_sta_flag(sta, WLAN_STA_PS_STA))) { -printk (KERN_DEBUG -"%s: STA %pM in PS mode, but polling/in SP -> send frame\n" , - tx->sdata->name, sta->sta.addr); +pr_debug ("%s: STA %pM in PS mode, but polling/in SP -> send frame\n" , + tx->sdata->name, sta->sta.addr); }#endif /* CONFIG_MAC80211_VERBOSE_PS_DEBUG */
Signature · 1 line
1.7.8.111.gad25c.dirty
PATCH 2/3 net: mac80211: Add and use ht_vdbg debugging macro
In reply to Joe PerchesSimplify the use of #ifdef CONFIG_MAC80211_HT_DEBUG/#endif by adding a logging macro to encapsulate the test.
Convert the appropriate uses too.
--- include/net/mac80211.h | 13 ++++++ net/mac80211/agg-rx.c | 24 ++++------- net/mac80211/agg-tx.c | 103 +++++++++++++---------------------------------- 3 files changed, 50 insertions(+), 90 deletions(-)
include/net/mac80211.h +13 -0
@@ -3829,4 +3829,17 @@ int ieee80211_add_ext_srates_ie(struct ieee80211_vif *vif,*/ int ieee80211_ave_rssi (struct ieee80211_vif *vif); +/* Extra debugging macros */ + +#ifdef CONFIG_MAC80211_HT_DEBUG +#define ht_vdbg (fmt, ...) \ + pr_debug(fmt, ##__VA_ARGS__) +#else +#define ht_vdbg (fmt, ...) \ +do { \ + if (0) \ + pr_debug(fmt, ##__VA_ARGS__); \ +} while (0) +#endif +#endif /* MAC80211_H */
net/mac80211/agg-rx.c +8 -16
@@ -74,12 +74,10 @@ void ___ieee80211_stop_rx_ba_session(struct sta_info *sta, u16 tid,RCU_INIT_POINTER (sta->ampdu_mlme.tid_rx[tid],NULL ); -#ifdef CONFIG_MAC80211_HT_DEBUG -pr_debug ("Rx BA session stop requested for %pM tid %u %s reason: %d\n" , - sta->sta.addr, tid, - initiator ==WLAN_BACK_RECIPIENT ?"recipient" :"inititator" , - (int )reason); -#endif /* CONFIG_MAC80211_HT_DEBUG */ +ht_vdbg ("Rx BA session stop requested for %pM tid %u %s reason: %d\n" , + sta->sta.addr, tid, + initiator ==WLAN_BACK_RECIPIENT ?"recipient" :"inititator" , + (int )reason);if (drv_ampdu_action (local, sta->sdata,IEEE80211_AMPDU_RX_STOP , &sta->sta, tid,NULL ,0 ))
@@ -154,9 +152,8 @@ static void sta_rx_agg_session_timer_expired(unsigned long data)return ; } -#ifdef CONFIG_MAC80211_HT_DEBUG -pr_debug ("rx session timer expired on tid %d\n" , (u16)*ptid); -#endif +ht_vdbg ("rx session timer expired on tid %d\n" , (u16)*ptid); +set_bit (*ptid, sta->ampdu_mlme.tid_rx_timer_expired);ieee80211_queue_work (&sta->local->hw, &sta->ampdu_mlme.work); }
@@ -243,9 +240,7 @@ void ieee80211_process_addba_request(struct ieee80211_local *local, status =WLAN_STATUS_REQUEST_DECLINED ;if (test_sta_flag (sta,WLAN_STA_BLOCK_BA )) { -#ifdef CONFIG_MAC80211_HT_DEBUG -pr_debug ("Suspend in progress - Denying ADDBA request\n" ); -#endif +ht_vdbg ("Suspend in progress - Denying ADDBA request\n" ); goto end_no_lock; }
@@ -317,10 +312,7 @@ void ieee80211_process_addba_request(struct ieee80211_local *local, ret =drv_ampdu_action (local, sta->sdata,IEEE80211_AMPDU_RX_START , &sta->sta, tid, &start_seq_num,0 ); -#ifdef CONFIG_MAC80211_HT_DEBUG -pr_debug ("Rx A-MPDU request on tid %d result %d\n" , tid, ret); -#endif /* CONFIG_MAC80211_HT_DEBUG */ - +ht_vdbg ("Rx A-MPDU request on tid %d result %d\n" , tid, ret);if (ret) {kfree (tid_agg_rx->reorder_buf);kfree (tid_agg_rx->reorder_time);
net/mac80211/agg-tx.c +29 -74
227 lines not on this page · raw message
Signature · 1 line
1.7.8.111.gad25c.dirty
PATCH 3/3 net: mac80211: Add and use ibss_vdbg debugging macro
In reply to Joe PerchesSimplify the use of #ifdef CONFIG_MAC80211_IBSS_DEBUG/#endif by adding a logging macro to encapsulate the test.
Convert the appropriate uses too.
--- include/net/mac80211.h | 11 ++++++ net/mac80211/ibss.c | 79 ++++++++++++++++------------------------------ net/mac80211/sta_info.c | 6 +-- 3 files changed, 41 insertions(+), 55 deletions(-)
include/net/mac80211.h +11 -0
@@ -3842,4 +3842,15 @@ do { \ } while (0)#endif +#ifdef CONFIG_MAC80211_IBSS_DEBUG +#define ibss_vdbg (fmt, ...) \ + pr_debug(fmt, ##__VA_ARGS__) +#else +#define ibss_vdbg (fmt, ...) \ +do { \ + if (0) \ + pr_debug(fmt, ##__VA_ARGS__); \ +} while (0) +#endif +#endif /* MAC80211_H */
net/mac80211/ibss.c +28 -51
141 lines not on this page · raw message
net/mac80211/sta_info.c +2 -4
@@ -887,10 +887,8 @@ void ieee80211_sta_expire(struct ieee80211_sub_if_data *sdata,continue ;if (time_after (jiffies, sta->last_rx + exp_time)) { -#ifdef CONFIG_MAC80211_IBSS_DEBUG -pr_debug ("%s: expiring inactive STA %pM\n" , - sdata->name, sta->sta.addr); -#endif +ibss_vdbg ("%s: expiring inactive STA %pM\n" , + sdata->name, sta->sta.addr);WARN_ON (__sta_info_destroy (sta)); } }
Signature · 1 line
1.7.8.111.gad25c.dirty
David Miller
maintainerRe: [PATCH 0/3] net: mac80211: Neaten debugging
In reply to Joe PerchesFrom: Joe Perches <[email protected]>
Date: Tue, 15 May 2012 14:20:29 -0700
Quoted 6 lines
Always use
pr_debugvariants instead ofprintk(KERN_DEBUG...)Joe Perches (3):
net: mac80211: Convert printk(KERN_DEBUG topr_debug
net: mac80211: Add and useht_vdbgdebugging macro
net: mac80211: Add and useibss_vdbgdebugging macro
I really think this is the right thing to do and I hope the wireless folks integrate this.
I am well aware that you guys intend for some of these messages to be indications and notifications the user is intended to SEE, but in the cases where that is true KERN_DEBUG is absolutely not appropriate.
You should be using KERN_INFO or KERN_WARN in those situations instead.
Thanks.
Johannes Berg
maintainerRe: [PATCH 0/3] net: mac80211: Neaten debugging
Quoted 13 lines · David Miller
From: Joe Perches <[email protected]>
Date: Tue, 15 May 2012 14:20:29 -0700Quoted 6 lines
Always use
pr_debugvariants instead ofprintk(KERN_DEBUG...)Joe Perches (3):
net: mac80211: Convert printk(KERN_DEBUG topr_debug
net: mac80211: Add and useht_vdbgdebugging macro
net: mac80211: Add and useibss_vdbgdebugging macroI really think this is the right thing to do and I hope the wireless folks integrate this.
Quoted 6 lines
I am well aware that you guys intend for some of these messages to be indications and notifications the user is intended to SEE, but in the cases where that is true
KERN_DEBUGis absolutely not appropriate.You should be using
KERN_INFOorKERN_WARNin those situations instead.
Yeah, makes sense. I wonder if it makes sense to leave these under #ifdef though? Why #ifdef something if it's going to be invisible most of the time anyway?
johannes
Re: [PATCH 0/3] net: mac80211: Neaten debugging
Quoted 3 lines · Johannes Berg
I wonder if it makes sense to leave these under
#ifdef though? Why #ifdef something if it's going to be invisible most of the time anyway?
I don't understand your point.
#ifdef removal is a good thing.
Johannes Berg
maintainerRe: [PATCH 0/3] net: mac80211: Neaten debugging
Quoted 7 lines · Joe Perches
Quoted 3 lines · Johannes Berg
I wonder if it makes sense to leave these under
#ifdef though? Why #ifdef something if it's going to be invisible most of the time anyway?I don't understand your point.
#ifdef removal is a good thing.
Yeah, but you left a lot of them under ifdef, and I'm wondering why you didn't remove them, or if you should, or ...
johannes
Re: [PATCH 0/3] net: mac80211: Neaten debugging
Quoted 11 lines · Johannes Berg
Quoted 7 lines · Joe Perches
Quoted 3 lines · Johannes Berg
I wonder if it makes sense to leave these under
#ifdef though? Why #ifdef something if it's going to be invisible most of the time anyway?I don't understand your point.
#ifdef removal is a good thing.Yeah, but you left a lot of them under ifdef, and I'm wondering why you didn't remove them, or if you should, or ...
Those mostly use other different
#ifdef CONFIG_SOME_OTHER_CONTROL elements.
There are I think 3 that I left because they do
not use printk/pr_level but use wiphy_<level> or
netdev_<level>.
Johannes Berg
maintainerRe: [PATCH 0/3] net: mac80211: Neaten debugging
Quoted 13 lines · Joe Perches
Quoted 11 lines · Johannes Berg
Quoted 7 lines · Joe Perches
Quoted 3 lines · Johannes Berg
I wonder if it makes sense to leave these under
#ifdef though? Why #ifdef something if it's going to be invisible most of the time anyway?I don't understand your point.
#ifdef removal is a good thing.Yeah, but you left a lot of them under ifdef, and I'm wondering why you didn't remove them, or if you should, or ...
Quoted 6 lines
Those mostly use other different
#ifdefCONFIG_SOME_OTHER_CONTROLelements.There are I think 3 that I left because they do
not use printk/pr_level but use wiphy_<level> or
netdev_<level>.
Hmm, ok. I guess I need to just look at them and decide what should be what. Thanks for the preparation work though :)
johannes
David Miller
maintainerFrom: Joe Perches <[email protected]>
Date: Tue, 15 May 2012 10:59:25 -0700
Quoted 4 lines
I could produce a
net_printk_ratelimitedthat would keep the original behavior if necessary.
net_printk_ratelimited(KERN_DEBUG etc...)
I don't think it's worth the hassle, we'd rather get people into the habit of using dynamic_debug.
Johannes Berg
maintainerQuoted 7 lines · Joe Perches
OK, but fyi, there's a possible issue with !CONFIG_DEBUG builds because these patches converted some uses of
if (net_ratelimit())
printk(KERN_DEBUG ...
to
net_dbg_ratelimited()
Quoted 8 lines
These messages are no longer emitted when DEBUG isn't defined and not using
dynamic_debug. I'm not sure that's a real problem, but it's a difference.I could produce a
net_printk_ratelimitedthat would keep the original behavior if necessary.
net_printk_ratelimited(KERN_DEBUG etc...)
Btw, what would the difference be to just plain printk_ratelimited()?
johannes
David Miller
maintainerFrom: Johannes Berg <[email protected]>
Date: Tue, 15 May 2012 20:27:10 +0200
Quoted 13 lines · Joe Perches
Quoted 12 lines
OK, but fyi, there's a possible issue with !CONFIG_DEBUG builds because these patches converted some uses of
if (net_ratelimit())
printk(KERN_DEBUG ...
to
net_dbg_ratelimited()These messages are no longer emitted when DEBUG isn't defined and not using
dynamic_debug. I'm not sure that's a real problem, but it's a difference.
Quoted 6 lines
Quoted 4 lines
I could produce a
net_printk_ratelimitedthat would keep the original behavior if necessary.
net_printk_ratelimited(KERN_DEBUG etc...)Btw, what would the difference be to just plain
printk_ratelimited()?
printk_ratelimited() drops a local ratelimit cookie into each call-site, whereas we have a global one for the networking which these new interfaces use.
Joe explained this completely in his 0/2 patch posting.
Johannes Berg
maintainerQuoted 21 lines · David Miller
From: Johannes Berg <[email protected]>
Date: Tue, 15 May 2012 20:27:10 +0200Quoted 18 lines · Joe Perches
Quoted 16 lines
OK, but fyi, there's a possible issue with !CONFIG_DEBUG builds because these patches converted some uses of
if (net_ratelimit())
printk(KERN_DEBUG ...
to
net_dbg_ratelimited()These messages are no longer emitted when DEBUG isn't defined and not using
dynamic_debug. I'm not sure that's a real problem, but it's a difference.I could produce a
net_printk_ratelimitedthat would keep the original behavior if necessary.
net_printk_ratelimited(KERN_DEBUG etc...)
Quoted 7 lines
Quoted 1 line
Btw, what would the difference be to just plain
printk_ratelimited()?
printk_ratelimited()drops a local ratelimit cookie into each call-site, whereas we have a global one for the networking which these new interfaces use.Joe explained this completely in his 0/2 patch posting.
I don't see that explicitly mentioned, but it doesn't matter much anyway.
In the mac80211 case, messages are warnings/hints to the user, we just don't want them to flood the logs too much. I'd rather have that kind of change (limit cookie per callsite) in the rate limiting semantics than the change in the when it gets printed at all.
I simply feel that obscuring the debugging even further wouldn't be a good thing to do right now. I'd rather have somebody convert all of it to the new debugging infrastructure but that seems a lot more effort than changing these back to something that isn't impacted by dynamic printk.
johannes
David Miller
maintainerFrom: Johannes Berg <[email protected]>
Date: Tue, 15 May 2012 20:40:45 +0200
Quoted 4 lines
In the mac80211 case, messages are warnings/hints to the user, we just don't want them to flood the logs too much. I'd rather have that kind of change (limit cookie per callsite) in the rate limiting semantics than the change in the when it gets printed at all.
Then they aren't KERN_DEBUG, they are KERN_INFO or KERN_WARN.