On Thu, 2022-07-28 at 17:37 +0200, Petr Mladek wrote: > On Wed 2022-07-27 10:24:37, Rik van Riel wrote: > > v4: address changelog comments by Josh (thank you) > > > > ---8<--- > > When a KLP fails to apply, klp_reverse_transition will clear the > > TIF_PATCH_PENDING flag on all tasks, except for newly created tasks > > which are not on the task list yet. > > It actually is not true. klp_reverse_transtion() clears > TIF_PATCH_FLAG only > temporary when it waits until all processes leave the ftrace > handler. It sets TIF_PATCH_FLAG once again for all tasks by calling > klp_start_transition(). > > The difference is important. The WARN_ON_ONCE() in > klp_complete_transition() will be printed when fork() copied > TIF_PATCH_FLAG before it was set again. > > Anyway, the important thing is that TIF_PATCH_FLAG and task- > >patch_state > might be incompatible because fork() copies them at different times. > > klp_copy_process() must make sure that they are in sync. And > it must be done under tasklist_lock when the child is added > to the global task list. Hmmm, how should this be addressed in the changelog? Should I just remove most of that paragraph and leave it at "there can be a race"? -- All Rights Reversed.
Attachment:
signature.asc
Description: This is a digitally signed message part