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
