Home
last modified time | relevance | path

Searched +full:alternative +full:- +full:a (Results 1 – 25 of 662) sorted by relevance

12345678910>>...27

/linux-6.14.4/arch/s390/include/asm/
Dalternative.h1 /* SPDX-License-Identifier: GPL-2.0 */
6 * Each alternative comes with a 32 bit feature field:
16 * @ctx is a bitfield, where only one bit must be set. Each bit defines
17 * in which context an alternative is supposed to be applied to the
20 * - from the decompressor before the kernel itself is executed
21 * - from early kernel code from within the kernel
23 * @type is a number which defines the type and with that the type
24 * specific alternative patching.
27 * alternative should be applied.
66 u32 type : 8; /* type of alternative */
[all …]
/linux-6.14.4/arch/x86/include/asm/
Dsmap.h1 /* SPDX-License-Identifier: GPL-2.0-only */
14 #include <asm/alternative.h>
19 ALTERNATIVE "", "clac", X86_FEATURE_SMAP
22 ALTERNATIVE "", "stac", X86_FEATURE_SMAP
28 /* Note: a barrier is implicit in alternative() */ in clac()
29 alternative("", "clac", X86_FEATURE_SMAP); in clac()
34 /* Note: a barrier is implicit in alternative() */ in stac()
35 alternative("", "stac", X86_FEATURE_SMAP); in stac()
43 ALTERNATIVE("", "pushf; pop %0; " "clac" "\n\t", in smap_save()
53 ALTERNATIVE("", "push %0; popf\n\t", in smap_restore()
[all …]
Dalternative.h1 /* SPDX-License-Identifier: GPL-2.0 */
23 * Alternative inline assembly for SMP.
29 * alternatives and the X86_FEATURE_UP flag to indicate the case of a
30 * UP system running a SMP kernel. The existing apply_alternatives()
31 * works fine for patching a SMP kernel for UP.
33 * The SMP alternative tables can be kept after boot and contain both
35 * SMP at runtime, when hotplugging in a new CPU, which is especially
38 * The very common lock prefix is handled as special case in a
39 * separate table which is a pure address list without replacement ptr
45 ".pushsection .smp_locks,\"a\"\n" \
[all …]
Dbarrier.h1 /* SPDX-License-Identifier: GPL-2.0 */
5 #include <asm/alternative.h>
15 #define mb() asm volatile(ALTERNATIVE("lock; addl $0,-4(%%esp)", "mfence", \
17 #define rmb() asm volatile(ALTERNATIVE("lock; addl $0,-4(%%esp)", "lfence", \
19 #define wmb() asm volatile(ALTERNATIVE("lock; addl $0,-4(%%esp)", "sfence", \
28 * array_index_mask_nospec() - generate a mask that is ~0UL when the
34 * 0 - (index < size)
48 #define barrier_nospec() alternative("", "lfence", X86_FEATURE_LFENCE_RDTSC)
53 #define __smp_mb() asm volatile("lock; addl $0,-4(%%" _ASM_SP ")" ::: "memory", "cc")
78 /* Writing to CR3 provides a full memory barrier in switch_mm(). */
[all …]
Duaccess_64.h1 /* SPDX-License-Identifier: GPL-2.0 */
10 #include <linux/kasan-checks.h>
11 #include <asm/alternative.h>
15 #include <asm/runtime-const.h>
29 asm (ALTERNATIVE("", in __untagged_addr()
46 return addr & (mm)->context.untag_mask; in __untagged_addr_remote()
60 * Masking the user address is an alternative to a conditional
80 * User pointers can have tag bits on x86-64. This scheme tolerates
88 * max user address and the non-canonical gap, allowing us to
95 * That's a separate optimization, for now just handle the small
[all …]
Dnospec-branch.h1 /* SPDX-License-Identifier: GPL-2.0 */
10 #include <asm/alternative.h>
12 #include <asm/msr-index.h>
21 * The tracking does not use a counter. It uses uses arithmetic shift
36 * After a return buffer fill the depth is credited 12 calls before the
39 * There is a inaccuracy for situations like this:
49 * but there is still a cushion vs. the RSB depth. The algorithm does not
78 #include <asm/asm-offsets.h>
81 movq $-1, PER_CPU_VAR(pcpu_hot + X86_call_depth);
108 * Each entry in the RSB, if used for a speculative 'ret', contains an
[all …]
Darch_hweight.h1 /* SPDX-License-Identifier: GPL-2.0 */
9 #define REG_OUT "a"
11 #define REG_IN "a"
12 #define REG_OUT "a"
19 asm (ALTERNATIVE("call __sw_hweight32", "popcntl %1, %0", X86_FEATURE_POPCNT) in __arch_hweight32()
47 asm (ALTERNATIVE("call __sw_hweight64", "popcntq %1, %0", X86_FEATURE_POPCNT) in __arch_hweight64()
/linux-6.14.4/arch/arm64/include/asm/
Dalternative-macros.h1 /* SPDX-License-Identifier: GPL-2.0 */
9 #include <asm/insn-def.h>
12 * Binutils 2.27.0 can't handle a 'UL' suffix on constants, so for the assembly
27 " .word 661b - .\n" /* label */ \
28 " .word 663f - .\n" /* new instruction */ \
30 " .byte 662b-661b\n" /* source len */ \
31 " .byte 664f-663f\n" /* replacement len */
34 " .word 661b - .\n" /* label */ \
35 " .word " __stringify(cb) "- .\n" /* callback */ \
37 " .byte 662b-661b\n" /* source len */ \
[all …]
/linux-6.14.4/arch/loongarch/include/asm/
Dalternative.h1 /* SPDX-License-Identifier: GPL-2.0 */
21 * Debug flag that can be tested to see whether alternative
34 #define alt_slen "662b-661b"
35 #define alt_total_slen alt_end_marker"b-661b"
36 #define alt_rlen(num) e_replacement(num)"f-"b_replacement(num)"f"
40 ".fill -(((" alt_rlen(num) ")-(" alt_slen ")) > 0) * " \
41 "((" alt_rlen(num) ")-(" alt_slen ")) / 4, 4, 0x03400000\n"
47 #define alt_max_short(a, b) "((" a ") ^ (((" a ") ^ (" b ")) & -(-((" a ") < (" b ")))))" argument
50 * Pad the second replacement alternative with additional NOPs if it is
51 * additionally longer than the first replacement alternative.
[all …]
Dalternative-asm.h1 /* SPDX-License-Identifier: GPL-2.0 */
16 .long \orig - .
17 .long \alt - .
24 * Define an alternative between two instructions. If @feature is
29 .macro ALTERNATIVE oldinstr, newinstr, feature
33 .fill - (((144f-143f)-(141b-140b)) > 0) * ((144f-143f)-(141b-140b)) / 4, 4, 0x03400000
36 .pushsection .altinstructions, "a"
37 altinstruction_entry 140b, 143f, \feature, 142b-140b, 144f-143f
47 #define old_len (141b-140b)
48 #define new_len1 (144f-143f)
[all …]
/linux-6.14.4/Documentation/networking/pse-pd/
Dpse-pi.rst1 .. SPDX-License-Identifier: GPL-2.0
6 The Power Sourcing Equipment Power Interface (PSE PI) plays a pivotal role in
7 the architecture of Power over Ethernet (PoE) systems. It is essentially a
9 eight-pin modular jack, commonly known as the Ethernet RJ45 port. This
14 ---------------------------
19 - Section "33.2.3 PI pin assignments" covers the pin assignments for PoE
21 - Section "145.2.4 PSE PI" addresses the configuration for PoE systems that
25 -------------------------------
27 Single Pair Ethernet (SPE) represents a different approach to Ethernet
31 two pairs of wires, SPE operates on a simpler model due to its single-pair
[all …]
/linux-6.14.4/Documentation/devicetree/bindings/net/pse-pd/
Dpse-controller.yaml1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
3 ---
4 $id: http://devicetree.org/schemas/net/pse-pd/pse-controller.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
11 power over twisted pair/ethernet cable. The ethernet-pse nodes should be
12 used to describe PSE controller and referenced by the ethernet-phy node.
15 - Oleksij Rempel <[email protected]>
16 - Kory Maincent <[email protected]>
20 pattern: "^ethernet-pse(@.*|-([0-9]|[1-9][0-9]+))?$"
22 "#pse-cells":
[all …]
Dti,tps23881.yaml1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
3 ---
4 $id: http://devicetree.org/schemas/net/pse-pd/ti,tps23881.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
10 - Kory Maincent <[email protected]>
13 - $ref: pse-controller.yaml#
18 - ti,tps23881
23 '#pse-cells':
26 reset-gpios:
38 "#address-cells":
[all …]
Dmicrochip,pd692x0.yaml1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
3 ---
4 $id: http://devicetree.org/schemas/net/pse-pd/microchip,pd692x0.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
10 - Kory Maincent <[email protected]>
13 - $ref: pse-controller.yaml#
18 - microchip,pd69200
19 - microchip,pd69210
20 - microchip,pd69220
36 physical ports available on a manager have to be described in the
[all …]
/linux-6.14.4/arch/riscv/include/asm/
Dalternative-macros.h1 /* SPDX-License-Identifier: GPL-2.0 */
10 .4byte \oldptr - .
11 .4byte \newptr - .
19 .pushsection .alternative, "a"
20 ALT_ENTRY 886b, 888f, \vendor_id, \patch_id, 889f - 888f
30 .org . - (889b - 888b) + (887b - 886b)
31 .org . - (887b - 886b) + (889b - 888b)
62 ".4byte ((" oldptr ") - .) \n" \
63 ".4byte ((" newptr ") - .) \n" \
70 ".pushsection .alternative, \"a\"\n" \
[all …]
/linux-6.14.4/arch/x86/entry/
Dcalling.h1 /* SPDX-License-Identifier: GPL-2.0 */
7 #include <asm/asm-offsets.h>
8 #include <asm/processor-flags.h>
9 #include <asm/ptrace-abi.h>
11 #include <asm/nospec-branch.h>
15 x86 function call convention, 64-bit:
16 -------------------------------------
17 arguments | callee-saved | extra caller-saved | return
18 [callee-clobbered] | | [callee-clobbered] |
19 ---------------------------------------------------------------------------
[all …]
/linux-6.14.4/arch/s390/kernel/
Dalternative.c1 // SPDX-License-Identifier: GPL-2.0
4 #include <asm/nospec-branch.h>
6 #include <asm/alternative.h>
12 struct alt_instr *a; in __apply_alternatives() local
16 * The scan order should be from start to end. A later scanned in __apply_alternatives()
17 * alternative code can overwrite previously scanned alternative code. in __apply_alternatives()
19 for (a = start; a < end; a++) { in __apply_alternatives()
20 if (!(a->ctx & ctx)) in __apply_alternatives()
22 switch (a->type) { in __apply_alternatives()
24 replace = test_facility(a->data); in __apply_alternatives()
[all …]
Dentry.S1 /* SPDX-License-Identifier: GPL-2.0 */
3 * S390 low-level entry points.
14 #include <asm/asm-extable.h>
15 #include <asm/alternative.h>
22 #include <asm/asm-offsets.h>
27 #include <asm/fpu-insn.h>
30 #include <asm/nospec-insn.h>
36 ALTERNATIVE "nop", ".insn s,0xb2010000,\address", ALT_FACILITY(193)
40 ALTERNATIVE "nop", ".insn s,0xb2000000,\address", ALT_FACILITY(193)
51 ALTERNATIVE "brcl 0,0", __stringify(mvc __PT_LAST_BREAK(8,\reg),__LC_LAST_BREAK(\lowcore)),\
[all …]
/linux-6.14.4/arch/parisc/include/asm/
Dalternative.h1 /* SPDX-License-Identifier: GPL-2.0 */
7 #define ALT_COND_NO_DCACHE 0x02 /* if system has no d-cache */
8 #define ALT_COND_NO_ICACHE 0x04 /* if system has no i-cache */
35 /* Alternative SMP implementation. */
36 #define ALTERNATIVE(cond, replacement) "!0:" \ macro
37 ".section .altinstructions, \"a\" !" \
39 ".word (0b-4-.) !" \
46 /* to replace one single instructions by a new instruction */
47 #define ALTERNATIVE(from, to, cond, replacement)\ macro
48 .section .altinstructions, "a" ! \
[all …]
/linux-6.14.4/arch/parisc/kernel/
Dpacache.S1 /* SPDX-License-Identifier: GPL-2.0-or-later */
4 * Copyright (C) 2000-2001 Hewlett-Packard (John Marvin)
5 * Copyright (C) 2001 Matthew Wilcox (willy at parisc-linux.org)
6 * Copyright (C) 2002 Richard Hirst (rhirst with parisc-linux.org)
26 #include <asm/alternative.h>
42 /* pcxt_ssm_bug - relied upon translation! PA 2.0 Arch. F-4 and F-5 */
43 rsm PSW_SM_I, %r19 /* save I-bit state */
74 addib,COND(=) -1, %arg3, fitoneloop /* Preadjust and test */
84 addib,COND(>) -1, %r31, fitmanymiddle /* Adjusted inner loop decr */
87 addib,COND(>) -1, %r29, fitmanymiddle /* Middle loop decr */
[all …]
/linux-6.14.4/arch/riscv/kernel/
Dalternative.c1 // SPDX-License-Identifier: GPL-2.0-only
3 * alternative runtime patching
13 #include <asm/alternative.h>
21 #include <asm/text-patching.h>
35 cpu_mfr_info->vendor_id = csr_read(CSR_MVENDORID); in riscv_fill_cpu_mfr_info()
36 cpu_mfr_info->arch_id = csr_read(CSR_MARCHID); in riscv_fill_cpu_mfr_info()
37 cpu_mfr_info->imp_id = csr_read(CSR_MIMPID); in riscv_fill_cpu_mfr_info()
39 cpu_mfr_info->vendor_id = sbi_get_mvendorid(); in riscv_fill_cpu_mfr_info()
40 cpu_mfr_info->arch_id = sbi_get_marchid(); in riscv_fill_cpu_mfr_info()
41 cpu_mfr_info->imp_id = sbi_get_mimpid(); in riscv_fill_cpu_mfr_info()
[all …]
/linux-6.14.4/arch/x86/lib/
Dretpoline.S1 /* SPDX-License-Identifier: GPL-2.0 */
8 #include <asm/alternative.h>
9 #include <asm/asm-offsets.h>
10 #include <asm/nospec-branch.h>
53 * Worse, you can only have a single EXPORT_SYMBOL per line,
64 #include <asm/GEN-for-each-reg.h>
71 #include <asm/GEN-for-each-reg.h>
93 #include <asm/GEN-for-each-reg.h>
100 #include <asm/GEN-for-each-reg.h>
119 #include <asm/GEN-for-each-reg.h>
[all …]
Dmemset_64.S1 /* SPDX-License-Identifier: GPL-2.0 */
7 #include <asm/alternative.h>
12 * ISO C memset - set a memory block to a byte value. This function uses fast
22 * The FSRS alternative should be done inline (avoiding the call and
32 ALTERNATIVE "jmp memset_orig", "", X86_FEATURE_FSRS
/linux-6.14.4/tools/arch/x86/lib/
Dmemset_64.S1 /* SPDX-License-Identifier: GPL-2.0 */
7 #include <asm/alternative.h>
12 * ISO C memset - set a memory block to a byte value. This function uses fast
22 * The FSRS alternative should be done inline (avoiding the call and
32 ALTERNATIVE "jmp memset_orig", "", X86_FEATURE_FSRS
/linux-6.14.4/arch/loongarch/kernel/
Dalternative.c1 // SPDX-License-Identifier: GPL-2.0-only
4 #include <asm/alternative.h>
13 #define MAX_PATCH_SIZE (((u8)(-1)) / LOONGARCH_INSN_SIZE)
22 __setup("debug-alternative", debug_alt);
40 for (_j = 0; _j < count - 1; _j++) \
46 /* Use this to add nops to a buffer, then text_poke the whole buffer. */
49 while (count--) { in add_nops()
50 insn->word = INSN_NOP; in add_nops()
72 si_l = src->reg0i26_format.immediate_l; in recompute_jump()
73 si_h = src->reg0i26_format.immediate_h; in recompute_jump()
[all …]

12345678910>>...27