linux/arch/s390/include/asm
Peter Zijlstra 1e9fdf21a4 mmu_gather: Remove per arch tlb_{start,end}_vma()
Scattered across the archs are 3 basic forms of tlb_{start,end}_vma().
Provide two new MMU_GATHER_knobs to enumerate them and remove the per
arch tlb_{start,end}_vma() implementations.

 - MMU_GATHER_NO_FLUSH_CACHE indicates the arch has flush_cache_range()
   but does *NOT* want to call it for each VMA.

 - MMU_GATHER_MERGE_VMAS indicates the arch wants to merge the
   invalidate across multiple VMAs if possible.

With these it is possible to capture the three forms:

  1) empty stubs;
     select MMU_GATHER_NO_FLUSH_CACHE and MMU_GATHER_MERGE_VMAS

  2) start: flush_cache_range(), end: empty;
     select MMU_GATHER_MERGE_VMAS

  3) start: flush_cache_range(), end: flush_tlb_range();
     default

Obviously, if the architecture does not have flush_cache_range() then
it also doesn't need to select MMU_GATHER_NO_FLUSH_CACHE.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Will Deacon <will@kernel.org>
Cc: David Miller <davem@davemloft.net>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2022-07-21 10:50:13 -07: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
alternative-asm.h s390/alternatives: remove padding generation code 2022-05-17 15:16:28 +02:00
alternative.h s390/alternatives: remove padding generation code 2022-05-17 15:16:28 +02:00
ap.h s390/ap: adjust whitespace 2022-03-27 22:18:39 +02:00
appldata.h
archrandom.h s390/archrandom: simplify back to earlier design and initialize earlier 2022-06-30 19:40:36 +02:00
asm-const.h s390/kernel: unify EX_TABLE* implementations 2020-07-20 10:55:45 +02:00
asm-extable.h s390/uaccess: use exception handler to zero result on get_user() failure 2022-06-01 12:03:17 +02: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: add KCSAN instrumentation to barriers and spinlocks 2022-04-25 13:54:16 +02:00
bitops.h s390: raise minimum supported machine generation to z10 2022-03-10 15:58:17 +01:00
boot_data.h
bug.h bug: Use normal relative pointers in 'struct bug_entry' 2022-05-19 23:46:10 +02: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 treewide: Replace zero-length arrays with flexible-array members 2022-02-17 07:00:39 -06:00
checksum.h s390/checksum: use register pair instead of register asm 2021-06-18 16:41:21 +02:00
chpid.h
chsc.h treewide: Replace zero-length arrays with flexible-array members 2022-02-17 07:00:39 -06:00
cio.h s390/stp: clock_delta should be signed 2022-05-11 14:40:57 +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 RISC-V Patches for the 5.19 Merge Window, Part 1 2022-05-31 14:10:54 -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: convert ".insn" encoding to instruction names 2022-03-10 15:58:17 +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/pai: add support for cryptography counters 2022-05-09 11:50:01 +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 treewide: Replace zero-length arrays with flexible-array members 2022-02-17 07:00:39 -06:00
ebcdic.h
elf.h s390/hwcaps: make sie capability regular hwcap 2021-07-27 09:39:21 +02:00
entry-common.h s390/pai: add support for cryptography counters 2022-05-09 11:50:01 +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 treewide: Replace zero-length arrays with flexible-array members 2022-02-17 07:00:39 -06:00
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 mm: change huge_ptep_clear_flush() to return the original pte 2022-05-13 16:48:55 -07:00
hw_irq.h s390/irq: make init_ext_interrupts static 2020-03-11 14:18:44 +01:00
idals.h treewide: Replace zero-length arrays with flexible-array members 2022-02-17 07:00:39 -06: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/kexec: set end-of-ipl flag in last diag308 call 2022-04-25 13:54:12 +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 more s390 updates for 5.19 merge window 2022-06-03 13:57:50 -07:00
kfence.h s390: add support for KFENCE 2021-07-30 17:09:02 +02:00
kprobes.h s390/kprobes: Avoid additional kprobe in kretprobe handling 2022-03-10 15:58:17 +01:00
kvm_host.h KVM: s390: Replace KVM_REQ_MMU_RELOAD usage with arch specific request 2022-03-01 08:58:25 -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
lowcore.h s390/pai: add support for cryptography counters 2022-05-09 11:50:01 +02:00
mem_detect.h
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/pai: add support for cryptography counters 2022-05-09 11:50:01 +02:00
nospec-branch.h s390: introduce nospec_uses_trampoline() 2021-10-26 15:21:29 +02:00
nospec-insn.h s390/nospec: remove unneeded header includes 2022-07-13 15:21:55 +02: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 updates for the 5.18 merge window 2022-03-25 10:01:34 -07:00
pai.h s390/pai: add support for cryptography counters 2022-05-09 11:50:01 +02:00
pci_clp.h s390/pci: Implement ioremap_wc/prot() with MIO 2020-09-14 10:30:07 +02:00
pci_debug.h s390/pci: add error record for CC 2 retries 2022-04-25 13:54:15 +02:00
pci_dma.h s390/pci: use physical addresses in DMA tables 2021-12-06 14:42:26 +01:00
pci_insn.h
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
pgalloc.h s390/mm: use set_pXd()/set_pte() helper functions everywhere 2022-03-01 21:05:10 +01:00
pgtable.h s390/pgtable: support __HAVE_ARCH_PTE_SWP_EXCLUSIVE 2022-05-09 18:20:46 -07:00
pkey.h
pnet.h
preempt.h s390/preempt: disable __preempt_count_add() optimization for PROFILE_ALL_BRANCHES 2022-05-11 14:40:58 +02:00
processor.h s390: simplify early program check handler 2022-05-25 11:46:02 +02:00
ptdump.h s390: add ARCH_HAS_DEBUG_WX support 2020-09-14 11:38:35 +02:00
ptrace.h s390/ptrace: move short psw definitions to ptrace header file 2022-05-06 20:45:15 +02:00
purgatory.h
qdio.h s390/qdio: Fix spelling mistake 2022-06-30 19:40:36 +02:00
runtime_instr.h
schid.h
sclp.h s390/sclp: add detection of IPL-complete-control facility 2022-04-25 13:54:12 +02:00
scsw.h s390/cio: simplify the calculation of variables 2022-04-25 13:54:13 +02: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 s390/alternatives: provide identical sized orginal/alternative sequences 2022-05-17 15:16:28 +02:00
stacktrace.h s390/stack: add union to reflect kvm stack slot usages 2022-06-01 12:03:17 +02:00
stp.h s390/stp: fix todoff size 2022-05-11 14:40:57 +02:00
string.h s390/string: use generic strlcpy 2021-10-26 15:21:30 +02:00
switch_to.h
syscall_wrapper.h s390: fix typo in syscall_wrapper.h 2022-03-27 22:18:38 +02:00
syscall.h arch: remove unused function syscall_set_arguments() 2021-09-14 16:06:20 +02:00
sysinfo.h treewide: Replace zero-length arrays with flexible-array members 2022-02-17 07:00:39 -06:00
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: define get_cycles macro for arch-override 2022-05-13 23:59:23 +02:00
tlb.h mmu_gather: Remove per arch tlb_{start,end}_vma() 2022-07-21 10:50:13 -07:00
tlbflush.h s390: convert ".insn" encoding to instruction names 2022-03-10 15:58:17 +01: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/uaccess: whitespace cleanup 2022-06-01 12:03:17 +02:00
unistd.h fs: stat: compat: Add __ARCH_WANT_COMPAT_STAT 2022-04-26 13:35:45 -07:00
unwind.h s390/unwind: recover kretprobe modified return address in stacktrace 2022-03-27 22:18:39 +02:00
uprobes.h
user.h asm/user.h: killed unused macros 2022-01-30 21:17:00 -05:00
uv.h drivers/s390/char: Add Ultravisor io device 2022-05-20 16:38:35 +02: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/vx: remove comments from macros which break LLVM's IAS 2022-05-06 20:45:14 +02:00
xor.h