On Sat 2022-03-12 23:22:20, Chengming Zhou wrote: > module_put() is not called for a patch with "forced" flag. It should > block the removal of the livepatch module when the code might still > be in use after forced transition. > > klp_force_transition() currently sets "forced" flag for all patches on > the list. > > In fact, any patch can be safely unloaded when it passed through > the consistency model in KLP_UNPATCHED transition. > > By other words, the "forced" flag must be set only for livepatches > that are being removed. In particular, set the "forced" flag: > > + only for klp_transition_patch when the transition to KLP_UNPATCHED > state was forced. > > + all replaced patches when the transition to KLP_PATCHED state was > forced and the patch was replacing the existing patches. > > Signed-off-by: Chengming Zhou <zhouchengming@xxxxxxxxxxxxx> Looks reasonable, passes livepatch tests: Reviewed-by: Petr Mladek <pmladek@xxxxxxxx> Tested-by: Petr Mladek <pmladek@xxxxxxxx> Just let me repeat. The "force" flags must be used carefully because it breaks the consistency model. Best Regards, Petr