summaryrefslogtreecommitdiffstats
path: root/kernel/livepatch/transition.h
diff options
context:
space:
mode:
authorMiroslav Benes <mbenes@suse.cz>2017-11-22 11:29:21 +0100
committerJiri Kosina <jkosina@suse.cz>2017-12-07 13:21:35 +0100
commitc99a2be790b07752d8cc694434d3450afd4c5a00 (patch)
tree086f38cd5bae5145e4677c552a8776990f12c2fb /kernel/livepatch/transition.h
parentlivepatch: send a fake signal to all blocking tasks (diff)
downloadlinux-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.h1
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 */