Re: [PATCH v2] tracing/user_events: Clear copied tracing state before fork duplication
From: Bradley Morgan
Date: Thu Aug 27 2026 - 08:25:38 EST
On 27 August 2026 13:19:15 BST, Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
>On Thu, 27 Aug 2026 13:09:44 +0100
>Bradley Morgan <brads@xxxxxxxxxxxxxx> wrote:
>
>> >> @@ -865,9 +865,12 @@ void user_event_mm_remove(struct task_struct *t)
>> >>
>> >> void user_event_mm_dup(struct task_struct *t, struct user_event_mm
>> >*old_mm)
>> >> {
>> >> - struct user_event_mm *mm = user_event_mm_alloc(t);
>> >> + struct user_event_mm *mm;
>> >
>> >Why this change?
>> >
>> >> struct user_event_enabler *enabler;
>> >>
>> >> + t->user_event_mm = NULL;
>> >> + mm = user_event_mm_alloc(t);
>> >
>> >I don't see why you moved the mm assignment down here. The
>> >t->user_event_mm
>> >is not used in user_event_mm_alloc().
>>
>> Uff, not wrong, I must be dummy dumb dumb, well, I base my reviews off
>>
>> Does this fix the bug? And is this a small fix?
>>
>
>The bug is fixed because it needs to NULL out that value. I asked from v1
>to move that change to this function. But this function only needs to add
>that line before the return. It doesn't need to modify anything else in
>that function.
>
>That is, something like this:
>
>diff --git a/kernel/trace/trace_events_user.c b/kernel/trace/trace_events_user.c
>index 8c82ecb735f4..6b89d225b189 100644
>--- a/kernel/trace/trace_events_user.c
>+++ b/kernel/trace/trace_events_user.c
>@@ -868,6 +868,9 @@ void user_event_mm_dup(struct task_struct *t, struct user_event_mm *old_mm)
> struct user_event_mm *mm = user_event_mm_alloc(t);
> struct user_event_enabler *enabler;
>
>+ /* On failure, do not free parent's copy */
>+ t->user_event_mm = NULL;
>+
Sorry to be mr begfortags here, but this also LGTM, this fixes the bug,
andit's short, thanks for the patch, since I'm busy rn, add my tag if jean
is to submit this
> if (!mm)
> return;
>
>
>-- Steve
--- Thanks!
https://lore.kernel.org/all/EE579805-42F2-4C58-B752-F28779EEB717@xxxxxxxxx/