mirror_ubuntu-kernels/arch/s390/include/asm
Vasily Gorbik eed38cd2f4 s390/nospec: generate single register thunks if possible
Currently assembler generated expoline thunks are always in a form
__s390_indirect_jump_rXuse_rX even when exrl instruction is available
and no additional register is utilized.

Generate __s390_indirect_jump_rX versions using a single register if the
kernel is built for z10 or newer machine, which have exrl instruction
available. Thunks generated are identical to the ones generated by the
compiler.

This helps to reduce the number of thunks for newer machines generations.

Acked-by: Sumanth Korikkar <sumanthk@linux.ibm.com>
Acked-by: Ilya Leoshkevich <iii@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
2022-03-10 15:58:17 +01:00
..
fpu s390/extable: move EX_TABLE define to asm-extable.h 2022-03-08 00:33:00 +01:00
trace
vdso s390/vdso: use system call functions 2021-07-27 09:39:15 +02:00
airq.h s390/airq: use DMA memory for adapter interrupts 2019-06-15 12:25:05 +02:00
alternative-asm.h
alternative.h s390/alternatives: add alternative_input() / alternative_io() 2021-02-09 15:57:06 +01:00
ap.h s390/extable: move EX_TABLE define to asm-extable.h 2022-03-08 00:33:00 +01:00
appldata.h
archrandom.h s390/crypto: add arch_get_random_long() support 2020-12-10 21:02:08 +01:00
asm-const.h s390/kernel: unify EX_TABLE* implementations 2020-07-20 10:55:45 +02:00
asm-extable.h s390/extable: add dedicated uaccess handler 2022-03-08 00:33:00 +01:00
asm-prototypes.h
atomic_ops.h s390/atomic,cmpxchg: make constraints work with old compilers 2021-04-15 17:47:42 +02:00
atomic.h locking/atomic: make ARCH_ATOMIC a Kconfig symbol 2021-05-26 13:20:49 +02:00
barrier.h s390/barrier: factor out bcr_serialize() 2021-10-11 20:55:58 +02:00
bitops.h include: move find.h from asm_generic to linux 2022-01-15 08:47:31 -08:00
boot_data.h
bug.h printk: Make linux/printk.h self-contained 2020-07-27 17:46:24 +09:00
bugs.h
cache.h treewide: Convert macro and uses of __section(foo) to __section("foo") 2020-10-25 14:51:49 -07:00
ccwdev.h s390/cio: remove duplicate struct ccw1 declaration 2021-04-05 11:30:57 +02:00
ccwgroup.h s390/qeth: fix deadlock during failing recovery 2021-09-21 20:02:24 -07:00
checksum.h s390/checksum: use register pair instead of register asm 2021-06-18 16:41:21 +02:00
chpid.h
chsc.h s390/cio: Add new Operation Code OC3 to PNSO 2020-09-15 13:21:46 -07:00
cio.h s390/cio: remove unused include linux/spinlock.h from cio.h 2021-07-27 09:39:13 +02:00
clocksource.h s390: convert to GENERIC_VDSO 2020-08-26 18:47:21 +02:00
clp.h s390/pci: Implement ioremap_wc/prot() with MIO 2020-09-14 10:30:07 +02:00
cmb.h
cmpxchg.h s390/cmpxchg: use register pair instead of register asm 2021-06-28 11:18:28 +02:00
compat.h arch: remove compat_alloc_user_space 2021-09-08 15:32:35 -07:00
cpacf.h s390/cpacf: get rid of register asm 2021-07-27 09:39:15 +02:00
cpcmd.h
cpu_mcf.h s390/cpum_cf: move array from header to C file 2021-09-07 13:38:41 +02:00
cpu_mf-insn.h
cpu_mf.h s390/extable: move EX_TABLE define to asm-extable.h 2022-03-08 00:33:00 +01:00
cpu.h s390: add support for BEAR enhancement facility 2021-10-26 15:21:29 +02:00
cpufeature.h s390/hwcaps: shorten HWCAP defines 2021-07-27 09:39:20 +02:00
cputime.h s390: convert to generic entry 2021-01-19 12:29:26 +01:00
crw.h s390: remove invalid email address of Heiko Carstens 2022-02-06 23:31:29 +01:00
css_chars.h s390/cio: Add new Operation Code OC3 to PNSO 2020-09-15 13:21:46 -07:00
ctl_reg.h s390/ctl_reg: add ctlreg5 and ctlreg15 unions 2021-07-27 09:39:17 +02:00
current.h
debug.h s390/debug: fix kernel-doc warnings 2021-10-11 20:55:58 +02:00
delay.h s390/delay: remove udelay_simple() 2020-12-16 14:55:49 +01:00
diag.h s390/extable: move EX_TABLE define to asm-extable.h 2022-03-08 00:33:00 +01:00
dis.h
dma.h
dwarf.h
eadm.h s390/scm: Make struct scm_driver::remove return void 2021-07-21 11:53:42 +02:00
ebcdic.h
elf.h s390/hwcaps: make sie capability regular hwcap 2021-07-27 09:39:21 +02:00
entry-common.h s390/signal: remove sigreturn on stack 2021-07-08 22:12:17 +02:00
exec.h
extable.h s390/extable: convert to relative table with data 2022-03-08 00:33:00 +01:00
extmem.h
facility.h include/linux/delay.h: replace kernel.h with the necessary inclusions 2021-11-09 10:02:49 -08:00
fcx.h
ftrace.h s390/ftrace: fix arch_ftrace_get_regs implementation 2022-03-01 20:41:28 +01:00
ftrace.lds.h s390/ftrace: implement hotpatching 2021-08-03 14:31:40 +02:00
futex.h s390/extable: move EX_TABLE define to asm-extable.h 2022-03-08 00:33:00 +01:00
gmap.h s390: remove orphaned function declarations 2020-09-30 12:09:54 +02:00
hardirq.h softirq: Move __ARCH_HAS_DO_SOFTIRQ to Kconfig 2021-02-10 23:34:16 +01:00
hugetlb.h s390/mm: use set_pXd()/set_pte() helper functions everywhere 2022-03-01 21:05:10 +01:00
hw_irq.h s390/irq: make init_ext_interrupts static 2020-03-11 14:18:44 +01:00
idals.h s390/idal: use struct_size() in kmalloc() 2019-06-04 15:03:18 +02:00
idle.h s390/time,idle: get rid of unsigned long long 2021-03-08 10:46:27 +01:00
io.h mm: remove xlate_dev_kmem_ptr() 2021-05-07 00:26:34 -07:00
ipl.h s390/cio: remove unused include linux/spinlock.h from cio.h 2021-07-27 09:39:13 +02:00
irq_work.h s390/smp: implement arch_irq_work_raise() 2021-02-24 00:31:22 +01:00
irq.h s390/irq: use assignment instead of cast 2022-03-08 00:33:01 +01:00
irqflags.h s390/irqflags: always inline arch irqflags functions 2021-06-18 16:41:19 +02:00
isc.h
itcw.h
jump_label.h s390/jump_label: make use of HAVE_JUMP_LABEL_BATCH 2021-10-11 20:55:58 +02:00
kasan.h s390: setup kernel memory layout early 2021-06-18 16:41:19 +02:00
Kbuild local64.h: make <asm/local64.h> mandatory 2020-12-29 15:36:49 -08:00
kdebug.h exit: Remove calls of do_exit after noreturn versions of die 2021-10-20 13:09:47 -05:00
kexec.h s390/kexec: fix memory leak of ipl report buffer 2021-11-18 17:50:07 +01:00
kfence.h s390: add support for KFENCE 2021-07-30 17:09:02 +02:00
kprobes.h kprobes: treewide: Make it harder to refer kretprobe_trampoline directly 2021-09-30 21:24:06 -04:00
kvm_host.h KVM: Drop obsolete kvm_arch_vcpu_block_finish() 2021-12-08 04:24:50 -05:00
kvm_para.h KVM: s390: generate kvm hypercall functions 2021-08-25 11:03:35 +02:00
linkage.h s390/extable: move EX_TABLE define to asm-extable.h 2022-03-08 00:33:00 +01:00
livepatch.h s390/ftrace: add ftrace_instruction_pointer_set() helper function 2021-10-11 20:55:58 +02:00
lowcore.h s390/traps: get rid of magic cast for per code 2022-03-08 00:33:01 +01:00
mem_detect.h s390/mem_detect: provide single get_mem_detect_end 2019-08-26 12:51:18 +02:00
mem_encrypt.h treewide: Replace the use of mem_encrypt_active() with cc_platform_has() 2021-10-04 11:47:24 +02:00
mmu_context.h s390/mm: ensure switch_mm() is executed with interrupts disabled 2021-06-07 17:06:59 +02:00
mmu.h s390/extable: move EX_TABLE define to asm-extable.h 2022-03-08 00:33:00 +01:00
mmzone.h
module.h s390/ftrace: implement hotpatching 2021-08-03 14:31:40 +02:00
nmi.h s390: remove invalid email address of Heiko Carstens 2022-02-06 23:31:29 +01:00
nospec-branch.h s390: introduce nospec_uses_trampoline() 2021-10-26 15:21:29 +02:00
nospec-insn.h s390/nospec: generate single register thunks if possible 2022-03-10 15:58:17 +01:00
numa.h s390/mm: remove fake numa support 2020-02-27 16:02:21 +01:00
os_info.h s390/maccess: fix semantics of memcpy_real() and its callers 2022-02-09 22:56:04 +01:00
page-states.h
page.h s390/mm: convert pte_val()/pXd_val() into functions 2022-03-01 21:05:10 +01:00
pci_clp.h s390/pci: Implement ioremap_wc/prot() with MIO 2020-09-14 10:30:07 +02:00
pci_debug.h
pci_dma.h s390/pci: use physical addresses in DMA tables 2021-12-06 14:42:26 +01:00
pci_insn.h s390: fix setting of mio addressing control 2019-07-11 20:40:02 +02:00
pci_io.h s390/pci: move pseudo-MMIO to prevent MIO overlap 2021-11-29 09:48:34 +01:00
pci.h s390/pci: make zpci_set_irq()/zpci_clear_irq() static 2022-03-10 15:58:17 +01:00
percpu.h s390/cmpxchg: use register pair instead of register asm 2021-06-28 11:18:28 +02:00
perf_event.h s390: implement perf_arch_fetch_caller_regs 2019-11-30 10:52:44 +01:00
pgalloc.h s390/mm: use set_pXd()/set_pte() helper functions everywhere 2022-03-01 21:05:10 +01:00
pgtable.h s390/mm,pgtable: don't use pte_val()/pXd_val() as lvalue 2022-03-01 21:05:10 +01:00
pkey.h s390/pkey: pkey cleanup: narrow in-kernel API, fix some variable types 2019-08-21 12:58:53 +02:00
pnet.h
preempt.h s390: preempt: Fix preempt_count initialization 2021-07-08 22:12:18 +02:00
processor.h s390/base: pass pt_regs to early program check handler 2022-03-08 00:33:00 +01:00
ptdump.h s390: add ARCH_HAS_DEBUG_WX support 2020-09-14 11:38:35 +02:00
ptrace.h s390/ftrace: fix arch_ftrace_get_regs implementation 2022-03-01 20:41:28 +01:00
purgatory.h
qdio.h s390/qdio: clarify logical vs absolute in QIB's kerneldoc 2021-12-06 14:42:26 +01:00
runtime_instr.h
schid.h
sclp.h s390: remove invalid email address of Heiko Carstens 2022-02-06 23:31:29 +01:00
scsw.h s390: Simplify the calculation of variables 2021-02-09 15:57:04 +01:00
seccomp.h s390: Enable seccomp architecture tracking 2020-11-20 11:16:35 -08:00
sections.h s390: use generic version of arch_is_kernel_initmem_freed() 2021-11-06 13:30:38 -07:00
serial.h
set_memory.h s390/mm: implement set_memory_4k() 2021-07-30 17:09:01 +02:00
setup.h s390: make command line configurable 2021-10-26 15:21:31 +02:00
shmparam.h
signal.h
sigp.h s390/sigp: use register pair instead of register asm 2021-06-18 16:41:22 +02:00
smp.h s390: remove invalid email address of Heiko Carstens 2022-02-06 23:31:29 +01:00
softirq_stack.h s390/softirq: use call_on_stack() macro 2021-07-08 22:12:18 +02:00
sparsemem.h
spinlock_types.h locking: Allow to include asm/spinlock_types.h from linux/spinlock_types_raw.h 2021-12-07 15:14:12 +01:00
spinlock.h locking: Remove spin_lock_flags() etc 2021-10-30 16:37:28 +02:00
stacktrace.h s390: always use the packed stack layout 2022-03-01 21:05:09 +01:00
stp.h s390/stp: add support for leap seconds 2020-09-26 15:51:21 +02:00
string.h s390/string: use generic strlcpy 2021-10-26 15:21:30 +02:00
switch_to.h
syscall_wrapper.h s390: pass struct pt_regs instead of registers to syscalls 2021-01-19 12:29:27 +01:00
syscall.h arch: remove unused function syscall_set_arguments() 2021-09-14 16:06:20 +02:00
sysinfo.h
termios.h
text-patching.h s390: introduce text_poke_sync() 2021-10-11 20:55:58 +02:00
thread_info.h s390: add CPU field to struct thread_info 2021-09-30 16:12:51 +02:00
timex.h s390/timex: get rid of register asm 2021-06-28 11:18:28 +02:00
tlb.h s390/tlb: make cleared_pXs flags consistent with generic code 2021-01-19 12:29:25 +01:00
tlbflush.h s390: remove orphaned function declarations 2020-09-30 12:09:54 +02:00
topology.h s390/numa: set node distance to LOCAL_DISTANCE 2020-08-11 18:16:35 +02:00
tpi.h s390: add struct tpi_info to struct pt_regs 2021-06-07 17:07:01 +02:00
types.h s390: introduce register pair union 2021-06-18 16:41:21 +02:00
uaccess.h s390/extable: add dedicated uaccess handler 2022-03-08 00:33:00 +01:00
unistd.h s390: wire up clone3 system call 2019-07-23 10:45:53 +02:00
unwind.h s390/unwind: use current_frame_address() to unwind current task 2021-09-07 13:38:27 +02:00
uprobes.h
user.h
uv.h s390: uv: Add offset comments to UV query struct and fix naming 2021-12-17 14:49:26 +01:00
vdso.h s390/vdso: add minimal compat vdso 2021-07-08 15:37:28 +02:00
vga.h
vmalloc.h mm/vmalloc: Add empty <asm/vmalloc.h> headers and use them from <linux/vmalloc.h> 2019-12-10 10:12:55 +01:00
vmlinux.lds.h
vtime.h s390: convert to generic entry 2021-01-19 12:29:26 +01:00
vtimer.h s390: remove orphaned function declarations 2020-09-30 12:09:54 +02:00
vx-insn.h s390/crypto: add SIMD implementation for ChaCha20 2021-12-06 14:42:24 +01:00
xor.h