Blame view
kernel/livepatch/core.h
1.47 KB
b24413180 License cleanup: ... |
1 |
/* SPDX-License-Identifier: GPL-2.0 */ |
10517429b livepatch: make k... |
2 3 |
#ifndef _LIVEPATCH_CORE_H #define _LIVEPATCH_CORE_H |
93862e385 livepatch: add (u... |
4 |
#include <linux/livepatch.h> |
10517429b livepatch: make k... |
5 |
extern struct mutex klp_mutex; |
68007289b livepatch: Don't ... |
6 |
extern struct list_head klp_patches; |
10517429b livepatch: make k... |
7 |
|
ecba29f43 livepatch: Introd... |
8 9 10 11 12 |
#define klp_for_each_patch_safe(patch, tmp_patch) \ list_for_each_entry_safe(patch, tmp_patch, &klp_patches, list) #define klp_for_each_patch(patch) \ list_for_each_entry(patch, &klp_patches, list) |
7e35e4eb7 livepatch: Keep r... |
13 14 15 |
void klp_free_patch_async(struct klp_patch *patch); void klp_free_replaced_patches_async(struct klp_patch *new_patch); void klp_unpatch_replaced_patches(struct klp_patch *new_patch); |
d697bad58 livepatch: Remove... |
16 |
void klp_discard_nops(struct klp_patch *new_patch); |
958ef1e39 livepatch: Simpli... |
17 |
|
93862e385 livepatch: add (u... |
18 19 20 21 22 23 24 |
static inline bool klp_is_object_loaded(struct klp_object *obj) { return !obj->name || obj->mod; } static inline int klp_pre_patch_callback(struct klp_object *obj) { |
5aaf1ab55 livepatch: Correc... |
25 |
int ret = 0; |
93862e385 livepatch: add (u... |
26 |
|
5aaf1ab55 livepatch: Correc... |
27 28 |
if (obj->callbacks.pre_patch) ret = (*obj->callbacks.pre_patch)(obj); |
93862e385 livepatch: add (u... |
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
obj->callbacks.post_unpatch_enabled = !ret; return ret; } static inline void klp_post_patch_callback(struct klp_object *obj) { if (obj->callbacks.post_patch) (*obj->callbacks.post_patch)(obj); } static inline void klp_pre_unpatch_callback(struct klp_object *obj) { if (obj->callbacks.pre_unpatch) (*obj->callbacks.pre_unpatch)(obj); } static inline void klp_post_unpatch_callback(struct klp_object *obj) { if (obj->callbacks.post_unpatch_enabled && obj->callbacks.post_unpatch) (*obj->callbacks.post_unpatch)(obj); |
5aaf1ab55 livepatch: Correc... |
52 53 |
obj->callbacks.post_unpatch_enabled = false; |
93862e385 livepatch: add (u... |
54 |
} |
10517429b livepatch: make k... |
55 |
#endif /* _LIVEPATCH_CORE_H */ |