Skip to content

Commit 5b87be9

Browse files
edumazetdavem330
authored andcommitted
net: add include/net/net_debug.h
Remove from include/linux/netdevice.h helpers that send debug/info/warnings to syslog. We plan adding more helpers in following patches. v2: added two includes, and 'struct net_device' forward declaration to avoid compile errors (kernel bots) Signed-off-by: Eric Dumazet <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent dc3a200 commit 5b87be9

File tree

2 files changed

+152
-140
lines changed

2 files changed

+152
-140
lines changed

include/linux/netdevice.h

Lines changed: 1 addition & 140 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
#include <linux/hashtable.h>
5151
#include <linux/rbtree.h>
5252
#include <net/net_trackers.h>
53+
#include <net/net_debug.h>
5354

5455
struct netpoll_info;
5556
struct device;
@@ -5071,81 +5072,9 @@ static inline const char *netdev_reg_state(const struct net_device *dev)
50715072
return " (unknown)";
50725073
}
50735074

5074-
__printf(3, 4) __cold
5075-
void netdev_printk(const char *level, const struct net_device *dev,
5076-
const char *format, ...);
5077-
__printf(2, 3) __cold
5078-
void netdev_emerg(const struct net_device *dev, const char *format, ...);
5079-
__printf(2, 3) __cold
5080-
void netdev_alert(const struct net_device *dev, const char *format, ...);
5081-
__printf(2, 3) __cold
5082-
void netdev_crit(const struct net_device *dev, const char *format, ...);
5083-
__printf(2, 3) __cold
5084-
void netdev_err(const struct net_device *dev, const char *format, ...);
5085-
__printf(2, 3) __cold
5086-
void netdev_warn(const struct net_device *dev, const char *format, ...);
5087-
__printf(2, 3) __cold
5088-
void netdev_notice(const struct net_device *dev, const char *format, ...);
5089-
__printf(2, 3) __cold
5090-
void netdev_info(const struct net_device *dev, const char *format, ...);
5091-
5092-
#define netdev_level_once(level, dev, fmt, ...) \
5093-
do { \
5094-
static bool __section(".data.once") __print_once; \
5095-
\
5096-
if (!__print_once) { \
5097-
__print_once = true; \
5098-
netdev_printk(level, dev, fmt, ##__VA_ARGS__); \
5099-
} \
5100-
} while (0)
5101-
5102-
#define netdev_emerg_once(dev, fmt, ...) \
5103-
netdev_level_once(KERN_EMERG, dev, fmt, ##__VA_ARGS__)
5104-
#define netdev_alert_once(dev, fmt, ...) \
5105-
netdev_level_once(KERN_ALERT, dev, fmt, ##__VA_ARGS__)
5106-
#define netdev_crit_once(dev, fmt, ...) \
5107-
netdev_level_once(KERN_CRIT, dev, fmt, ##__VA_ARGS__)
5108-
#define netdev_err_once(dev, fmt, ...) \
5109-
netdev_level_once(KERN_ERR, dev, fmt, ##__VA_ARGS__)
5110-
#define netdev_warn_once(dev, fmt, ...) \
5111-
netdev_level_once(KERN_WARNING, dev, fmt, ##__VA_ARGS__)
5112-
#define netdev_notice_once(dev, fmt, ...) \
5113-
netdev_level_once(KERN_NOTICE, dev, fmt, ##__VA_ARGS__)
5114-
#define netdev_info_once(dev, fmt, ...) \
5115-
netdev_level_once(KERN_INFO, dev, fmt, ##__VA_ARGS__)
5116-
51175075
#define MODULE_ALIAS_NETDEV(device) \
51185076
MODULE_ALIAS("netdev-" device)
51195077

5120-
#if defined(CONFIG_DYNAMIC_DEBUG) || \
5121-
(defined(CONFIG_DYNAMIC_DEBUG_CORE) && defined(DYNAMIC_DEBUG_MODULE))
5122-
#define netdev_dbg(__dev, format, args...) \
5123-
do { \
5124-
dynamic_netdev_dbg(__dev, format, ##args); \
5125-
} while (0)
5126-
#elif defined(DEBUG)
5127-
#define netdev_dbg(__dev, format, args...) \
5128-
netdev_printk(KERN_DEBUG, __dev, format, ##args)
5129-
#else
5130-
#define netdev_dbg(__dev, format, args...) \
5131-
({ \
5132-
if (0) \
5133-
netdev_printk(KERN_DEBUG, __dev, format, ##args); \
5134-
})
5135-
#endif
5136-
5137-
#if defined(VERBOSE_DEBUG)
5138-
#define netdev_vdbg netdev_dbg
5139-
#else
5140-
5141-
#define netdev_vdbg(dev, format, args...) \
5142-
({ \
5143-
if (0) \
5144-
netdev_printk(KERN_DEBUG, dev, format, ##args); \
5145-
0; \
5146-
})
5147-
#endif
5148-
51495078
/*
51505079
* netdev_WARN() acts like dev_printk(), but with the key difference
51515080
* of using a WARN/WARN_ON to get the message out, including the
@@ -5159,74 +5088,6 @@ do { \
51595088
WARN_ONCE(1, "netdevice: %s%s: " format, netdev_name(dev), \
51605089
netdev_reg_state(dev), ##args)
51615090

5162-
/* netif printk helpers, similar to netdev_printk */
5163-
5164-
#define netif_printk(priv, type, level, dev, fmt, args...) \
5165-
do { \
5166-
if (netif_msg_##type(priv)) \
5167-
netdev_printk(level, (dev), fmt, ##args); \
5168-
} while (0)
5169-
5170-
#define netif_level(level, priv, type, dev, fmt, args...) \
5171-
do { \
5172-
if (netif_msg_##type(priv)) \
5173-
netdev_##level(dev, fmt, ##args); \
5174-
} while (0)
5175-
5176-
#define netif_emerg(priv, type, dev, fmt, args...) \
5177-
netif_level(emerg, priv, type, dev, fmt, ##args)
5178-
#define netif_alert(priv, type, dev, fmt, args...) \
5179-
netif_level(alert, priv, type, dev, fmt, ##args)
5180-
#define netif_crit(priv, type, dev, fmt, args...) \
5181-
netif_level(crit, priv, type, dev, fmt, ##args)
5182-
#define netif_err(priv, type, dev, fmt, args...) \
5183-
netif_level(err, priv, type, dev, fmt, ##args)
5184-
#define netif_warn(priv, type, dev, fmt, args...) \
5185-
netif_level(warn, priv, type, dev, fmt, ##args)
5186-
#define netif_notice(priv, type, dev, fmt, args...) \
5187-
netif_level(notice, priv, type, dev, fmt, ##args)
5188-
#define netif_info(priv, type, dev, fmt, args...) \
5189-
netif_level(info, priv, type, dev, fmt, ##args)
5190-
5191-
#if defined(CONFIG_DYNAMIC_DEBUG) || \
5192-
(defined(CONFIG_DYNAMIC_DEBUG_CORE) && defined(DYNAMIC_DEBUG_MODULE))
5193-
#define netif_dbg(priv, type, netdev, format, args...) \
5194-
do { \
5195-
if (netif_msg_##type(priv)) \
5196-
dynamic_netdev_dbg(netdev, format, ##args); \
5197-
} while (0)
5198-
#elif defined(DEBUG)
5199-
#define netif_dbg(priv, type, dev, format, args...) \
5200-
netif_printk(priv, type, KERN_DEBUG, dev, format, ##args)
5201-
#else
5202-
#define netif_dbg(priv, type, dev, format, args...) \
5203-
({ \
5204-
if (0) \
5205-
netif_printk(priv, type, KERN_DEBUG, dev, format, ##args); \
5206-
0; \
5207-
})
5208-
#endif
5209-
5210-
/* if @cond then downgrade to debug, else print at @level */
5211-
#define netif_cond_dbg(priv, type, netdev, cond, level, fmt, args...) \
5212-
do { \
5213-
if (cond) \
5214-
netif_dbg(priv, type, netdev, fmt, ##args); \
5215-
else \
5216-
netif_ ## level(priv, type, netdev, fmt, ##args); \
5217-
} while (0)
5218-
5219-
#if defined(VERBOSE_DEBUG)
5220-
#define netif_vdbg netif_dbg
5221-
#else
5222-
#define netif_vdbg(priv, type, dev, format, args...) \
5223-
({ \
5224-
if (0) \
5225-
netif_printk(priv, type, KERN_DEBUG, dev, format, ##args); \
5226-
0; \
5227-
})
5228-
#endif
5229-
52305091
/*
52315092
* The list of packet types we will receive (as opposed to discard)
52325093
* and the routines to invoke.

include/net/net_debug.h

Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
/* SPDX-License-Identifier: GPL-2.0 */
2+
#ifndef _LINUX_NET_DEBUG_H
3+
#define _LINUX_NET_DEBUG_H
4+
5+
#include <linux/bug.h>
6+
#include <linux/kern_levels.h>
7+
8+
struct net_device;
9+
10+
__printf(3, 4) __cold
11+
void netdev_printk(const char *level, const struct net_device *dev,
12+
const char *format, ...);
13+
__printf(2, 3) __cold
14+
void netdev_emerg(const struct net_device *dev, const char *format, ...);
15+
__printf(2, 3) __cold
16+
void netdev_alert(const struct net_device *dev, const char *format, ...);
17+
__printf(2, 3) __cold
18+
void netdev_crit(const struct net_device *dev, const char *format, ...);
19+
__printf(2, 3) __cold
20+
void netdev_err(const struct net_device *dev, const char *format, ...);
21+
__printf(2, 3) __cold
22+
void netdev_warn(const struct net_device *dev, const char *format, ...);
23+
__printf(2, 3) __cold
24+
void netdev_notice(const struct net_device *dev, const char *format, ...);
25+
__printf(2, 3) __cold
26+
void netdev_info(const struct net_device *dev, const char *format, ...);
27+
28+
#define netdev_level_once(level, dev, fmt, ...) \
29+
do { \
30+
static bool __section(".data.once") __print_once; \
31+
\
32+
if (!__print_once) { \
33+
__print_once = true; \
34+
netdev_printk(level, dev, fmt, ##__VA_ARGS__); \
35+
} \
36+
} while (0)
37+
38+
#define netdev_emerg_once(dev, fmt, ...) \
39+
netdev_level_once(KERN_EMERG, dev, fmt, ##__VA_ARGS__)
40+
#define netdev_alert_once(dev, fmt, ...) \
41+
netdev_level_once(KERN_ALERT, dev, fmt, ##__VA_ARGS__)
42+
#define netdev_crit_once(dev, fmt, ...) \
43+
netdev_level_once(KERN_CRIT, dev, fmt, ##__VA_ARGS__)
44+
#define netdev_err_once(dev, fmt, ...) \
45+
netdev_level_once(KERN_ERR, dev, fmt, ##__VA_ARGS__)
46+
#define netdev_warn_once(dev, fmt, ...) \
47+
netdev_level_once(KERN_WARNING, dev, fmt, ##__VA_ARGS__)
48+
#define netdev_notice_once(dev, fmt, ...) \
49+
netdev_level_once(KERN_NOTICE, dev, fmt, ##__VA_ARGS__)
50+
#define netdev_info_once(dev, fmt, ...) \
51+
netdev_level_once(KERN_INFO, dev, fmt, ##__VA_ARGS__)
52+
53+
#if defined(CONFIG_DYNAMIC_DEBUG) || \
54+
(defined(CONFIG_DYNAMIC_DEBUG_CORE) && defined(DYNAMIC_DEBUG_MODULE))
55+
#define netdev_dbg(__dev, format, args...) \
56+
do { \
57+
dynamic_netdev_dbg(__dev, format, ##args); \
58+
} while (0)
59+
#elif defined(DEBUG)
60+
#define netdev_dbg(__dev, format, args...) \
61+
netdev_printk(KERN_DEBUG, __dev, format, ##args)
62+
#else
63+
#define netdev_dbg(__dev, format, args...) \
64+
({ \
65+
if (0) \
66+
netdev_printk(KERN_DEBUG, __dev, format, ##args); \
67+
})
68+
#endif
69+
70+
#if defined(VERBOSE_DEBUG)
71+
#define netdev_vdbg netdev_dbg
72+
#else
73+
74+
#define netdev_vdbg(dev, format, args...) \
75+
({ \
76+
if (0) \
77+
netdev_printk(KERN_DEBUG, dev, format, ##args); \
78+
0; \
79+
})
80+
#endif
81+
82+
/* netif printk helpers, similar to netdev_printk */
83+
84+
#define netif_printk(priv, type, level, dev, fmt, args...) \
85+
do { \
86+
if (netif_msg_##type(priv)) \
87+
netdev_printk(level, (dev), fmt, ##args); \
88+
} while (0)
89+
90+
#define netif_level(level, priv, type, dev, fmt, args...) \
91+
do { \
92+
if (netif_msg_##type(priv)) \
93+
netdev_##level(dev, fmt, ##args); \
94+
} while (0)
95+
96+
#define netif_emerg(priv, type, dev, fmt, args...) \
97+
netif_level(emerg, priv, type, dev, fmt, ##args)
98+
#define netif_alert(priv, type, dev, fmt, args...) \
99+
netif_level(alert, priv, type, dev, fmt, ##args)
100+
#define netif_crit(priv, type, dev, fmt, args...) \
101+
netif_level(crit, priv, type, dev, fmt, ##args)
102+
#define netif_err(priv, type, dev, fmt, args...) \
103+
netif_level(err, priv, type, dev, fmt, ##args)
104+
#define netif_warn(priv, type, dev, fmt, args...) \
105+
netif_level(warn, priv, type, dev, fmt, ##args)
106+
#define netif_notice(priv, type, dev, fmt, args...) \
107+
netif_level(notice, priv, type, dev, fmt, ##args)
108+
#define netif_info(priv, type, dev, fmt, args...) \
109+
netif_level(info, priv, type, dev, fmt, ##args)
110+
111+
#if defined(CONFIG_DYNAMIC_DEBUG) || \
112+
(defined(CONFIG_DYNAMIC_DEBUG_CORE) && defined(DYNAMIC_DEBUG_MODULE))
113+
#define netif_dbg(priv, type, netdev, format, args...) \
114+
do { \
115+
if (netif_msg_##type(priv)) \
116+
dynamic_netdev_dbg(netdev, format, ##args); \
117+
} while (0)
118+
#elif defined(DEBUG)
119+
#define netif_dbg(priv, type, dev, format, args...) \
120+
netif_printk(priv, type, KERN_DEBUG, dev, format, ##args)
121+
#else
122+
#define netif_dbg(priv, type, dev, format, args...) \
123+
({ \
124+
if (0) \
125+
netif_printk(priv, type, KERN_DEBUG, dev, format, ##args); \
126+
0; \
127+
})
128+
#endif
129+
130+
/* if @cond then downgrade to debug, else print at @level */
131+
#define netif_cond_dbg(priv, type, netdev, cond, level, fmt, args...) \
132+
do { \
133+
if (cond) \
134+
netif_dbg(priv, type, netdev, fmt, ##args); \
135+
else \
136+
netif_ ## level(priv, type, netdev, fmt, ##args); \
137+
} while (0)
138+
139+
#if defined(VERBOSE_DEBUG)
140+
#define netif_vdbg netif_dbg
141+
#else
142+
#define netif_vdbg(priv, type, dev, format, args...) \
143+
({ \
144+
if (0) \
145+
netif_printk(priv, type, KERN_DEBUG, dev, format, ##args); \
146+
0; \
147+
})
148+
#endif
149+
150+
151+
#endif /* _LINUX_NET_DEBUG_H */

0 commit comments

Comments
 (0)