Commit acc4988bcf38f9618886eaeb9802aeacc6978ec2

Authored by Mathieu Desnoyers
Committed by Linus Torvalds
1 parent 544adb4107

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