Merge tag 'driver-core-3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
Pull driver core merge from Greg Kroah-Hartman: "Here is the big driver core update for 3.7-rc1. A number of firmware_class.c updates (as you saw a month or so ago), and some hyper-v updates and some printk fixes as well. All patches that are outside of the drivers/base area have been acked by the respective maintainers, and have all been in the linux-next tree for a while. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>" * tag 'driver-core-3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (95 commits) memory: tegra{20,30}-mc: Fix reading incorrect register in mc_readl() device.h: Add missing inline to #ifndef CONFIG_PRINTK dev_vprintk_emit memory: emif: Add ifdef CONFIG_DEBUG_FS guard for emif_debugfs_[init|exit] Documentation: Fixes some translation error in Documentation/zh_CN/gpio.txt Documentation: Remove 3 byte redundant code at the head of the Documentation/zh_CN/arm/booting Documentation: Chinese translation of Documentation/video4linux/omap3isp.txt device and dynamic_debug: Use dev_vprintk_emit and dev_printk_emit dev: Add dev_vprintk_emit and dev_printk_emit netdev_printk/netif_printk: Remove a superfluous logging colon netdev_printk/dynamic_netdev_dbg: Directly call printk_emit dev_dbg/dynamic_debug: Update to use printk_emit, optimize stack driver-core: Shut up dev_dbg_reatelimited() without DEBUG tools/hv: Parse /etc/os-release tools/hv: Check for read/write errors tools/hv: Fix exit() error code tools/hv: Fix file handle leak Tools: hv: Implement the KVP verb - KVP_OP_GET_IP_INFO Tools: hv: Rename the function kvp_get_ip_address() Tools: hv: Implement the KVP verb - KVP_OP_SET_IP_INFO Tools: hv: Add an example script to configure an interface ...
This commit is contained in:
@@ -6424,22 +6424,26 @@ const char *netdev_drivername(const struct net_device *dev)
|
||||
return empty;
|
||||
}
|
||||
|
||||
int __netdev_printk(const char *level, const struct net_device *dev,
|
||||
static int __netdev_printk(const char *level, const struct net_device *dev,
|
||||
struct va_format *vaf)
|
||||
{
|
||||
int r;
|
||||
|
||||
if (dev && dev->dev.parent)
|
||||
r = dev_printk(level, dev->dev.parent, "%s: %pV",
|
||||
netdev_name(dev), vaf);
|
||||
else if (dev)
|
||||
if (dev && dev->dev.parent) {
|
||||
r = dev_printk_emit(level[1] - '0',
|
||||
dev->dev.parent,
|
||||
"%s %s %s: %pV",
|
||||
dev_driver_string(dev->dev.parent),
|
||||
dev_name(dev->dev.parent),
|
||||
netdev_name(dev), vaf);
|
||||
} else if (dev) {
|
||||
r = printk("%s%s: %pV", level, netdev_name(dev), vaf);
|
||||
else
|
||||
} else {
|
||||
r = printk("%s(NULL net_device): %pV", level, vaf);
|
||||
}
|
||||
|
||||
return r;
|
||||
}
|
||||
EXPORT_SYMBOL(__netdev_printk);
|
||||
|
||||
int netdev_printk(const char *level, const struct net_device *dev,
|
||||
const char *format, ...)
|
||||
@@ -6454,6 +6458,7 @@ int netdev_printk(const char *level, const struct net_device *dev,
|
||||
vaf.va = &args;
|
||||
|
||||
r = __netdev_printk(level, dev, &vaf);
|
||||
|
||||
va_end(args);
|
||||
|
||||
return r;
|
||||
@@ -6473,6 +6478,7 @@ int func(const struct net_device *dev, const char *fmt, ...) \
|
||||
vaf.va = &args; \
|
||||
\
|
||||
r = __netdev_printk(level, dev, &vaf); \
|
||||
\
|
||||
va_end(args); \
|
||||
\
|
||||
return r; \
|
||||
|
Reference in New Issue
Block a user