summaryrefslogtreecommitdiffstats
path: root/kernel/livepatch
diff options
context:
space:
mode:
authorPetr Mladek <pmladek@suse.com>2017-10-20 16:56:51 +0200
committerJiri Kosina <jkosina@suse.cz>2017-10-26 14:58:50 +0200
commit89a9a1c1c89cea5f70975c338c011b9f7024dee5 (patch)
tree55d3fd12dba578268abe0b95e46db6f2d6e86034 /kernel/livepatch
parentlivepatch: Correctly call klp_post_unpatch_callback() in error paths (diff)
downloadlinux-89a9a1c1c89cea5f70975c338c011b9f7024dee5.tar.xz
linux-89a9a1c1c89cea5f70975c338c011b9f7024dee5.zip
livepatch: __klp_disable_patch() should never be called for disabled patches
__klp_disable_patch() should never be called when the patch is not enabled. Let's add the same warning that we have in __klp_enable_patch(). This allows to remove the check when calling klp_pre_unpatch_callback(). It was strange anyway because it repeatedly checked per-patch flag for each patched object. Signed-off-by: Petr Mladek <pmladek@suse.com> Acked-by: Joe Lawrence <joe.lawrence@redhat.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'kernel/livepatch')
-rw-r--r--kernel/livepatch/core.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/kernel/livepatch/core.c b/kernel/livepatch/core.c
index eb134479c394..287f71e9dbfe 100644
--- a/kernel/livepatch/core.c
+++ b/kernel/livepatch/core.c
@@ -282,6 +282,9 @@ static int __klp_disable_patch(struct klp_patch *patch)
{
struct klp_object *obj;
+ if (WARN_ON(!patch->enabled))
+ return -EINVAL;
+
if (klp_transition_patch)
return -EBUSY;
@@ -293,7 +296,7 @@ static int __klp_disable_patch(struct klp_patch *patch)
klp_init_transition(patch, KLP_UNPATCHED);
klp_for_each_object(patch, obj)
- if (patch->enabled && obj->patched)
+ if (obj->patched)
klp_pre_unpatch_callback(obj);
/*