aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Rostedt (Red Hat) <rostedt@goodmis.org>2014-11-03 18:53:50 -0500
committerSteven Rostedt <rostedt@goodmis.org>2014-11-19 22:01:19 -0500
commit2448913ed2aa7a7424d9b9ca79861d13c746a3f1 (patch)
tree67d031584d72a54240e0497f6f37ef44ffcbff20
parent01cb06a4c229908d239149017049fdd1fca1dd51 (diff)
seq-buf: Make seq_buf_bprintf() conditional on CONFIG_BINARY_PRINTF
The function bstr_printf() from lib/vsprnintf.c is only available if CONFIG_BINARY_PRINTF is defined. This is due to the only user currently being the tracing infrastructure, which needs to select this config when tracing is configured. Until there is another user of the binary printf formats, this will continue to be the case. Since seq_buf.c is now lives in lib/ and is compiled even without tracing, it must encompass its use of bstr_printf() which is used by seq_buf_printf(). This too is only used by the tracing infrastructure and is still encapsulated by the CONFIG_BINARY_PRINTF. Link: http://lkml.kernel.org/r/20141104160222.969013383@goodmis.org Tested-by: Jiri Kosina <jkosina@suse.cz> Acked-by: Jiri Kosina <jkosina@suse.cz> Reviewed-by: Petr Mladek <pmladek@suse.cz> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
-rw-r--r--include/linux/seq_buf.h7
-rw-r--r--kernel/trace/seq_buf.c2
2 files changed, 7 insertions, 2 deletions
diff --git a/include/linux/seq_buf.h b/include/linux/seq_buf.h
index 12c64282aa98..9aafe0e24c68 100644
--- a/include/linux/seq_buf.h
+++ b/include/linux/seq_buf.h
@@ -115,8 +115,6 @@ extern __printf(2, 3)
115int seq_buf_printf(struct seq_buf *s, const char *fmt, ...); 115int seq_buf_printf(struct seq_buf *s, const char *fmt, ...);
116extern __printf(2, 0) 116extern __printf(2, 0)
117int seq_buf_vprintf(struct seq_buf *s, const char *fmt, va_list args); 117int seq_buf_vprintf(struct seq_buf *s, const char *fmt, va_list args);
118extern int
119seq_buf_bprintf(struct seq_buf *s, const char *fmt, const u32 *binary);
120extern int seq_buf_print_seq(struct seq_file *m, struct seq_buf *s); 118extern int seq_buf_print_seq(struct seq_file *m, struct seq_buf *s);
121extern int seq_buf_to_user(struct seq_buf *s, char __user *ubuf, 119extern int seq_buf_to_user(struct seq_buf *s, char __user *ubuf,
122 int cnt); 120 int cnt);
@@ -130,4 +128,9 @@ extern int seq_buf_path(struct seq_buf *s, const struct path *path, const char *
130extern int seq_buf_bitmask(struct seq_buf *s, const unsigned long *maskp, 128extern int seq_buf_bitmask(struct seq_buf *s, const unsigned long *maskp,
131 int nmaskbits); 129 int nmaskbits);
132 130
131#ifdef CONFIG_BINARY_PRINTF
132extern int
133seq_buf_bprintf(struct seq_buf *s, const char *fmt, const u32 *binary);
134#endif
135
133#endif /* _LINUX_SEQ_BUF_H */ 136#endif /* _LINUX_SEQ_BUF_H */
diff --git a/kernel/trace/seq_buf.c b/kernel/trace/seq_buf.c
index 086f594ac890..4eedfedb9e31 100644
--- a/kernel/trace/seq_buf.c
+++ b/kernel/trace/seq_buf.c
@@ -127,6 +127,7 @@ int seq_buf_bitmask(struct seq_buf *s, const unsigned long *maskp,
127 return -1; 127 return -1;
128} 128}
129 129
130#ifdef CONFIG_BINARY_PRINTF
130/** 131/**
131 * seq_buf_bprintf - Write the printf string from binary arguments 132 * seq_buf_bprintf - Write the printf string from binary arguments
132 * @s: seq_buf descriptor 133 * @s: seq_buf descriptor
@@ -161,6 +162,7 @@ int seq_buf_bprintf(struct seq_buf *s, const char *fmt, const u32 *binary)
161 seq_buf_set_overflow(s); 162 seq_buf_set_overflow(s);
162 return -1; 163 return -1;
163} 164}
165#endif /* CONFIG_BINARY_PRINTF */
164 166
165/** 167/**
166 * seq_buf_puts - sequence printing of simple string 168 * seq_buf_puts - sequence printing of simple string