diff options
Diffstat (limited to 'kernel/livepatch')
| -rw-r--r-- | kernel/livepatch/core.c | 4 | ||||
| -rw-r--r-- | kernel/livepatch/core.h | 8 |
2 files changed, 6 insertions, 6 deletions
diff --git a/kernel/livepatch/core.c b/kernel/livepatch/core.c index cafb5a84417d..eb134479c394 100644 --- a/kernel/livepatch/core.c +++ b/kernel/livepatch/core.c | |||
| @@ -894,9 +894,7 @@ int klp_module_coming(struct module *mod) | |||
| 894 | pr_warn("failed to apply patch '%s' to module '%s' (%d)\n", | 894 | pr_warn("failed to apply patch '%s' to module '%s' (%d)\n", |
| 895 | patch->mod->name, obj->mod->name, ret); | 895 | patch->mod->name, obj->mod->name, ret); |
| 896 | 896 | ||
| 897 | if (patch != klp_transition_patch) | 897 | klp_post_unpatch_callback(obj); |
| 898 | klp_post_unpatch_callback(obj); | ||
| 899 | |||
| 900 | goto err; | 898 | goto err; |
| 901 | } | 899 | } |
| 902 | 900 | ||
diff --git a/kernel/livepatch/core.h b/kernel/livepatch/core.h index 6fc907b54e71..cc3aa708e0b4 100644 --- a/kernel/livepatch/core.h +++ b/kernel/livepatch/core.h | |||
| @@ -12,10 +12,10 @@ static inline bool klp_is_object_loaded(struct klp_object *obj) | |||
| 12 | 12 | ||
| 13 | static inline int klp_pre_patch_callback(struct klp_object *obj) | 13 | static inline int klp_pre_patch_callback(struct klp_object *obj) |
| 14 | { | 14 | { |
| 15 | int ret; | 15 | int ret = 0; |
| 16 | 16 | ||
| 17 | ret = (obj->callbacks.pre_patch) ? | 17 | if (obj->callbacks.pre_patch) |
| 18 | (*obj->callbacks.pre_patch)(obj) : 0; | 18 | ret = (*obj->callbacks.pre_patch)(obj); |
| 19 | 19 | ||
| 20 | obj->callbacks.post_unpatch_enabled = !ret; | 20 | obj->callbacks.post_unpatch_enabled = !ret; |
| 21 | 21 | ||
| @@ -39,6 +39,8 @@ static inline void klp_post_unpatch_callback(struct klp_object *obj) | |||
| 39 | if (obj->callbacks.post_unpatch_enabled && | 39 | if (obj->callbacks.post_unpatch_enabled && |
| 40 | obj->callbacks.post_unpatch) | 40 | obj->callbacks.post_unpatch) |
| 41 | (*obj->callbacks.post_unpatch)(obj); | 41 | (*obj->callbacks.post_unpatch)(obj); |
| 42 | |||
| 43 | obj->callbacks.post_unpatch_enabled = false; | ||
| 42 | } | 44 | } |
| 43 | 45 | ||
| 44 | #endif /* _LIVEPATCH_CORE_H */ | 46 | #endif /* _LIVEPATCH_CORE_H */ |
