diff options
| author | Arnd Bergmann <arnd@arndb.de> | 2012-02-13 01:30:04 -0500 |
|---|---|---|
| committer | Arnd Bergmann <arnd@arndb.de> | 2012-02-13 01:30:04 -0500 |
| commit | eaa5699e3bff8e8335757cf401451ffbd4a88109 (patch) | |
| tree | a5a23148d26f9d083080d94991e8ceed12c0857b /include/linux/dynamic_debug.h | |
| parent | d65b4e98d7ea3038b767b70fe8be959b2913f16d (diff) | |
| parent | da5a70f3519fd6f73ece3eea261a861c9a4d6bbd (diff) | |
Merge branch 'depends/driver-core' into next/soc2
* depends/driver-core: (55 commits)
Documentation: add information for new sysfs soc bus functionality
drivers/base: add bus for System-on-Chip devices
DWC3: use module_pci_driver
PCI: Add helper macro for pci_register_driver boilerplate
w1: Use linux/gpio.h rather than asm/gpio.h
drivers: hv: Increase the number of VCPUs supported in the guest
drivers: hv: kvp: Cleanup the kernel/user protocol
tools: hv: Use hyperv.h to get the KVP definitions
drivers: hv: Cleanup the kvp related state in hyperv.h
ACPI: remove duplicated lines of merging problems with acpi_processor_start
cpufreq/gx: Fix the compile error
drivers: hv: kvp: Move the contents of hv_kvp.h to hyperv.h
drivers: hv: kvp: Add/cleanup connector defines
sysfs: Update the name hash when renaming sysfs entries
PCI/XEN: Fix bug introduced by a recent change
USB/PCI/PCMCIA: Clean up new_id and remove_id sysfs attribute routines
CPU: Introduce ARCH_HAS_CPU_AUTOPROBE and X86 parts
x86: autoload microcode driver on Intel and AMD systems v2
cpufreq: Add support for x86 cpuinfo auto loading v4
X86: Introduce HW-Pstate scattered cpuid feature
...
Diffstat (limited to 'include/linux/dynamic_debug.h')
| -rw-r--r-- | include/linux/dynamic_debug.h | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/include/linux/dynamic_debug.h b/include/linux/dynamic_debug.h index 0564e3c39882..7e3c53a900d8 100644 --- a/include/linux/dynamic_debug.h +++ b/include/linux/dynamic_debug.h | |||
| @@ -15,20 +15,24 @@ struct _ddebug { | |||
| 15 | const char *function; | 15 | const char *function; |
| 16 | const char *filename; | 16 | const char *filename; |
| 17 | const char *format; | 17 | const char *format; |
| 18 | unsigned int lineno:24; | 18 | unsigned int lineno:18; |
| 19 | /* | 19 | /* |
| 20 | * The flags field controls the behaviour at the callsite. | 20 | * The flags field controls the behaviour at the callsite. |
| 21 | * The bits here are changed dynamically when the user | 21 | * The bits here are changed dynamically when the user |
| 22 | * writes commands to <debugfs>/dynamic_debug/control | 22 | * writes commands to <debugfs>/dynamic_debug/control |
| 23 | */ | 23 | */ |
| 24 | #define _DPRINTK_FLAGS_PRINT (1<<0) /* printk() a message using the format */ | 24 | #define _DPRINTK_FLAGS_NONE 0 |
| 25 | #define _DPRINTK_FLAGS_PRINT (1<<0) /* printk() a message using the format */ | ||
| 25 | #define _DPRINTK_FLAGS_INCL_MODNAME (1<<1) | 26 | #define _DPRINTK_FLAGS_INCL_MODNAME (1<<1) |
| 26 | #define _DPRINTK_FLAGS_INCL_FUNCNAME (1<<2) | 27 | #define _DPRINTK_FLAGS_INCL_FUNCNAME (1<<2) |
| 27 | #define _DPRINTK_FLAGS_INCL_LINENO (1<<3) | 28 | #define _DPRINTK_FLAGS_INCL_LINENO (1<<3) |
| 28 | #define _DPRINTK_FLAGS_INCL_TID (1<<4) | 29 | #define _DPRINTK_FLAGS_INCL_TID (1<<4) |
| 30 | #if defined DEBUG | ||
| 31 | #define _DPRINTK_FLAGS_DEFAULT _DPRINTK_FLAGS_PRINT | ||
| 32 | #else | ||
| 29 | #define _DPRINTK_FLAGS_DEFAULT 0 | 33 | #define _DPRINTK_FLAGS_DEFAULT 0 |
| 34 | #endif | ||
| 30 | unsigned int flags:8; | 35 | unsigned int flags:8; |
| 31 | char enabled; | ||
| 32 | } __attribute__((aligned(8))); | 36 | } __attribute__((aligned(8))); |
| 33 | 37 | ||
| 34 | 38 | ||
| @@ -62,21 +66,20 @@ int __dynamic_netdev_dbg(struct _ddebug *descriptor, | |||
| 62 | .format = (fmt), \ | 66 | .format = (fmt), \ |
| 63 | .lineno = __LINE__, \ | 67 | .lineno = __LINE__, \ |
| 64 | .flags = _DPRINTK_FLAGS_DEFAULT, \ | 68 | .flags = _DPRINTK_FLAGS_DEFAULT, \ |
| 65 | .enabled = false, \ | ||
| 66 | } | 69 | } |
| 67 | 70 | ||
| 68 | #define dynamic_pr_debug(fmt, ...) \ | 71 | #define dynamic_pr_debug(fmt, ...) \ |
| 69 | do { \ | 72 | do { \ |
| 70 | DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \ | 73 | DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \ |
| 71 | if (unlikely(descriptor.enabled)) \ | 74 | if (unlikely(descriptor.flags & _DPRINTK_FLAGS_PRINT)) \ |
| 72 | __dynamic_pr_debug(&descriptor, pr_fmt(fmt), \ | 75 | __dynamic_pr_debug(&descriptor, pr_fmt(fmt), \ |
| 73 | ##__VA_ARGS__); \ | 76 | ##__VA_ARGS__); \ |
| 74 | } while (0) | 77 | } while (0) |
| 75 | 78 | ||
| 76 | #define dynamic_dev_dbg(dev, fmt, ...) \ | 79 | #define dynamic_dev_dbg(dev, fmt, ...) \ |
| 77 | do { \ | 80 | do { \ |
| 78 | DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \ | 81 | DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \ |
| 79 | if (unlikely(descriptor.enabled)) \ | 82 | if (unlikely(descriptor.flags & _DPRINTK_FLAGS_PRINT)) \ |
| 80 | __dynamic_dev_dbg(&descriptor, dev, fmt, \ | 83 | __dynamic_dev_dbg(&descriptor, dev, fmt, \ |
| 81 | ##__VA_ARGS__); \ | 84 | ##__VA_ARGS__); \ |
| 82 | } while (0) | 85 | } while (0) |
| @@ -84,7 +87,7 @@ do { \ | |||
| 84 | #define dynamic_netdev_dbg(dev, fmt, ...) \ | 87 | #define dynamic_netdev_dbg(dev, fmt, ...) \ |
| 85 | do { \ | 88 | do { \ |
| 86 | DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \ | 89 | DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \ |
| 87 | if (unlikely(descriptor.enabled)) \ | 90 | if (unlikely(descriptor.flags & _DPRINTK_FLAGS_PRINT)) \ |
| 88 | __dynamic_netdev_dbg(&descriptor, dev, fmt, \ | 91 | __dynamic_netdev_dbg(&descriptor, dev, fmt, \ |
| 89 | ##__VA_ARGS__); \ | 92 | ##__VA_ARGS__); \ |
| 90 | } while (0) | 93 | } while (0) |
