Home
last modified time | relevance | path

Searched refs:patch (Results 1 – 13 of 13) sorted by relevance

/kernel/livepatch/
Dcore.c101 static struct klp_object *klp_find_object(struct klp_patch *patch, in klp_find_object() argument
106 klp_for_each_object(patch, obj) { in klp_find_object()
330 static int __klp_disable_patch(struct klp_patch *patch);
335 struct klp_patch *patch; in enabled_store() local
343 patch = container_of(kobj, struct klp_patch, kobj); in enabled_store()
347 if (patch->enabled == enabled) { in enabled_store()
360 if (patch == klp_transition_patch) in enabled_store()
363 ret = __klp_disable_patch(patch); in enabled_store()
378 struct klp_patch *patch; in enabled_show() local
380 patch = container_of(kobj, struct klp_patch, kobj); in enabled_show()
[all …]
Dstate.c15 #define klp_for_each_state(patch, state) \ argument
16 for (state = patch->states; state && state->id; state++)
31 struct klp_state *klp_get_state(struct klp_patch *patch, unsigned long id) in klp_get_state() argument
35 klp_for_each_state(patch, state) { in klp_get_state()
66 struct klp_patch *patch; in klp_get_prev_state() local
72 klp_for_each_patch(patch) { in klp_get_prev_state()
73 if (patch == klp_transition_patch) in klp_get_prev_state()
76 state = klp_get_state(patch, id); in klp_get_prev_state()
87 static bool klp_is_state_compatible(struct klp_patch *patch, in klp_is_state_compatible() argument
92 state = klp_get_state(patch, old_state->id); in klp_is_state_compatible()
[all …]
Dtransition.c391 struct klp_patch *patch; in klp_try_complete_transition() local
444 patch = klp_transition_patch; in klp_try_complete_transition()
452 if (!patch->enabled) in klp_try_complete_transition()
453 klp_free_patch_async(patch); in klp_try_complete_transition()
454 else if (patch->replace) in klp_try_complete_transition()
455 klp_free_replaced_patches_async(patch); in klp_try_complete_transition()
503 void klp_init_transition(struct klp_patch *patch, int state) in klp_init_transition() argument
513 klp_transition_patch = patch; in klp_init_transition()
521 pr_debug("'%s': initializing %s transition\n", patch->mod->name, in klp_init_transition()
566 klp_for_each_object(patch, obj) in klp_init_transition()
[all …]
Dcore.h10 #define klp_for_each_patch_safe(patch, tmp_patch) \ argument
11 list_for_each_entry_safe(patch, tmp_patch, &klp_patches, list)
13 #define klp_for_each_patch(patch) \ argument
14 list_for_each_entry(patch, &klp_patches, list)
16 void klp_free_patch_async(struct klp_patch *patch);
Dpatch.c287 static void __klp_unpatch_objects(struct klp_patch *patch, bool nops_only) in __klp_unpatch_objects() argument
291 klp_for_each_object(patch, obj) in __klp_unpatch_objects()
296 void klp_unpatch_objects(struct klp_patch *patch) in klp_unpatch_objects() argument
298 __klp_unpatch_objects(patch, false); in klp_unpatch_objects()
301 void klp_unpatch_objects_dynamic(struct klp_patch *patch) in klp_unpatch_objects_dynamic() argument
303 __klp_unpatch_objects(patch, true); in klp_unpatch_objects_dynamic()
DKconfig17 This option has no runtime impact until a kernel "patch"
19 a patch, causing calls to patched functions to be redirected
20 to new function code contained in the patch module.
Dpatch.h32 void klp_unpatch_objects(struct klp_patch *patch);
33 void klp_unpatch_objects_dynamic(struct klp_patch *patch);
Dstate.h7 bool klp_is_patch_compatible(struct klp_patch *patch);
Dtransition.h9 void klp_init_transition(struct klp_patch *patch, int state);
DMakefile4 livepatch-objs := core.o patch.o shadow.o state.o transition.o
/kernel/bpf/
Dcore.c445 const struct bpf_insn *patch, u32 len) in bpf_patch_insn_single() argument
454 memcpy(prog->insnsi + off, patch, sizeof(*patch)); in bpf_patch_insn_single()
491 sizeof(*patch) * insn_rest); in bpf_patch_insn_single()
492 memcpy(prog_adj->insnsi + off, patch, sizeof(*patch) * len); in bpf_patch_insn_single()
Dverifier.c12012 const struct bpf_insn *patch, u32 len) in bpf_patch_insn_data() argument
12024 new_prog = bpf_patch_insn_single(env->prog, off, patch, len); in bpf_patch_insn_data()
12301 struct bpf_insn *patch, zext_patch[2], rnd_hi32_patch[4]; in opt_subreg_zext_lo32_rnd_hi32() local
12352 patch = rnd_hi32_patch; in opt_subreg_zext_lo32_rnd_hi32()
12382 patch = zext_patch; in opt_subreg_zext_lo32_rnd_hi32()
12385 new_prog = bpf_patch_insn_data(env, adj_idx, patch, patch_len); in opt_subreg_zext_lo32_rnd_hi32()
12464 struct bpf_insn patch[] = { in convert_ctx_accesses() local
12469 cnt = ARRAY_SIZE(patch); in convert_ctx_accesses()
12470 new_prog = bpf_patch_insn_data(env, i + delta, patch, cnt); in convert_ctx_accesses()
12973 struct bpf_insn *patch = &insn_buf[0]; in do_misc_fixups() local
[all …]
/kernel/trace/
DKconfig195 dynamically (will patch them out of the binary image and