Randy Dunlap wrote:
On Mon, 11 Jun 2007 14:37:21 -0700 Auke Kok wrote:

 include/linux/netdevice.h |   38 ++++++++++++++++++++++++++++++++++++++
 net/core/dev.c            |    5 +++++
 net/core/ethtool.c        |   14 +++++++-------
 3 files changed, 50 insertions(+), 7 deletions(-)

diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 3a70f55..d185f41 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -540,6 +540,8 @@ struct net_device
        struct device           dev;
        /* space for optional statistics and wireless sysfs groups */
        struct attribute_group  *sysfs_groups[3];
+
+       int                     msg_enable;
 };
 #define to_net_dev(d) container_of(d, struct net_device, dev)
@@ -838,6 +840,42 @@ enum {
        NETIF_MSG_WOL           = 0x4000,
 };
+#define ndev_err(netdev, level, format, arg...) \
+       do { if ((netdev)->msg_enable & NETIF_MSG_##level) { \
+               printk(KERN_ERR "%s: %s: " format, (netdev)->name, \
+               (netdev)->dev.parent->bus_id, ## arg); } } while (0)
+

I would still do what Steve H. suggested, i.e., only evaluate
macro args one time.  E.g. (not tested & reformatted :)

+#define ndev_err(netdev, level, format, arg...) \
+       do { \
+               struct net_device *__nd = netdev; \
+               if ((__nd)->msg_enable & NETIF_MSG_##level) \
+                       printk(KERN_ERR "%s: %s: " format, (__nd)->name, \
+                               (__nd)->dev.parent->bus_id, ## arg); \
+       } while (0)
+

Dropping the braces around the printk() too.

ahh, *now* I get it... :)

Auke
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to