/linux/kernel/livepatch/ |
H A D | core.c | 25 #include "patch.h" 71 * Note that the patch might still be needed before klp_module_going() in klp_find_object_module() 100 static struct klp_object *klp_find_object(struct klp_patch *patch, in klp_find_func() 105 klp_for_each_object(patch, obj) { in klp_find_object() 343 * /sys/kernel/livepatch/<patch> 344 * /sys/kernel/livepatch/<patch>/enabled 345 * /sys/kernel/livepatch/<patch>/transition 346 * /sys/kernel/livepatch/<patch>/force 347 * /sys/kernel/livepatch/<patch>/replace 348 * /sys/kernel/livepatch/<patch>/stack_orde 102 klp_find_object(struct klp_patch * patch,struct klp_object * old_obj) klp_find_object() argument 360 struct klp_patch *patch; enabled_store() local 403 struct klp_patch *patch; enabled_show() local 412 struct klp_patch *patch; transition_show() local 421 struct klp_patch *patch; force_store() local 450 struct klp_patch *patch; replace_show() local 459 struct klp_patch *patch, *this_patch; stack_order_show() local 520 klp_alloc_object_dynamic(const char * name,struct klp_patch * patch) klp_alloc_object_dynamic() argument 576 klp_add_object_nops(struct klp_patch * patch,struct klp_object * old_obj) klp_add_object_nops() argument 611 klp_add_nops(struct klp_patch * patch) klp_add_nops() argument 631 struct klp_patch *patch; klp_kobj_release_patch() local 702 __klp_free_objects(struct klp_patch * patch,bool nops_only) __klp_free_objects() argument 717 klp_free_objects(struct klp_patch * patch) klp_free_objects() argument 722 klp_free_objects_dynamic(struct klp_patch * patch) klp_free_objects_dynamic() argument 734 klp_free_patch_start(struct klp_patch * patch) klp_free_patch_start() argument 750 klp_free_patch_finish(struct klp_patch * patch) klp_free_patch_finish() argument 773 struct klp_patch *patch = klp_free_patch_work_fn() local 779 klp_free_patch_async(struct klp_patch * patch) klp_free_patch_async() argument 825 klp_write_object_relocs(struct klp_patch * patch,struct klp_object * obj,bool apply) klp_write_object_relocs() argument 849 klp_apply_object_relocs(struct klp_patch * patch,struct klp_object * obj) klp_apply_object_relocs() argument 855 klp_clear_object_relocs(struct klp_patch * patch,struct klp_object * obj) klp_clear_object_relocs() argument 862 klp_init_object_loaded(struct klp_patch * patch,struct klp_object * obj) klp_init_object_loaded() argument 910 klp_init_object(struct klp_patch * patch,struct klp_object * obj) klp_init_object() argument 948 klp_init_object_early(struct klp_patch * patch,struct klp_object * obj) klp_init_object_early() argument 956 klp_init_patch_early(struct klp_patch * patch) klp_init_patch_early() argument 978 klp_init_patch(struct klp_patch * patch) klp_init_patch() argument 1004 __klp_disable_patch(struct klp_patch * patch) __klp_disable_patch() argument 1036 __klp_enable_patch(struct klp_patch * patch) __klp_enable_patch() argument 1104 klp_enable_patch(struct klp_patch * patch) klp_enable_patch() argument 1229 struct klp_patch *patch; klp_cleanup_module_patches_limited() local 1258 struct klp_patch *patch; klp_module_coming() local [all...] |
H A D | state.c | 15 #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 …]
|
H A D | transition.c | 14 #include "patch.h" 65 * We allow to patch also functions where RCU is not watching, 78 * The transition to the target patch state is complete. Clean up the data 106 * from this patch on the ops->func_stack. Otherwise, after in klp_complete_transition() 170 * patch state. in klp_cancel_transition() 251 * Determine whether it's safe to transition the task to the target patch state in klp_check_stack_func() 301 * Try to safely switch a task to the target patch state. If it's currently in klp_check_and_switch_task() 323 * functions. If all goes well, switch the task to the target patch in klp_try_switch_task() 423 * Try to switch all remaining tasks to the target patch state by walking the in klp_send_signals() 428 * If any tasks are still stuck in the initial patch stat in klp_send_signals() 455 struct klp_patch *patch; klp_try_complete_transition() local 573 klp_init_transition(struct klp_patch * patch,int state) klp_init_transition() argument 729 struct klp_patch *patch; klp_force_transition() local [all...] |
H A D | core.h | 10 #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);
|
/linux/Documentation/process/ |
H A D | applying-patches.rst | 11 This document is obsolete. In most cases, rather than using ``patch`` 15 a patch to the kernel or, more specifically, what base kernel a patch for 24 What is a patch? 27 A patch is a small text document containing a delta of changes between two 31 To correctly apply a patch you need to know what base it was generated from 32 and what new version the patch will change the source tree into. These 33 should both be present in the patch file metadata or be possible to deduce 37 How do I apply or revert a patch? 40 You apply a patch with the ``patch`` program. The patch program reads a diff 41 (or patch) file and makes the changes to the source tree described in it. [all …]
|
H A D | backporting.rst | 27 Applying the patch to a tree 30 Sometimes the patch you are backporting already exists as a git commit, 32 ``git cherry-pick``. However, if the patch comes from an email, as it 37 quite picky about the patch applying perfectly to your source tree. In 39 edit the patch to make it apply. 42 where the patch applies cleanly and *then* cherry-pick it over to your 46 apply a patch that just arrived on LKML to an older stable kernel, you 50 It's generally better to use the exact same base as the one the patch 53 problem with applying the patch to the "wrong" base is that it may pull 60 it less likely to apply the patch to the wrong place (which can result [all …]
|
H A D | stable-kernel-rules.rst | 45 1. Add a 'stable tag' to the description of a patch you then submit for 47 2. Ask the stable team to pick up a patch already mainlined. 48 3. Submit a patch to the stable team that is equivalent to a change already 56 options for cases where a mainlined patch needs adjustments to apply in older 70 To have a patch you submit for mainline inclusion later automatically picked up 79 Once the patch is mainlined it will be applied to the stable tree without 85 * Specify any additional patch prerequisites for cherry picking:: 100 Note that for a patch series, you do not have to list as prerequisites the 102 patch series:: 130 Cc: <stable@vger.kernel.org> # see patch description, needs adjustments for <= 6.3 [all …]
|
/linux/scripts/ |
H A D | patch-kernel | 62 PNAME=patch-kernel 73 patch directory defaults to the current directory, 92 echo "cannot find patch file: ${patch}" 149 if $uncomp ${patchdir}/$1${ext} | patch -p1 -s -N -E -d $sourcedir 171 if $uncomp ${patchdir}/"$1"${ext} | patch -p1 -Rs -N -E -d $sourcedir 242 patch="patch-${CURRENTFULLVERSION}" 243 findFile $patchdir/${patch} || noFile ${patch} 244 reversePatch ${patch} || exit 1 272 patch=patch-$FULLVERSION 274 findFile $patchdir/${patch} || noFile ${patch} [all …]
|
/linux/sound/drivers/opl3/ |
H A D | opl3_synth.c | 245 struct fm_patch *patch; in snd_opl3_load_patch() local 248 patch = snd_opl3_find_patch(opl3, prog, bank, 1); in snd_opl3_load_patch() 249 if (!patch) in snd_opl3_load_patch() 252 patch->type = type; in snd_opl3_load_patch() 255 patch->inst.op[i].am_vib = data[AM_VIB + i]; in snd_opl3_load_patch() 256 patch->inst.op[i].ksl_level = data[KSL_LEVEL + i]; in snd_opl3_load_patch() 257 patch->inst.op[i].attack_decay = data[ATTACK_DECAY + i]; in snd_opl3_load_patch() 258 patch->inst.op[i].sustain_release = data[SUSTAIN_RELEASE + i]; in snd_opl3_load_patch() 259 patch->inst.op[i].wave_select = data[WAVE_SELECT + i]; in snd_opl3_load_patch() 261 patch->inst.feedback_connection[0] = data[CONNECTION]; in snd_opl3_load_patch() [all …]
|
/linux/arch/xtensa/kernel/ |
H A D | jump_label.c | 26 struct patch { struct 41 struct patch *patch = data; in patch_text_stop_machine() local 43 if (atomic_inc_return(&patch->cpu_count) == num_online_cpus()) { in patch_text_stop_machine() 44 local_patch_text(patch->addr, patch->data, patch->sz); in patch_text_stop_machine() 45 atomic_inc(&patch->cpu_count); in patch_text_stop_machine() 47 while (atomic_read(&patch->cpu_count) <= num_online_cpus()) in patch_text_stop_machine() 49 __invalidate_icache_range(patch->addr, patch->sz); in patch_text_stop_machine() 57 struct patch patch = { in patch_text() local 64 &patch, cpu_online_mask); in patch_text()
|
/linux/scripts/coccinelle/api/ |
H A D | string_choices.cocci | 6 virtual patch 10 @str_plural depends on patch@ 21 @str_plural_r depends on !patch@ 38 @str_up_down depends on patch disable neg_if_exp@ 44 @str_up_down_r depends on !patch disable neg_if_exp@ 57 @str_down_up depends on patch disable neg_if_exp@ 63 @str_down_up_r depends on !patch disable neg_if_exp@ 76 @str_true_false depends on patch disable neg_if_exp@ 82 @str_true_false_r depends on !patch disable neg_if_exp@ 95 @str_false_true depends on patch disable neg_if_exp@ [all …]
|
H A D | platform_no_drv_owner.cocci | 7 virtual patch 26 @fix1 depends on match1 && patch && !context && !org && !report@ 35 @fix1_i2c depends on match1 && patch && !context && !org && !report@ 57 @fix2 depends on match2 && patch && !context && !org && !report@ 66 @fix2_i2c depends on match2 && patch && !context && !org && !report@ 77 @fix1_context depends on match1 && !patch && (context || org || report)@ 88 @fix1_i2c_context depends on match1 && !patch && (context || org || report)@ 99 @fix2_context depends on match2 && !patch && (context || org || report)@ 110 @fix2_i2c_context depends on match2 && !patch && (context || org || report)@
|
/linux/sound/synth/emux/ |
H A D | emux_hwdep.c | 23 struct soundfont_patch_info patch; in snd_emux_hwdep_load_patch() local 25 if (copy_from_user(&patch, arg, sizeof(patch))) in snd_emux_hwdep_load_patch() 28 if (patch.key == GUS_PATCH) in snd_emux_hwdep_load_patch() 30 patch.len + sizeof(patch)); in snd_emux_hwdep_load_patch() 32 if (patch.type >= SNDRV_SFNT_LOAD_INFO && in snd_emux_hwdep_load_patch() 33 patch.type <= SNDRV_SFNT_PROBE_DATA) { in snd_emux_hwdep_load_patch() 35 patch.len + sizeof(patch), in snd_emux_hwdep_load_patch() 41 return emu->ops.load_fx(emu, patch.type, patch.optarg, arg, patch.len + sizeof(patch)); in snd_emux_hwdep_load_patch()
|
H A D | soundfont.c | 121 struct soundfont_patch_info patch; in snd_soundfont_load() local 125 if (count < (long)sizeof(patch)) { in snd_soundfont_load() 129 if (copy_from_user(&patch, data, sizeof(patch))) in snd_soundfont_load() 132 count -= sizeof(patch); in snd_soundfont_load() 133 data += sizeof(patch); in snd_soundfont_load() 135 if (patch.key != SNDRV_OSS_SOUNDFONT_PATCH) { in snd_soundfont_load() 136 dev_err(card->dev, "The wrong kind of patch %x\n", patch.key); in snd_soundfont_load() 139 if (count < patch.len) { in snd_soundfont_load() 141 count, patch.len); in snd_soundfont_load() 144 if (patch.len < 0) { in snd_soundfont_load() [all …]
|
/linux/Documentation/livepatch/ |
H A D | callbacks.rst | 5 Livepatch (un)patch-callbacks provide a mechanism for livepatch modules 16 In most cases, (un)patch callbacks will need to be used in conjunction 26 patch. 39 * Pre-patch 42 * Post-patch 48 active), used to clean up post-patch callback 54 used to cleanup pre-patch callback resources 61 symmetry: pre-patch callbacks have a post-unpatch counterpart and 62 post-patch callbacks have a pre-unpatch counterpart. An unpatch 63 callback will only be executed if its corresponding patch callback was [all …]
|
H A D | cumulative-patches.rst | 23 static struct klp_patch patch = { 29 All processes are then migrated to use the code only from the new patch. 34 longer modified by the new cumulative patch. 37 cumulative patch. It helps to keep the patch consistent while adding or 40 Users could keep only the last patch installed on the system after 52 - Atomically revert some functions in a previous patch while 69 to that patch. This is safe as long as the livepatches do _not_ do 73 Also note that the replaced patch can be removed and loaded again 80 In other words, the cumulative patch is responsible for doing any actions 81 that are necessary to properly replace any older patch. [all …]
|
H A D | livepatch.rst | 46 a live patch is called with the help of a custom ftrace handler. But there are 64 But there are more complex fixes. For example, a patch might change 65 ordering of locking in multiple functions at the same time. Or a patch 84 switch over. When a patch is enabled, livepatch enters into a 87 sequence occurs when a patch is disabled, except the tasks converge from 95 safe to patch tasks: 99 the task is patched. In most cases this will patch most or all of 128 Unless we can come up with another way to patch kthreads, architectures 132 The /sys/kernel/livepatch/<patch>/transition file shows whether a patch 133 is in transition. Only a single patch can be in transition at a given [all …]
|
/linux/Documentation/ABI/testing/ |
H A D | sysfs-kernel-livepatch | 9 each loaded live patch module. 11 What: /sys/kernel/livepatch/<patch> 16 The patch directory contains subdirectories for each kernel 19 What: /sys/kernel/livepatch/<patch>/enabled 25 code is currently applied. Writing 0 will disable the patch 26 while writing 1 will re-enable the patch. 28 What: /sys/kernel/livepatch/<patch>/transition 33 An attribute which indicates whether the patch is currently in 36 What: /sys/kernel/livepatch/<patch>/force 45 use this feature without a clearance from a patch [all …]
|
/linux/Documentation/translations/it_IT/process/ |
H A D | stable-kernel-rules.rst | 11 Regole sul tipo di patch che vengono o non vengono accettate nei sorgenti 14 - Questa patch o una equivalente deve esistere già nei sorgenti principali di 40 Procedura per sottomettere patch per i sorgenti -stable 44 Una patch di sicurezza non dovrebbe essere gestita (solamente) dal processo 50 1. Aggiungi un'etichetta 'stable' alla descrizione della patch al momento della 52 2. Chiedere alla squadra "stable" di prendere una patch già applicata sui 54 3. Sottomettere una patch alla squadra "stable" equivalente ad una modifica già 62 L':ref:`it_option_3` è un'alternativa ai due metodi precedenti quando la patch 79 Aggiungete la seguente etichetta nell'area delle firme per far sì che una patch 91 Una volta che la patch è stata inclusa, verrà applicata anche sui sorgenti [all …]
|
/linux/Documentation/translations/zh_CN/ |
H A D | how-to.rst | 265 git format-patch -N 269 0001-docs-zh_CN-add-xxxxxxxx.patch 270 0002-docs-zh_CN-add-xxxxxxxx.patch 278 ./scripts/checkpatch.pl *.patch 290 git am 0001-xxxxx.patch 291 ./scripts/checkpatch.pl 0001-xxxxx.patch 296 git am 0002-xxxxx.patch 304 git format-patch -N --cover-letter --thread=shallow #N为您的补丁数量,N一般要大于1。 308 0000-cover-letter.patch 309 0001-docs-zh_CN-add-xxxxxxxx.patch [all …]
|
/linux/tools/testing/selftests/livepatch/test_modules/ |
H A D | test_klp_state.c | 32 static struct klp_patch patch; variable 38 loglevel_state = klp_get_state(&patch, CONSOLE_LOGLEVEL_STATE); in allocate_loglevel_state() 55 loglevel_state = klp_get_state(&patch, CONSOLE_LOGLEVEL_STATE); in fix_console_loglevel() 68 loglevel_state = klp_get_state(&patch, CONSOLE_LOGLEVEL_STATE); in restore_console_loglevel() 80 loglevel_state = klp_get_state(&patch, CONSOLE_LOGLEVEL_STATE); in free_loglevel_state() 141 static struct klp_patch patch = { variable 150 return klp_enable_patch(&patch); in test_klp_callbacks_demo_init()
|
H A D | test_klp_state2.c | 32 static struct klp_patch patch; variable 45 loglevel_state = klp_get_state(&patch, CONSOLE_LOGLEVEL_STATE); in allocate_loglevel_state() 62 loglevel_state = klp_get_state(&patch, CONSOLE_LOGLEVEL_STATE); in fix_console_loglevel() 90 loglevel_state = klp_get_state(&patch, CONSOLE_LOGLEVEL_STATE); in restore_console_loglevel() 109 loglevel_state = klp_get_state(&patch, CONSOLE_LOGLEVEL_STATE); in free_loglevel_state() 170 static struct klp_patch patch = { variable 179 return klp_enable_patch(&patch); in test_klp_callbacks_demo_init()
|
/linux/Documentation/translations/it_IT/arch/riscv/ |
H A D | patch-acceptance.rst | 3 :Original: :doc:`../../../../arch/riscv/patch-acceptance` 28 RISC-V ha un'istanza di patchwork dov'è possibile controllare lo stato delle patch: 32 Se la vostra patch non appare nella vista predefinita, i manutentori di RISC-V 37 e collaudando le patch man mano che arrivano. Il processo applica le patch al 39 questo a seconda che la patch sia stata o meno individuata come correzione. In 41 stata applicata una serie di patch sarà annotato su patchwork. È improbabile che 42 vengano applicate Le patch che non passano i controlli, nella maggior parte dei 45 In aggiunta alla lista delle verifiche da fare prima di inviare una patch 48 Accetteremo le patch per un nuovo modulo o estensione se la fondazione 57 prestazioni, accetteremo patch solo per quelle estensioni che sono
|
/linux/scripts/coccinelle/misc/ |
H A D | minmax.cocci | 18 virtual patch 20 @rmax depends on !patch@ 34 @rmaxif depends on !patch@ 68 @rmin depends on !patch@ 82 @rminif depends on !patch@ 101 @pmax depends on patch@ 115 @pmaxif depends on patch@ 134 @pmin depends on patch@ 149 @pminif depends on patch@
|
/linux/include/linux/ |
H A D | livepatch.h | 175 #define klp_for_each_object_static(patch, obj) \ argument 176 for (obj = patch->objs; obj->funcs || obj->name; obj++) 178 #define klp_for_each_object_safe(patch, obj, tmp_obj) \ argument 179 list_for_each_entry_safe(obj, tmp_obj, &patch->obj_list, node) 181 #define klp_for_each_object(patch, obj) \ argument 182 list_for_each_entry(obj, &patch->obj_list, node) 230 struct klp_state *klp_get_state(struct klp_patch *patch, unsigned long id);
|