livepatch: Remove immediate feature
authorMiroslav Benes <mbenes@suse.cz>
Wed, 10 Jan 2018 10:01:28 +0000 (11:01 +0100)
committerJiri Kosina <jkosina@suse.cz>
Thu, 11 Jan 2018 09:58:03 +0000 (10:58 +0100)
commitd0807da78e11d46f18399cbf8c4028c731346766
tree7421d9d68ae0d159c816995564984a0c0cfcc26a
parentc99a2be790b07752d8cc694434d3450afd4c5a00
livepatch: Remove immediate feature

Immediate flag has been used to disable per-task consistency and patch
all tasks immediately. It could be useful if the patch doesn't change any
function or data semantics.

However, it causes problems on its own. The consistency problem is
currently broken with respect to immediate patches.

func            a
patches         1i
                2i
                3

When the patch 3 is applied, only 2i function is checked (by stack
checking facility). There might be a task sleeping in 1i though. Such
task is migrated to 3, because we do not check 1i in
klp_check_stack_func() at all.

Coming atomic replace feature would be easier to implement and more
reliable without immediate.

Thus, remove immediate feature completely and save us from the problems.

Note that force feature has the similar problem. However it is
considered as a last resort. If used, administrator should not apply any
new live patches and should plan for reboot into an updated kernel.

The architectures would now need to provide HAVE_RELIABLE_STACKTRACE to
fully support livepatch.

Signed-off-by: Miroslav Benes <mbenes@suse.cz>
Acked-by: Josh Poimboeuf <jpoimboe@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Documentation/livepatch/livepatch.txt
include/linux/livepatch.h
kernel/livepatch/core.c
kernel/livepatch/transition.c
samples/livepatch/livepatch-callbacks-demo.c
samples/livepatch/livepatch-sample.c
samples/livepatch/livepatch-shadow-fix1.c
samples/livepatch/livepatch-shadow-fix2.c