/kernel/linux/linux-5.10/kernel/livepatch/ |
D | core.c | 100 static struct klp_object *klp_find_object(struct klp_patch *patch, in klp_find_object() argument 105 klp_for_each_object(patch, obj) { in klp_find_object() 331 static int __klp_disable_patch(struct klp_patch *patch); 336 struct klp_patch *patch; in enabled_store() local 344 patch = container_of(kobj, struct klp_patch, kobj); in enabled_store() 348 if (patch->enabled == enabled) { in enabled_store() 361 if (patch == klp_transition_patch) in enabled_store() 364 ret = __klp_disable_patch(patch); in enabled_store() 379 struct klp_patch *patch; in enabled_show() local 381 patch = container_of(kobj, struct klp_patch, kobj); in enabled_show() [all …]
|
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 …]
|
D | transition.c | 392 struct klp_patch *patch; in klp_try_complete_transition() local 445 patch = klp_transition_patch; in klp_try_complete_transition() 453 if (!patch->enabled) in klp_try_complete_transition() 454 klp_free_patch_async(patch); in klp_try_complete_transition() 455 else if (patch->replace) in klp_try_complete_transition() 456 klp_free_replaced_patches_async(patch); in klp_try_complete_transition() 504 void klp_init_transition(struct klp_patch *patch, int state) in klp_init_transition() argument 514 klp_transition_patch = patch; in klp_init_transition() 522 pr_debug("'%s': initializing %s transition\n", patch->mod->name, in klp_init_transition() 567 klp_for_each_object(patch, obj) in klp_init_transition() [all …]
|
/kernel/linux/linux-5.10/scripts/ |
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 …]
|
/kernel/linux/linux-5.10/Documentation/process/ |
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 …]
|
D | submitting-patches.rst | 43 Describe your problem. Whether your patch is a one-line bug fix or 72 The maintainer will thank you if you write your patch description in a 76 Solve only one problem per patch. If your description starts to get 77 long, that's a sign that you probably need to split up your patch. 80 When you submit or resubmit a patch or patch series, include the 81 complete patch description and justification for it. Don't just 82 say that this is version N of the patch (series). Don't expect the 83 subsystem maintainer to refer back to earlier patch versions or referenced 84 URLs to find the patch description and put that into the patch. 85 I.e., the patch (series) and its description should be self-contained. [all …]
|
D | 5.Posting.rst | 51 summary of the results should be included with the patch. 69 general rule, a patch should be based on the current mainline as found in 76 on the area of your patch and what is going on elsewhere, basing a patch 80 Only the most simple changes should be formatted as a single patch; 86 - The patch series you post will almost certainly not be the series of 94 patch. These changes can be small ("add a field to this structure") or 96 conceptually small and amenable to a one-line description. Each patch 101 changes in the same patch. If a single patch fixes a critical security 106 - Each patch should yield a kernel which builds and runs properly; if your 107 patch series is interrupted in the middle, the result should still be a [all …]
|
/kernel/linux/linux-5.10/sound/drivers/opl3/ |
D | opl3_synth.c | 247 struct fm_patch *patch; in snd_opl3_load_patch() local 250 patch = snd_opl3_find_patch(opl3, prog, bank, 1); in snd_opl3_load_patch() 251 if (!patch) in snd_opl3_load_patch() 254 patch->type = type; in snd_opl3_load_patch() 257 patch->inst.op[i].am_vib = data[AM_VIB + i]; in snd_opl3_load_patch() 258 patch->inst.op[i].ksl_level = data[KSL_LEVEL + i]; in snd_opl3_load_patch() 259 patch->inst.op[i].attack_decay = data[ATTACK_DECAY + i]; in snd_opl3_load_patch() 260 patch->inst.op[i].sustain_release = data[SUSTAIN_RELEASE + i]; in snd_opl3_load_patch() 261 patch->inst.op[i].wave_select = data[WAVE_SELECT + i]; in snd_opl3_load_patch() 263 patch->inst.feedback_connection[0] = data[CONNECTION]; in snd_opl3_load_patch() [all …]
|
/kernel/linux/linux-5.10/arch/xtensa/kernel/ |
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()
|
/kernel/linux/linux-5.10/sound/synth/emux/ |
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() 33 if (patch.type >= SNDRV_SFNT_LOAD_INFO && in snd_emux_hwdep_load_patch() 34 patch.type <= SNDRV_SFNT_PROBE_DATA) { in snd_emux_hwdep_load_patch() 35 err = snd_soundfont_load(emu->sflist, arg, patch.len + sizeof(patch), TMP_CLIENT_ID); in snd_emux_hwdep_load_patch() 40 return emu->ops.load_fx(emu, patch.type, patch.optarg, arg, patch.len + sizeof(patch)); in snd_emux_hwdep_load_patch()
|
D | soundfont.c | 119 struct soundfont_patch_info patch; in snd_soundfont_load() local 123 if (count < (long)sizeof(patch)) { in snd_soundfont_load() 127 if (copy_from_user(&patch, data, sizeof(patch))) in snd_soundfont_load() 130 count -= sizeof(patch); in snd_soundfont_load() 131 data += sizeof(patch); in snd_soundfont_load() 133 if (patch.key != SNDRV_OSS_SOUNDFONT_PATCH) { in snd_soundfont_load() 134 snd_printk(KERN_ERR "The wrong kind of patch %x\n", patch.key); in snd_soundfont_load() 137 if (count < patch.len) { in snd_soundfont_load() 139 count, patch.len); in snd_soundfont_load() 142 if (patch.len < 0) { in snd_soundfont_load() [all …]
|
/kernel/linux/linux-5.10/arch/parisc/kernel/ |
D | patch.c | 18 struct patch { struct 103 struct patch *patch = data; in patch_text_stop_machine() local 105 __patch_text_multiple(patch->addr, patch->insn, patch->len); in patch_text_stop_machine() 111 struct patch patch = { in patch_text() local 117 stop_machine_cpuslocked(patch_text_stop_machine, &patch, NULL); in patch_text() 123 struct patch patch = { in patch_text_multiple() local 129 stop_machine_cpuslocked(patch_text_stop_machine, &patch, NULL); in patch_text_multiple()
|
/kernel/linux/linux-5.10/Documentation/translations/it_IT/process/ |
D | 5.Posting.rst | 15 e di procedure per la pubblicazione delle patch; seguirle renderà la vita 27 C'è sempre una certa resistenza nel pubblicare patch finché non sono 28 veramente "pronte". Per semplici patch questo non è un problema. 38 Poche persone guarderanno delle patch che si sa essere fatte a metà, 43 Prima di creare patch 47 l'invio delle patch alla comunità di sviluppo. Queste cose includono: 57 - La vostra patch ha delle conseguenze in termini di prestazioni? 60 incluso nella patch. 71 Preparazione di una patch 74 La preparazione delle patch per la pubblicazione può richiedere una quantità [all …]
|
D | submitting-patches.rst | 8 Inviare patch: la guida essenziale per vedere il vostro codice nel kernel 11 Una persona o un'azienda che volesse inviare una patch al kernel potrebbe 15 vostre patch accettate. 23 per delle patch relative alle associazioni per Device Tree leggete 28 patch molto del lavoro più ripetitivo lo troverete già fatto per voi, tuttavia 29 dovete preparare e documentare un certo numero di patch. Generalmente, l'uso 43 sorgenti e desiderano che le patch siano preparate basandosi su di essi. 55 Se dovete produrre le vostre patch a mano, usate ``diff -up`` o ``diff -uprN`` 56 per crearle. Git produce di base le patch in questo formato; se state 59 Tutte le modifiche al kernel Linux avvengono mediate patch, come descritte [all …]
|
D | stable-kernel-rules.rst | 11 Regole sul tipo di patch che vengono o non vengono accettate nei sorgenti 37 - Questa patch o una equivalente deve esistere già nei sorgenti principali di 41 Procedura per sottomettere patch per i sorgenti -stable 44 - Se la patch contiene modifiche a dei file nelle cartelle net/ o drivers/net, 47 ma solo dopo aver verificato al seguente indirizzo che la patch non sia 50 - Una patch di sicurezza non dovrebbero essere gestite (solamente) dal processo 63 Per far sì che una patch venga automaticamente inclusa nei sorgenti stabili, 70 nell'area dedicata alla firme. Una volta che la patch è stata inclusa, verrà 79 Dopo che la patch è stata inclusa nei sorgenti Linux, inviate una mail a 80 stable@vger.kernel.org includendo: il titolo della patch, l'identificativo [all …]
|
D | email-clients.rst | 17 per applicare le patch. 19 Se siete dei novelli utilizzatori di ``git`` allora inviate la patch a voi 23 la patch alla lista di discussione più appropriata. 28 Le patch per il kernel vengono inviate per posta elettronica, preferibilmente 32 ben apprezzati perché rende più difficile citare porzioni di patch durante il 35 I programmi di posta elettronica che vengono usati per inviare le patch per il 40 Non inviate patch con ``format=flowed``. Questo potrebbe introdurre 44 Questo può corrompere le patch. 47 testo. Le patch inviate per posta elettronica dovrebbero essere codificate in 55 Di solito, il copia-e-incolla (o taglia-e-incolla) non funziona con le patch [all …]
|
/kernel/linux/linux-5.10/Documentation/livepatch/ |
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 …]
|
/kernel/linux/linux-5.10/Documentation/ABI/testing/ |
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 …]
|
/kernel/linux/build/ |
D | README_zh.md | 24 hi3516dv300_small.patch: 在Hi3516DV300芯片上支持arm架构的内核启动(DTS等)及对应的drm/mmc等驱动的支持。 30 ├── linux-4.19 # linux-4.19 相关patch 32 │ │ └── hdf.patch # linux-4.19 HDF patches 34 │ └── hi3516dv300.patch # linux-4.19 Hi3516D V300 SOC patches 37 │ └── hdf.patch # linux-5.10 HDF patches 39 │ └── hi3516dv300.patch # linux-5.10 Hi3516D V300 SOC patches 41 ├── kernel.patch # linux-5.10 rk3568 SOC patches 42 └── hdf.patch # linux-5.10 rk3568 定制 HDF patches 59 在kernel/linux/build仓中,按照kernel.mk中的芯片组件所对应的patch路径规则及命名规则,将对应的芯片组件patch放到对应路径下: 63 DEVICE_PATCH_FILE := $(DEVICE_PATCH_DIR)/$(DEVICE_NAME).patch [all …]
|
/kernel/linux/linux-5.10/arch/ia64/kernel/ |
D | vmlinux.lds.S | 85 .data..patch.phys_stack_reg : AT(ADDR(.data..patch.phys_stack_reg) - LOAD_OFFSET) { 87 *(.data..patch.phys_stack_reg) 126 .data..patch.vtop : AT(ADDR(.data..patch.vtop) - LOAD_OFFSET) { 128 *(.data..patch.vtop) 132 .data..patch.rse : AT(ADDR(.data..patch.rse) - LOAD_OFFSET) { 134 *(.data..patch.rse) 138 .data..patch.mckinley_e9 : AT(ADDR(.data..patch.mckinley_e9) - LOAD_OFFSET) { 140 *(.data..patch.mckinley_e9)
|
/kernel/linux/linux-5.10/arch/riscv/kernel/ |
D | patch.c | 100 struct patch_insn *patch = data; in patch_text_cb() local 103 if (atomic_inc_return(&patch->cpu_count) == num_online_cpus()) { in patch_text_cb() 105 patch_text_nosync(patch->addr, &patch->insn, in patch_text_cb() 106 GET_INSN_LENGTH(patch->insn)); in patch_text_cb() 107 atomic_inc(&patch->cpu_count); in patch_text_cb() 109 while (atomic_read(&patch->cpu_count) <= num_online_cpus()) in patch_text_cb() 120 struct patch_insn patch = { in patch_text() local 127 &patch, cpu_online_mask); in patch_text()
|
/kernel/linux/patches/ |
D | README_zh.md | 28 │ ├── linux-4.19 # linux-4.19 相关patch 30 │ │ │ └── hdf.patch # linux-4.19 HDF patches 32 │ │ └── hi3516dv300.patch # linux-4.19 Hi3516D V300 SOC patches 35 │ │ └── hdf.patch # linux-5.10 HDF patches 37 │ │ └── hi3516dv300.patch # linux-5.10 Hi3516D V300 SOC patches 39 │ ├── kernel.patch # linux-5.10 rk3568 SOC patches 40 │ └── hdf.patch # linux-5.10 rk3568 定制 HDF patches 74 在kernel/linux/build仓中,按照kernel.mk中的芯片组件所对应的patch路径规则及命名规则,将对应的芯片组件patch放到对应路径下: 78 DEVICE_PATCH_FILE := $(DEVICE_PATCH_DIR)/$(DEVICE_NAME).patch 83 在kernel/linux/build仓中,按照kernel.mk中的芯片组件所对应的patch路径规则及命名规则,将对应的芯片组件config放到对应路径下:
|
/kernel/linux/linux-5.10/arch/arm/kernel/ |
D | patch.c | 14 struct patch { struct 113 struct patch *patch = data; in patch_text_stop_machine() local 115 __patch_text(patch->addr, patch->insn); in patch_text_stop_machine() 122 struct patch patch = { in patch_text() local 127 stop_machine_cpuslocked(patch_text_stop_machine, &patch, NULL); in patch_text()
|
/kernel/linux/linux-5.10/lib/livepatch/ |
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()
|
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()
|