Message ID | 20230805175027.50029-4-andriy.shevchenko@linux.intel.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | lib/vsprintf: Rework header inclusions | expand |
On Sat, 5 Aug 2023 at 19:49, Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote: > > Sparse is not happy to see non-static variable without declaration: > lib/vsprintf.c:61:6: warning: symbol 'no_hash_pointers' was not declared. Should it be static? > > Declare respective variable in the sprintf.h. With this, add a comment > to discourage its use if no real need. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Acked-by: Marco Elver <elver@google.com> > --- > include/linux/sprintf.h | 2 ++ > lib/test_printf.c | 2 -- > mm/kfence/report.c | 3 +-- > 3 files changed, 3 insertions(+), 4 deletions(-) > > diff --git a/include/linux/sprintf.h b/include/linux/sprintf.h > index 9ca23bcf9f42..33dcbec71925 100644 > --- a/include/linux/sprintf.h > +++ b/include/linux/sprintf.h > @@ -20,6 +20,8 @@ __printf(2, 0) const char *kvasprintf_const(gfp_t gfp, const char *fmt, va_list > __scanf(2, 3) int sscanf(const char *, const char *, ...); > __scanf(2, 0) int vsscanf(const char *, const char *, va_list); > > +/* These are for specific cases, do not use without real need */ > +extern bool no_hash_pointers; > int no_hash_pointers_enable(char *str); > > #endif /* _LINUX_KERNEL_SPRINTF_H */ > diff --git a/lib/test_printf.c b/lib/test_printf.c > index 5adca19d34e2..cf861dc22169 100644 > --- a/lib/test_printf.c > +++ b/lib/test_printf.c > @@ -39,8 +39,6 @@ KSTM_MODULE_GLOBALS(); > static char *test_buffer __initdata; > static char *alloced_buffer __initdata; > > -extern bool no_hash_pointers; > - > static int __printf(4, 0) __init > do_test(int bufsize, const char *expect, int elen, > const char *fmt, va_list ap) > diff --git a/mm/kfence/report.c b/mm/kfence/report.c > index 197430a5be4a..c509aed326ce 100644 > --- a/mm/kfence/report.c > +++ b/mm/kfence/report.c > @@ -13,6 +13,7 @@ > #include <linux/printk.h> > #include <linux/sched/debug.h> > #include <linux/seq_file.h> > +#include <linux/sprintf.h> > #include <linux/stacktrace.h> > #include <linux/string.h> > #include <trace/events/error_report.h> > @@ -26,8 +27,6 @@ > #define ARCH_FUNC_PREFIX "" > #endif > > -extern bool no_hash_pointers; > - > /* Helper function to either print to a seq_file or to console. */ > __printf(2, 3) > static void seq_con_printf(struct seq_file *seq, const char *fmt, ...) > -- > 2.40.0.1.gaa8946217a0b > > -- > You received this message because you are subscribed to the Google Groups "kasan-dev" group. > To unsubscribe from this group and stop receiving emails from it, send an email to kasan-dev+unsubscribe@googlegroups.com. > To view this discussion on the web visit https://groups.google.com/d/msgid/kasan-dev/20230805175027.50029-4-andriy.shevchenko%40linux.intel.com.
On Sat 2023-08-05 20:50:27, Andy Shevchenko wrote: > Sparse is not happy to see non-static variable without declaration: > lib/vsprintf.c:61:6: warning: symbol 'no_hash_pointers' was not declared. Should it be static? > > Declare respective variable in the sprintf.h. With this, add a comment > to discourage its use if no real need. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > --- > include/linux/sprintf.h | 2 ++ > lib/test_printf.c | 2 -- > mm/kfence/report.c | 3 +-- If we agreed to move sprintf() declarations into printk.h then this might go to printk.h as well. Best Regards, Petr
On Mon, Aug 07, 2023 at 05:06:33PM +0200, Petr Mladek wrote: > On Sat 2023-08-05 20:50:27, Andy Shevchenko wrote: > > Sparse is not happy to see non-static variable without declaration: > > lib/vsprintf.c:61:6: warning: symbol 'no_hash_pointers' was not declared. Should it be static? > > > > Declare respective variable in the sprintf.h. With this, add a comment > > to discourage its use if no real need. > If we agreed to move sprintf() declarations into printk.h > then this might go to printk.h as well. Sure, but I disagree with printk.h approach (as I explained why in the reply to the suggestion).
diff --git a/include/linux/sprintf.h b/include/linux/sprintf.h index 9ca23bcf9f42..33dcbec71925 100644 --- a/include/linux/sprintf.h +++ b/include/linux/sprintf.h @@ -20,6 +20,8 @@ __printf(2, 0) const char *kvasprintf_const(gfp_t gfp, const char *fmt, va_list __scanf(2, 3) int sscanf(const char *, const char *, ...); __scanf(2, 0) int vsscanf(const char *, const char *, va_list); +/* These are for specific cases, do not use without real need */ +extern bool no_hash_pointers; int no_hash_pointers_enable(char *str); #endif /* _LINUX_KERNEL_SPRINTF_H */ diff --git a/lib/test_printf.c b/lib/test_printf.c index 5adca19d34e2..cf861dc22169 100644 --- a/lib/test_printf.c +++ b/lib/test_printf.c @@ -39,8 +39,6 @@ KSTM_MODULE_GLOBALS(); static char *test_buffer __initdata; static char *alloced_buffer __initdata; -extern bool no_hash_pointers; - static int __printf(4, 0) __init do_test(int bufsize, const char *expect, int elen, const char *fmt, va_list ap) diff --git a/mm/kfence/report.c b/mm/kfence/report.c index 197430a5be4a..c509aed326ce 100644 --- a/mm/kfence/report.c +++ b/mm/kfence/report.c @@ -13,6 +13,7 @@ #include <linux/printk.h> #include <linux/sched/debug.h> #include <linux/seq_file.h> +#include <linux/sprintf.h> #include <linux/stacktrace.h> #include <linux/string.h> #include <trace/events/error_report.h> @@ -26,8 +27,6 @@ #define ARCH_FUNC_PREFIX "" #endif -extern bool no_hash_pointers; - /* Helper function to either print to a seq_file or to console. */ __printf(2, 3) static void seq_con_printf(struct seq_file *seq, const char *fmt, ...)
Sparse is not happy to see non-static variable without declaration: lib/vsprintf.c:61:6: warning: symbol 'no_hash_pointers' was not declared. Should it be static? Declare respective variable in the sprintf.h. With this, add a comment to discourage its use if no real need. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- include/linux/sprintf.h | 2 ++ lib/test_printf.c | 2 -- mm/kfence/report.c | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-)