Commit acc4988bcf38f9618886eaeb9802aeacc6978ec2
Committed by
Linus Torvalds
1 parent
544adb4107
Exists in
master
and in
40 other branches
markers: add an if(0) to __mark_check_format()
Wrap __mark_check_format() into an if(0) to make sure that parameters such as trace_mark(mm_page_alloc, "order %u pfn %lu", order, page?page_to_pfn(page):0); (where page_to_pfn() has side-effects) won't generate code because of the __mark_check_format(). Thanks to Jan Kiszka for reporting this. Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> Cc: Jan Kiszka <jan.kiszka@siemens.com> Cc: "Frank Ch. Eigler" <fche@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Showing 1 changed file with 7 additions and 1 deletions Side-by-side Diff
include/linux/marker.h
... | ... | @@ -104,9 +104,15 @@ |
104 | 104 | #define MARK_NOARGS " " |
105 | 105 | |
106 | 106 | /* To be used for string format validity checking with gcc */ |
107 | -static inline void __printf(1, 2) __mark_check_format(const char *fmt, ...) | |
107 | +static inline void __printf(1, 2) ___mark_check_format(const char *fmt, ...) | |
108 | 108 | { |
109 | 109 | } |
110 | + | |
111 | +#define __mark_check_format(format, args...) \ | |
112 | + do { \ | |
113 | + if (0) \ | |
114 | + ___mark_check_format(format, ## args); \ | |
115 | + } while (0) | |
110 | 116 | |
111 | 117 | extern marker_probe_func __mark_empty_function; |
112 | 118 |