diff options
author | Miroslav Benes <mbenes@suse.cz> | 2017-11-22 11:29:21 +0100 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2017-12-07 13:21:35 +0100 |
commit | c99a2be790b07752d8cc694434d3450afd4c5a00 (patch) | |
tree | 086f38cd5bae5145e4677c552a8776990f12c2fb /kernel/livepatch/transition.h | |
parent | livepatch: send a fake signal to all blocking tasks (diff) | |
download | linux-c99a2be790b07752d8cc694434d3450afd4c5a00.tar.xz linux-c99a2be790b07752d8cc694434d3450afd4c5a00.zip |
livepatch: force transition to finish
If a task sleeps in a set of patched functions uninterruptedly, it could
block the whole transition indefinitely. Thus it may be useful to clear
its TIF_PATCH_PENDING to allow the process to finish.
Admin can do that now by writing to force sysfs attribute in livepatch
sysfs directory. TIF_PATCH_PENDING is then cleared for all tasks and the
transition can finish successfully.
Important note! Administrator should not use this feature without a
clearance from a patch distributor. It must be checked that by doing so
the consistency model guarantees are not violated. Removal (rmmod) of
patch modules is permanently disabled when the feature is used. It
cannot be guaranteed there is no task sleeping in such module.
Signed-off-by: Miroslav Benes <mbenes@suse.cz>
Acked-by: Josh Poimboeuf <jpoimboe@redhat.com>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'kernel/livepatch/transition.h')
-rw-r--r-- | kernel/livepatch/transition.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/livepatch/transition.h b/kernel/livepatch/transition.h index 40522795a5f6..f9d0bc016067 100644 --- a/kernel/livepatch/transition.h +++ b/kernel/livepatch/transition.h @@ -12,5 +12,6 @@ void klp_start_transition(void); void klp_try_complete_transition(void); void klp_reverse_transition(void); void klp_send_signals(void); +void klp_force_transition(void); #endif /* _LIVEPATCH_TRANSITION_H */ |