All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [trace:ftrace/core 29/38] kernel/trace/trace.c:3232:6: warning: variable 'buffer' is used uninitialized whenever 'if' condition is true
       [not found] <202001230452.x1ZgvXCx%lkp@intel.com>
@ 2020-01-22 22:02 ` Nick Desaulniers
  2020-01-23  2:06   ` Steven Rostedt
  0 siblings, 1 reply; 2+ messages in thread
From: Nick Desaulniers @ 2020-01-22 22:02 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 9239 bytes --]

+Steven, looks legit, can you please take a look?

On Wed, Jan 22, 2020 at 12:40 PM kbuild test robot <lkp@intel.com> wrote:
>
> CC: kbuild-all(a)lists.01.org
> TO: "Steven Rostedt (VMware)" <rostedt@goodmis.org>
>
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace.git ftrace/core
> head:   532f49a6f19a153e202b5a174f8556fd50c36dd4
> commit: 82d1b8158c9a77c2c9b04c4af22fd62f3686cd9d [29/38] tracing: Allow trace_printk() to nest in other tracing code
> config: x86_64-defconfig (attached as .config)
> compiler: clang version 11.0.0 (git://gitmirror/llvm_project 7b771ed448487705237868f705da17b40c6bfe82)
> reproduce:
>         git checkout 82d1b8158c9a77c2c9b04c4af22fd62f3686cd9d
>         # save the attached .config to linux build tree
>         make ARCH=x86_64
>
> If you fix the issue, kindly add following tag
> Reported-by: kbuild test robot <lkp@intel.com>
>
> All warnings (new ones prefixed by >>):
>
> >> kernel/trace/trace.c:3232:6: warning: variable 'buffer' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
>            if (len > TRACE_BUF_SIZE/sizeof(int) || len < 0)
>                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>    kernel/trace/trace.c:3254:23: note: uninitialized use occurs here
>            ring_buffer_nest_end(buffer);
>                                 ^~~~~~
>    kernel/trace/trace.c:3232:2: note: remove the 'if' if its condition is always false
>            if (len > TRACE_BUF_SIZE/sizeof(int) || len < 0)
>            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >> kernel/trace/trace.c:3232:6: warning: variable 'buffer' is used uninitialized whenever '||' condition is true [-Wsometimes-uninitialized]
>            if (len > TRACE_BUF_SIZE/sizeof(int) || len < 0)
>                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>    kernel/trace/trace.c:3254:23: note: uninitialized use occurs here
>            ring_buffer_nest_end(buffer);
>                                 ^~~~~~
>    kernel/trace/trace.c:3232:6: note: remove the '||' if its condition is always false
>            if (len > TRACE_BUF_SIZE/sizeof(int) || len < 0)
>                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>    kernel/trace/trace.c:3208:29: note: initialize the variable 'buffer' to silence this warning
>            struct trace_buffer *buffer;
>                                       ^
>                                        = NULL
>    2 warnings generated.
>
> vim +3232 kernel/trace/trace.c
>
> 07d777fe8c3985 Steven Rostedt           2011-09-22  3197
> 769b0441f438c4 Frederic Weisbecker      2009-03-06  3198  /**
> 48ead02030f849 Frederic Weisbecker      2009-03-12  3199   * trace_vbprintk - write binary msg to tracing buffer
> c68c9ec1c52e5b Jakub Kicinski           2019-08-27  3200   * @ip:    The address of the caller
> c68c9ec1c52e5b Jakub Kicinski           2019-08-27  3201   * @fmt:   The string format to write to the buffer
> c68c9ec1c52e5b Jakub Kicinski           2019-08-27  3202   * @args:  Arguments for @fmt
> 769b0441f438c4 Frederic Weisbecker      2009-03-06  3203   */
> 40ce74f19c2807 Steven Rostedt           2009-03-19  3204  int trace_vbprintk(unsigned long ip, const char *fmt, va_list args)
> 769b0441f438c4 Frederic Weisbecker      2009-03-06  3205  {
> 2425bcb9240f8c Steven Rostedt (Red Hat  2015-05-05  3206)       struct trace_event_call *call = &event_bprint;
> 769b0441f438c4 Frederic Weisbecker      2009-03-06  3207        struct ring_buffer_event *event;
> 13292494379f92 Steven Rostedt (VMware   2019-12-13  3208)       struct trace_buffer *buffer;
> 769b0441f438c4 Frederic Weisbecker      2009-03-06  3209        struct trace_array *tr = &global_trace;
> 48ead02030f849 Frederic Weisbecker      2009-03-12  3210        struct bprint_entry *entry;
> 769b0441f438c4 Frederic Weisbecker      2009-03-06  3211        unsigned long flags;
> 07d777fe8c3985 Steven Rostedt           2011-09-22  3212        char *tbuffer;
> 07d777fe8c3985 Steven Rostedt           2011-09-22  3213        int len = 0, size, pc;
> 769b0441f438c4 Frederic Weisbecker      2009-03-06  3214
> 769b0441f438c4 Frederic Weisbecker      2009-03-06  3215        if (unlikely(tracing_selftest_running || tracing_disabled))
> 769b0441f438c4 Frederic Weisbecker      2009-03-06  3216                return 0;
> 769b0441f438c4 Frederic Weisbecker      2009-03-06  3217
> 769b0441f438c4 Frederic Weisbecker      2009-03-06  3218        /* Don't pollute graph traces with trace_vprintk internals */
> 769b0441f438c4 Frederic Weisbecker      2009-03-06  3219        pause_graph_tracing();
> 769b0441f438c4 Frederic Weisbecker      2009-03-06  3220
> 769b0441f438c4 Frederic Weisbecker      2009-03-06  3221        pc = preempt_count();
> 5168ae50a66e3f Steven Rostedt           2010-06-03  3222        preempt_disable_notrace();
> 769b0441f438c4 Frederic Weisbecker      2009-03-06  3223
> 07d777fe8c3985 Steven Rostedt           2011-09-22  3224        tbuffer = get_trace_buf();
> 07d777fe8c3985 Steven Rostedt           2011-09-22  3225        if (!tbuffer) {
> 07d777fe8c3985 Steven Rostedt           2011-09-22  3226                len = 0;
> e2ace001176dc9 Andy Lutomirski          2016-05-26  3227                goto out_nobuffer;
> 07d777fe8c3985 Steven Rostedt           2011-09-22  3228        }
> 769b0441f438c4 Frederic Weisbecker      2009-03-06  3229
> 07d777fe8c3985 Steven Rostedt           2011-09-22  3230        len = vbin_printf((u32 *)tbuffer, TRACE_BUF_SIZE/sizeof(int), fmt, args);
> 769b0441f438c4 Frederic Weisbecker      2009-03-06  3231
> 07d777fe8c3985 Steven Rostedt           2011-09-22 @3232        if (len > TRACE_BUF_SIZE/sizeof(int) || len < 0)
> 07d777fe8c3985 Steven Rostedt           2011-09-22  3233                goto out;

^ should probably `goto out_nobuffer;` unless `put_trace_buf()` needs
to be called. Maybe there's another label needed?

> 769b0441f438c4 Frederic Weisbecker      2009-03-06  3234
> 07d777fe8c3985 Steven Rostedt           2011-09-22  3235        local_save_flags(flags);
> 769b0441f438c4 Frederic Weisbecker      2009-03-06  3236        size = sizeof(*entry) + sizeof(u32) * len;
> 1c5eb4481e0151 Steven Rostedt (VMware   2020-01-09  3237)       buffer = tr->array_buffer.buffer;
> 82d1b8158c9a77 Steven Rostedt (VMware   2020-01-16  3238)       ring_buffer_nest_start(buffer);
> 3e9a8aadca4807 Steven Rostedt (Red Hat  2016-11-23  3239)       event = __trace_buffer_lock_reserve(buffer, TRACE_BPRINT, size,
> e77405ad80f539 Steven Rostedt           2009-09-02  3240                                            flags, pc);
> 769b0441f438c4 Frederic Weisbecker      2009-03-06  3241        if (!event)
> 07d777fe8c3985 Steven Rostedt           2011-09-22  3242                goto out;
> 769b0441f438c4 Frederic Weisbecker      2009-03-06  3243        entry = ring_buffer_event_data(event);
> 769b0441f438c4 Frederic Weisbecker      2009-03-06  3244        entry->ip                       = ip;
> 769b0441f438c4 Frederic Weisbecker      2009-03-06  3245        entry->fmt                      = fmt;
> 769b0441f438c4 Frederic Weisbecker      2009-03-06  3246
> 07d777fe8c3985 Steven Rostedt           2011-09-22  3247        memcpy(entry->buf, tbuffer, sizeof(u32) * len);
> f306cc82a93d6b Tom Zanussi              2013-10-24  3248        if (!call_filter_check_discard(call, entry, buffer, event)) {
> 7ffbd48d5cab22 Steven Rostedt           2012-10-11  3249                __buffer_unlock_commit(buffer, event);
> 2d34f48955158c Steven Rostedt (Red Hat  2015-09-30  3250)               ftrace_trace_stack(tr, buffer, flags, 6, pc, NULL);
> d931369b74b3d6 Steven Rostedt           2010-01-06  3251        }
> 769b0441f438c4 Frederic Weisbecker      2009-03-06  3252
> 769b0441f438c4 Frederic Weisbecker      2009-03-06  3253  out:
> 82d1b8158c9a77 Steven Rostedt (VMware   2020-01-16  3254)       ring_buffer_nest_end(buffer);
> e2ace001176dc9 Andy Lutomirski          2016-05-26  3255        put_trace_buf();
> e2ace001176dc9 Andy Lutomirski          2016-05-26  3256
> e2ace001176dc9 Andy Lutomirski          2016-05-26  3257  out_nobuffer:
> 5168ae50a66e3f Steven Rostedt           2010-06-03  3258        preempt_enable_notrace();
> 769b0441f438c4 Frederic Weisbecker      2009-03-06  3259        unpause_graph_tracing();
> 769b0441f438c4 Frederic Weisbecker      2009-03-06  3260
> 769b0441f438c4 Frederic Weisbecker      2009-03-06  3261        return len;
> 769b0441f438c4 Frederic Weisbecker      2009-03-06  3262  }
> 48ead02030f849 Frederic Weisbecker      2009-03-12  3263  EXPORT_SYMBOL_GPL(trace_vbprintk);
> 48ead02030f849 Frederic Weisbecker      2009-03-12  3264
>
> :::::: The code at line 3232 was first introduced by commit
> :::::: 07d777fe8c3985bc83428c2866713c2d1b3d4129 tracing: Add percpu buffers for trace_printk()
>
> :::::: TO: Steven Rostedt <srostedt@redhat.com>
> :::::: CC: Steven Rostedt <rostedt@goodmis.org>
>
> ---
> 0-DAY kernel test infrastructure                 Open Source Technology Center
> https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation



-- 
Thanks,
~Nick Desaulniers

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [trace:ftrace/core 29/38] kernel/trace/trace.c:3232:6: warning: variable 'buffer' is used uninitialized whenever 'if' condition is true
  2020-01-22 22:02 ` [trace:ftrace/core 29/38] kernel/trace/trace.c:3232:6: warning: variable 'buffer' is used uninitialized whenever 'if' condition is true Nick Desaulniers
@ 2020-01-23  2:06   ` Steven Rostedt
  0 siblings, 0 replies; 2+ messages in thread
From: Steven Rostedt @ 2020-01-23  2:06 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 305 bytes --]

On Wed, 22 Jan 2020 14:02:56 -0800
Nick Desaulniers <ndesaulniers@google.com> wrote:

> +Steven, looks legit, can you please take a look?

Yes, I already fixed it and it's in my queue to be tested.

-- Steve

> 
> On Wed, Jan 22, 2020 at 12:40 PM kbuild test robot <lkp@intel.com> wrote:
> >
>

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2020-01-23  2:06 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <202001230452.x1ZgvXCx%lkp@intel.com>
2020-01-22 22:02 ` [trace:ftrace/core 29/38] kernel/trace/trace.c:3232:6: warning: variable 'buffer' is used uninitialized whenever 'if' condition is true Nick Desaulniers
2020-01-23  2:06   ` Steven Rostedt

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.