diff options
| author | Joe Perches <joe@perches.com> | 2010-02-09 06:49:47 -0500 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2010-02-12 16:27:44 -0500 |
| commit | 571ba42303813106d533bf6bda929d8e289f51bf (patch) | |
| tree | 72a4cac3c48dded8aeda6f3f839764b9b766fe13 /include/linux | |
| parent | 21809fafa042fcfff3f788419bed99f3c289745c (diff) | |
netdevice.h: Add netdev_printk helpers like dev_printk
These netdev_printk routines take a struct net_device * and emit
dev_printk logging messages adding "%s: " ... netdev->dev.parent
to the dev_printk format and arguments.
This can create some uniformity in the output message log.
These helpers should not be used until a successful alloc_netdev.
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/netdevice.h | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index cdf53a8d9ff..a51228ac933 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
| @@ -2095,6 +2095,77 @@ static inline u32 dev_ethtool_get_flags(struct net_device *dev) | |||
| 2095 | return 0; | 2095 | return 0; |
| 2096 | return dev->ethtool_ops->get_flags(dev); | 2096 | return dev->ethtool_ops->get_flags(dev); |
| 2097 | } | 2097 | } |
| 2098 | |||
| 2099 | /* Logging, debugging and troubleshooting/diagnostic helpers. */ | ||
| 2100 | |||
| 2101 | /* netdev_printk helpers, similar to dev_printk */ | ||
| 2102 | |||
| 2103 | static inline const char *netdev_name(const struct net_device *dev) | ||
| 2104 | { | ||
| 2105 | if (dev->reg_state != NETREG_REGISTERED) | ||
| 2106 | return "(unregistered net_device)"; | ||
| 2107 | return dev->name; | ||
| 2108 | } | ||
| 2109 | |||
| 2110 | #define netdev_printk(level, netdev, format, args...) \ | ||
| 2111 | dev_printk(level, (netdev)->dev.parent, \ | ||
| 2112 | "%s: " format, \ | ||
| 2113 | netdev_name(netdev), ##args) | ||
| 2114 | |||
| 2115 | #define netdev_emerg(dev, format, args...) \ | ||
| 2116 | netdev_printk(KERN_EMERG, dev, format, ##args) | ||
| 2117 | #define netdev_alert(dev, format, args...) \ | ||
| 2118 | netdev_printk(KERN_ALERT, dev, format, ##args) | ||
| 2119 | #define netdev_crit(dev, format, args...) \ | ||
| 2120 | netdev_printk(KERN_CRIT, dev, format, ##args) | ||
| 2121 | #define netdev_err(dev, format, args...) \ | ||
| 2122 | netdev_printk(KERN_ERR, dev, format, ##args) | ||
| 2123 | #define netdev_warn(dev, format, args...) \ | ||
| 2124 | netdev_printk(KERN_WARNING, dev, format, ##args) | ||
| 2125 | #define netdev_notice(dev, format, args...) \ | ||
| 2126 | netdev_printk(KERN_NOTICE, dev, format, ##args) | ||
| 2127 | #define netdev_info(dev, format, args...) \ | ||
| 2128 | netdev_printk(KERN_INFO, dev, format, ##args) | ||
| 2129 | |||
| 2130 | #if defined(DEBUG) | ||
| 2131 | #define netdev_dbg(__dev, format, args...) \ | ||
| 2132 | netdev_printk(KERN_DEBUG, __dev, format, ##args) | ||
| 2133 | #elif defined(CONFIG_DYNAMIC_DEBUG) | ||
| 2134 | #define netdev_dbg(__dev, format, args...) \ | ||
| 2135 | do { \ | ||
| 2136 | dynamic_dev_dbg((__dev)->dev.parent, "%s: " format, \ | ||
| 2137 | netdev_name(__dev), ##args); \ | ||
| 2138 | } while (0) | ||
| 2139 | #else | ||
| 2140 | #define netdev_dbg(__dev, format, args...) \ | ||
| 2141 | ({ \ | ||
| 2142 | if (0) \ | ||
| 2143 | netdev_printk(KERN_DEBUG, __dev, format, ##args); \ | ||
| 2144 | 0; \ | ||
| 2145 | }) | ||
| 2146 | #endif | ||
| 2147 | |||
| 2148 | #if defined(VERBOSE_DEBUG) | ||
| 2149 | #define netdev_vdbg netdev_dbg | ||
| 2150 | #else | ||
| 2151 | |||
| 2152 | #define netdev_vdbg(dev, format, args...) \ | ||
| 2153 | ({ \ | ||
| 2154 | if (0) \ | ||
| 2155 | netdev_printk(KERN_DEBUG, dev, format, ##args); \ | ||
| 2156 | 0; \ | ||
| 2157 | }) | ||
| 2158 | #endif | ||
| 2159 | |||
| 2160 | /* | ||
| 2161 | * netdev_WARN() acts like dev_printk(), but with the key difference | ||
| 2162 | * of using a WARN/WARN_ON to get the message out, including the | ||
| 2163 | * file/line information and a backtrace. | ||
| 2164 | */ | ||
| 2165 | #define netdev_WARN(dev, format, args...) \ | ||
| 2166 | WARN(1, "netdevice: %s\n" format, netdev_name(dev), ##args); | ||
| 2167 | |||
| 2168 | |||
| 2098 | #endif /* __KERNEL__ */ | 2169 | #endif /* __KERNEL__ */ |
| 2099 | 2170 | ||
| 2100 | #endif /* _LINUX_NETDEVICE_H */ | 2171 | #endif /* _LINUX_NETDEVICE_H */ |
