/linux-master/kernel/livepatch/ |
H A D | state.h | 7 bool klp_is_patch_compatible(struct klp_patch *patch);
|
H A D | state.c | 15 #define klp_for_each_state(patch, state) \ 16 for (state = patch->states; state && state->id; state++) 20 * the given patch 21 * @patch: livepatch that modifies the given system state 24 * Checks whether the given patch modifies the given system state. 26 * The function can be called either from pre/post (un)patch 31 struct klp_state *klp_get_state(struct klp_patch *patch, unsigned long id) argument 35 klp_for_each_state(patch, state) { 58 * It is typically called only from pre/post (un)patch 66 struct klp_patch *patch; local 87 klp_is_state_compatible(struct klp_patch *patch, struct klp_state *old_state) argument 106 klp_is_patch_compatible(struct klp_patch *patch) argument [all...] |
H A D | core.c | 25 #include "patch.h" 71 * Note that the patch might still be needed before klp_module_going() 102 static struct klp_object *klp_find_object(struct klp_patch *patch, argument 107 klp_for_each_object(patch, obj) { 345 * /sys/kernel/livepatch/<patch> 346 * /sys/kernel/livepatch/<patch>/enabled 347 * /sys/kernel/livepatch/<patch>/transition 348 * /sys/kernel/livepatch/<patch>/force 349 * /sys/kernel/livepatch/<patch>/<object> 350 * /sys/kernel/livepatch/<patch>/<objec 358 struct klp_patch *patch; local 401 struct klp_patch *patch; local 410 struct klp_patch *patch; local 420 struct klp_patch *patch; local 484 klp_alloc_object_dynamic(const char *name, struct klp_patch *patch) argument 541 klp_add_object_nops(struct klp_patch *patch, struct klp_object *old_obj) argument 573 klp_add_nops(struct klp_patch *patch) argument 593 struct klp_patch *patch; local 664 __klp_free_objects(struct klp_patch *patch, bool nops_only) argument 679 klp_free_objects(struct klp_patch *patch) argument 684 klp_free_objects_dynamic(struct klp_patch *patch) argument 696 klp_free_patch_start(struct klp_patch *patch) argument 712 klp_free_patch_finish(struct klp_patch *patch) argument 735 struct klp_patch *patch = local 741 klp_free_patch_async(struct klp_patch *patch) argument 787 klp_write_object_relocs(struct klp_patch *patch, struct klp_object *obj, bool apply) argument 811 klp_apply_object_relocs(struct klp_patch *patch, struct klp_object *obj) argument 817 klp_clear_object_relocs(struct klp_patch *patch, struct klp_object *obj) argument 824 klp_init_object_loaded(struct klp_patch *patch, struct klp_object *obj) argument 872 klp_init_object(struct klp_patch *patch, struct klp_object *obj) argument 910 klp_init_object_early(struct klp_patch *patch, struct klp_object *obj) argument 918 klp_init_patch_early(struct klp_patch *patch) argument 940 klp_init_patch(struct klp_patch *patch) argument 966 __klp_disable_patch(struct klp_patch *patch) argument 998 __klp_enable_patch(struct klp_patch *patch) argument 1066 klp_enable_patch(struct klp_patch *patch) argument 1191 struct klp_patch *patch; local 1220 struct klp_patch *patch; local [all...] |
H A D | transition.h | 9 void klp_init_transition(struct klp_patch *patch, int state);
|
H A D | Makefile | 4 livepatch-objs := core.o patch.o shadow.o state.o transition.o
|
H A D | patch.h | 32 void klp_unpatch_objects(struct klp_patch *patch); 33 void klp_unpatch_objects_dynamic(struct klp_patch *patch);
|
H A D | core.h | 10 #define klp_for_each_patch_safe(patch, tmp_patch) \ 11 list_for_each_entry_safe(patch, tmp_patch, &klp_patches, list) 13 #define klp_for_each_patch(patch) \ 14 list_for_each_entry(patch, &klp_patches, list) 16 void klp_free_patch_async(struct klp_patch *patch);
|
H A D | transition.c | 14 #include "patch.h" 74 * We allow to patch also functions where RCU is not watching, 87 * The transition to the target patch state is complete. Clean up the data 115 * from this patch on the ops->func_stack. Otherwise, after 179 * patch state. 260 * Determine whether it's safe to transition the task to the target patch state 310 * Try to safely switch a task to the target patch state. If it's currently 332 * functions. If all goes well, switch the task to the target patch 444 * Try to switch all remaining tasks to the target patch state by walking the 449 * If any tasks are still stuck in the initial patch stat 455 struct klp_patch *patch; local 573 klp_init_transition(struct klp_patch *patch, int state) argument 729 struct klp_patch *patch; local [all...] |
/linux-master/arch/xtensa/kernel/ |
H A D | jump_label.c | 26 struct patch { struct 41 struct patch *patch = data; local 43 if (atomic_inc_return(&patch->cpu_count) == num_online_cpus()) { 44 local_patch_text(patch->addr, patch->data, patch->sz); 45 atomic_inc(&patch->cpu_count); 47 while (atomic_read(&patch->cpu_count) <= num_online_cpus()) 49 __invalidate_icache_range(patch 57 struct patch patch = { local [all...] |
/linux-master/include/linux/fpga/ |
H A D | adi-axi-common.h | 16 #define ADI_AXI_PCORE_VER(major, minor, patch) \ 17 (((major) << 16) | ((minor) << 8) | (patch))
|
/linux-master/arch/parisc/kernel/ |
H A D | patch.c | 3 * functions to patch RO kernel text during runtime 16 #include <asm/patch.h> 18 struct patch { struct 103 struct patch *patch = data; local 105 __patch_text_multiple(patch->addr, patch->insn, patch->len); 111 struct patch patch local 123 struct patch patch = { local [all...] |
/linux-master/scripts/ |
H A D | patch-kernel | 4 # usage: patch-kernel [ sourcedir [ patchdir [ stopversion ] [ -acxx ] ] ] 5 # The source directory defaults to /usr/src/linux, and the patch 8 # scripts/patch-kernel . .. 11 # scripts/patch-kernel . .. -ac 12 # Get the latest Linux kernel and patch it with the latest ac patch 13 # scripts/patch-kernel . .. 2.4.9 15 # scripts/patch-kernel . .. 2.4.9 -ac 17 # scripts/patch-kernel . .. 2.4.9 -ac11 18 # Gets 2.4.9 with ac patch ac1 [all...] |
/linux-master/sound/synth/emux/ |
H A D | emux_hwdep.c | 17 * load patch 23 struct soundfont_patch_info patch; local 25 if (copy_from_user(&patch, arg, sizeof(patch))) 28 if (patch.key == GUS_PATCH) 30 patch.len + sizeof(patch), 33 if (patch.type >= SNDRV_SFNT_LOAD_INFO && 34 patch.type <= SNDRV_SFNT_PROBE_DATA) { 35 err = snd_soundfont_load(emu->sflist, arg, patch [all...] |
H A D | soundfont.c | 91 * close the patch if the patch was opened by this client. 108 * Deal with a soundfont patch. Any driver could use these routines 119 struct soundfont_patch_info patch; local 123 if (count < (long)sizeof(patch)) { 124 snd_printk(KERN_ERR "patch record too small %ld\n", count); 127 if (copy_from_user(&patch, data, sizeof(patch))) 130 count -= sizeof(patch); 131 data += sizeof(patch); 947 struct patch_info patch; local [all...] |
/linux-master/arch/arm/kernel/ |
H A D | patch.c | 12 #include <asm/patch.h> 14 struct patch { struct 113 struct patch *patch = data; local 115 __patch_text(patch->addr, patch->insn); 122 struct patch patch = { local 127 stop_machine_cpuslocked(patch_text_stop_machine, &patch, NULL);
|
/linux-master/tools/testing/selftests/livepatch/test_modules/ |
H A D | test_klp_atomic_replace.c | 36 static struct klp_patch patch = { variable in typeref:struct:klp_patch 44 patch.replace = replace; 45 return klp_enable_patch(&patch);
|
H A D | test_klp_livepatch.c | 32 static struct klp_patch patch = { variable in typeref:struct:klp_patch 39 return klp_enable_patch(&patch);
|
H A D | test_klp_state.c | 32 static struct klp_patch patch; variable in typeref:struct:klp_patch 38 loglevel_state = klp_get_state(&patch, CONSOLE_LOGLEVEL_STATE); 55 loglevel_state = klp_get_state(&patch, CONSOLE_LOGLEVEL_STATE); 68 loglevel_state = klp_get_state(&patch, CONSOLE_LOGLEVEL_STATE); 80 loglevel_state = klp_get_state(&patch, CONSOLE_LOGLEVEL_STATE); 89 /* Executed on object patching (ie, patch enablement) */ 96 /* Executed on object unpatching (ie, patch disablement) */ 103 /* Executed on object unpatching (ie, patch disablement) */ 110 /* Executed on object unpatching (ie, patch disablement) */ 141 static struct klp_patch patch variable in typeref:struct:klp_patch [all...] |
H A D | test_klp_state2.c | 32 static struct klp_patch patch; variable in typeref:struct:klp_patch 45 loglevel_state = klp_get_state(&patch, CONSOLE_LOGLEVEL_STATE); 62 loglevel_state = klp_get_state(&patch, CONSOLE_LOGLEVEL_STATE); 90 loglevel_state = klp_get_state(&patch, CONSOLE_LOGLEVEL_STATE); 109 loglevel_state = klp_get_state(&patch, CONSOLE_LOGLEVEL_STATE); 118 /* Executed on object patching (ie, patch enablement) */ 125 /* Executed on object unpatching (ie, patch disablement) */ 132 /* Executed on object unpatching (ie, patch disablement) */ 139 /* Executed on object unpatching (ie, patch disablement) */ 170 static struct klp_patch patch variable in typeref:struct:klp_patch [all...] |
H A D | test_klp_callbacks_demo2.c | 30 /* Executed on object patching (ie, patch enablement) */ 37 /* Executed on object unpatching (ie, patch disablement) */ 43 /* Executed on object unpatching (ie, patch disablement) */ 49 /* Executed on object unpatching (ie, patch disablement) */ 72 static struct klp_patch patch = { variable in typeref:struct:klp_patch 80 patch.replace = replace; 81 return klp_enable_patch(&patch);
|
/linux-master/sound/drivers/opl3/ |
H A D | opl3_synth.c | 231 * load a patch, obviously. 236 * name is the name string of the patch. 247 struct fm_patch *patch; local 250 patch = snd_opl3_find_patch(opl3, prog, bank, 1); 251 if (!patch) 254 patch->type = type; 257 patch->inst.op[i].am_vib = data[AM_VIB + i]; 258 patch->inst.op[i].ksl_level = data[KSL_LEVEL + i]; 259 patch->inst.op[i].attack_decay = data[ATTACK_DECAY + i]; 260 patch 309 struct fm_patch *patch; local 336 struct fm_patch *patch, *next; local [all...] |
/linux-master/samples/livepatch/ |
H A D | livepatch-sample.c | 15 * This (dumb) live patch overrides the function that prints the 53 static struct klp_patch patch = { variable in typeref:struct:klp_patch 60 return klp_enable_patch(&patch);
|
/linux-master/include/uapi/sound/sof/ |
H A D | abi.h | 29 /* SOF ABI version major, minor and patch numbers */ 42 #define SOF_ABI_VER(major, minor, patch) \ 45 ((patch) << SOF_ABI_PATCH_SHIFT))
|
/linux-master/arch/riscv/kernel/ |
H A D | patch.c | 16 #include <asm/patch.h> 236 struct patch_insn *patch = data; local 240 if (atomic_inc_return(&patch->cpu_count) == num_online_cpus()) { 241 for (i = 0; ret == 0 && i < patch->ninsns; i++) { 242 len = GET_INSN_LENGTH(patch->insns[i]); 243 ret = patch_text_nosync(patch->addr + i * len, 244 &patch->insns[i], len); 246 atomic_inc(&patch->cpu_count); 248 while (atomic_read(&patch->cpu_count) <= num_online_cpus()) 260 struct patch_insn patch local [all...] |
/linux-master/include/linux/ |
H A D | livepatch.h | 20 /* task patch states */ 37 * @nop: temporary patch to use the original code again; dyn. allocated 83 * struct klp_callbacks - pre/post live-(un)patch callback structure 91 * All callbacks are optional. Only the pre-patch callback, if provided, 93 * patch for any reason, including a non-zero error status returned from 94 * the pre-patch callback, no further callbacks will be executed. 145 * struct klp_patch - patch structure for live patching 146 * @mod: reference to the live patch module 153 * @enabled: the patch is enabled (but operation may be incomplete) 155 * @free_work: patch cleanu [all...] |