kernel/trace/trace_events_synth.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
The synth traces incorrectly print pointer to the synthetic event values
instead of the actual value when using u64 type. Fix by addressing the
contents of the union properly.
Fixes: ddeea494a16f ("tracing/synthetic: Use union instead of casts")
Cc: stable@vger.kernel.org
Signed-off-by: Tero Kristo <tero.kristo@linux.intel.com>
---
kernel/trace/trace_events_synth.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/trace/trace_events_synth.c b/kernel/trace/trace_events_synth.c
index 7fff8235075f..070365959c0a 100644
--- a/kernel/trace/trace_events_synth.c
+++ b/kernel/trace/trace_events_synth.c
@@ -337,7 +337,7 @@ static void print_synth_event_num_val(struct trace_seq *s,
break;
default:
- trace_seq_printf(s, print_fmt, name, val, space);
+ trace_seq_printf(s, print_fmt, name, val->as_u64, space);
break;
}
}
--
2.40.1
Hi Tero,
On Mon, 11 Sep 2023 17:17:04 +0300
Tero Kristo <tero.kristo@linux.intel.com> wrote:
> The synth traces incorrectly print pointer to the synthetic event values
> instead of the actual value when using u64 type. Fix by addressing the
> contents of the union properly.
Thanks for pointing it out.
But I would like to see a new "case 8:" print code instead of changing
"default". Can you keep the default as it is and add "case 8:" case there?
Thanks,
>
> Fixes: ddeea494a16f ("tracing/synthetic: Use union instead of casts")
> Cc: stable@vger.kernel.org
> Signed-off-by: Tero Kristo <tero.kristo@linux.intel.com>
> ---
> kernel/trace/trace_events_synth.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/trace/trace_events_synth.c b/kernel/trace/trace_events_synth.c
> index 7fff8235075f..070365959c0a 100644
> --- a/kernel/trace/trace_events_synth.c
> +++ b/kernel/trace/trace_events_synth.c
> @@ -337,7 +337,7 @@ static void print_synth_event_num_val(struct trace_seq *s,
> break;
>
> default:
> - trace_seq_printf(s, print_fmt, name, val, space);
> + trace_seq_printf(s, print_fmt, name, val->as_u64, space);
> break;
> }
> }
> --
> 2.40.1
>
--
Masami Hiramatsu (Google) <mhiramat@kernel.org>
Hi Masami,
On 15/09/2023 09:01, Masami Hiramatsu (Google) wrote:
> Hi Tero,
>
> On Mon, 11 Sep 2023 17:17:04 +0300
> Tero Kristo <tero.kristo@linux.intel.com> wrote:
>
>> The synth traces incorrectly print pointer to the synthetic event values
>> instead of the actual value when using u64 type. Fix by addressing the
>> contents of the union properly.
> Thanks for pointing it out.
> But I would like to see a new "case 8:" print code instead of changing
> "default". Can you keep the default as it is and add "case 8:" case there?
Are you sure about that? I think keeping the default as is would just
print out a useless pointer value to the synth event itself (which is
what happened with u64 type.)
Anyways, that requires a new patch to be created on top as this has hit
the mainline as a fix already.
-Tero
>
> Thanks,
>
>> Fixes: ddeea494a16f ("tracing/synthetic: Use union instead of casts")
>> Cc: stable@vger.kernel.org
>> Signed-off-by: Tero Kristo <tero.kristo@linux.intel.com>
>> ---
>> kernel/trace/trace_events_synth.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/kernel/trace/trace_events_synth.c b/kernel/trace/trace_events_synth.c
>> index 7fff8235075f..070365959c0a 100644
>> --- a/kernel/trace/trace_events_synth.c
>> +++ b/kernel/trace/trace_events_synth.c
>> @@ -337,7 +337,7 @@ static void print_synth_event_num_val(struct trace_seq *s,
>> break;
>>
>> default:
>> - trace_seq_printf(s, print_fmt, name, val, space);
>> + trace_seq_printf(s, print_fmt, name, val->as_u64, space);
>> break;
>> }
>> }
>> --
>> 2.40.1
>>
>
Hi Tero,
On Fri, 15 Sep 2023 13:46:45 +0300
Tero Kristo <tero.kristo@linux.intel.com> wrote:
> Hi Masami,
>
> On 15/09/2023 09:01, Masami Hiramatsu (Google) wrote:
> > Hi Tero,
> >
> > On Mon, 11 Sep 2023 17:17:04 +0300
> > Tero Kristo <tero.kristo@linux.intel.com> wrote:
> >
> >> The synth traces incorrectly print pointer to the synthetic event values
> >> instead of the actual value when using u64 type. Fix by addressing the
> >> contents of the union properly.
> > Thanks for pointing it out.
> > But I would like to see a new "case 8:" print code instead of changing
> > "default". Can you keep the default as it is and add "case 8:" case there?
>
> Are you sure about that? I think keeping the default as is would just
> print out a useless pointer value to the synth event itself (which is
> what happened with u64 type.)
Yeah, I think the "default" here means no correct way to show the value
in it. So anyway, if we know the size is 8 and there is val->as_u64,
there should be "case 8:".
>
> Anyways, that requires a new patch to be created on top as this has hit
> the mainline as a fix already.
Oops, I missed that.
Thank you!
>
> -Tero
>
>
> >
> > Thanks,
> >
> >> Fixes: ddeea494a16f ("tracing/synthetic: Use union instead of casts")
> >> Cc: stable@vger.kernel.org
> >> Signed-off-by: Tero Kristo <tero.kristo@linux.intel.com>
> >> ---
> >> kernel/trace/trace_events_synth.c | 2 +-
> >> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/kernel/trace/trace_events_synth.c b/kernel/trace/trace_events_synth.c
> >> index 7fff8235075f..070365959c0a 100644
> >> --- a/kernel/trace/trace_events_synth.c
> >> +++ b/kernel/trace/trace_events_synth.c
> >> @@ -337,7 +337,7 @@ static void print_synth_event_num_val(struct trace_seq *s,
> >> break;
> >>
> >> default:
> >> - trace_seq_printf(s, print_fmt, name, val, space);
> >> + trace_seq_printf(s, print_fmt, name, val->as_u64, space);
> >> break;
> >> }
> >> }
> >> --
> >> 2.40.1
> >>
> >
--
Masami Hiramatsu (Google) <mhiramat@kernel.org>
On Fri, 15 Sep 2023 23:16:13 +0900 Masami Hiramatsu (Google) <mhiramat@kernel.org> wrote: > > Anyways, that requires a new patch to be created on top as this has hit > > the mainline as a fix already. > > Oops, I missed that. Yeah, I took that because it matched the original case, which was it being u64. -- Steve
© 2016 - 2025 Red Hat, Inc.