linux/arch/arc/include/asm
Zi Yan 5c0541e11c mm: introduce cpu_icache_is_aliasing() across all architectures
In commit eacd0e950d ("ARC: [mm] Lazy D-cache flush (non aliasing
VIPT)"), arc adds the need to flush dcache to make icache see the code
page change.  This also requires special handling for
clear_user_(high)page().  Introduce cpu_icache_is_aliasing() to make MM
code query special clear_user_(high)page() easier.  This will be used by
the following commit.

Link: https://lkml.kernel.org/r/20241209182326.2955963-1-ziy@nvidia.com
Fixes: 5708d96da2 ("mm: avoid zeroing user movable page twice with init_on_alloc=1")
Signed-off-by: Zi Yan <ziy@nvidia.com>
Suggested-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Reviewed-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Alexander Potapenko <glider@google.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: John Hubbard <jhubbard@nvidia.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Miaohe Lin <linmiaohe@huawei.com>
Cc: Ryan Roberts <ryan.roberts@arm.com>
Cc: Vineet Gupta <vgupta@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2024-12-18 19:04:43 -08:00
..
arcregs.h arc: rename aux.h to arc_aux.h 2024-12-10 10:12:56 -08:00
asm-offsets.h
asserts.h
atomic-llsc.h ARC: atomics: Add compiler barrier to atomic operations... 2023-08-15 17:27:26 -07:00
atomic-spinlock.h locking/atomic: arc: add preprocessor symbols 2023-06-05 09:57:14 +02:00
atomic.h locking/atomic: make atomic*_{cmp,}xchg optional 2023-06-05 09:57:14 +02:00
atomic64-arcv2.h ARC: atomics: Add compiler barrier to atomic operations... 2023-08-15 17:27:26 -07:00
barrier.h ARC: [plat-eznps]: Drop support for EZChip NPS platform 2020-10-05 21:02:29 -07:00
bitops.h ARC: bitops: Change __fls to return unsigned long 2022-10-17 16:32:12 -07:00
bug.h
cache.h ARC: mm: move mmu/cache externs out to setup.h 2021-08-24 14:25:48 -07:00
cacheflush.h percpu: 2024-01-18 15:01:28 -08:00
cachetype.h mm: introduce cpu_icache_is_aliasing() across all architectures 2024-12-18 19:04:43 -08:00
checksum.h arc: Prefer unsigned int to bare use of unsigned 2021-08-03 18:58:33 -07:00
cmpxchg.h ARC: build: Use __force to suppress per-CPU cmpxchg warnings 2024-12-10 10:12:56 -08:00
current.h ARC: entry: use gp to cache task pointer (vs. r25) 2023-08-17 20:31:59 -07:00
delay.h
disasm.h
dma.h PCI: Move isa_dma_bridge_buggy out of asm/dma.h 2022-07-22 17:24:47 -05:00
dsp-impl.h
dsp.h ARC: Fix typos 2024-04-01 18:40:39 -07:00
dwarf.h ARC: __switch_to: asm with dwarf ops (vs. inline asm) 2023-08-17 20:31:59 -07:00
elf.h
entry-arcv2.h ARC: entry: SAVE_ABI_CALLEE_REG: ISA/ABI specific helper 2023-12-08 16:30:24 -08:00
entry-compact.h ARC: Fix typos 2024-04-01 18:40:39 -07:00
entry.h ARC: Fix typos 2024-04-01 18:40:39 -07:00
exec.h
fpu.h
futex.h
highmem.h arc/mm/highmem: Use generic kmap atomic implementation 2020-11-06 23:14:55 +01:00
hugepage.h ARC: add hugetlb definitions 2023-12-13 19:33:10 -08:00
io.h asm-generic: provide generic page_to_phys and phys_to_page implementations 2024-10-28 21:44:28 +00:00
irq.h ARC: Fix typos 2024-04-01 18:40:39 -07:00
irqflags-arcv2.h
irqflags-compact.h ARC: Fix typos 2024-04-01 18:40:39 -07:00
irqflags.h
jump_label.h work around gcc bugs with 'asm goto' with outputs 2024-02-09 15:57:48 -08:00
Kbuild asm-generic: introduce text-patching.h 2024-11-07 14:25:15 -08:00
kdebug.h
kgdb.h
kprobes.h kprobes: unify kprobes_exceptions_nofify() prototypes 2023-11-10 19:59:05 +09:00
linkage.h ARC: define ASM_NL and __ALIGN(_STR) outside #ifdef __ASSEMBLY__ guard 2023-06-15 04:47:05 +09:00
mach_desc.h treewide: Convert macro and uses of __section(foo) to __section("foo") 2020-10-25 14:51:49 -07:00
mmu-arcv2.h arc: rename aux.h to arc_aux.h 2024-12-10 10:12:56 -08:00
mmu.h arc: get rid of private asm/unaligned.h 2024-10-02 17:22:47 -04:00
mmu_context.h ARC: Fix typos 2024-04-01 18:40:39 -07:00
module.h
page.h ARC: mm: Make virt_to_pfn() a static inline 2023-12-05 13:11:37 +01:00
pci.h
perf_event.h ARC: bpf: define uapi for BPF_PROG_TYPE_PERF_EVENT program type 2022-04-26 09:35:28 -07:00
pgalloc.h ARC: mm: support 4 levels of page tables 2021-08-26 13:43:19 -07:00
pgtable-bits-arcv2.h ARC: Fix typos 2024-04-01 18:40:39 -07:00
pgtable-levels.h ARC: mm: Make virt_to_pfn() a static inline 2023-12-05 13:11:37 +01:00
pgtable.h ARC: fix potential build snafu 2021-10-15 18:06:32 -07:00
processor.h ARC: __switch_to: move ksp to thread_info from thread_struct 2023-08-17 20:31:59 -07:00
ptrace.h ARC: Fix -Wmissing-prototypes warnings 2024-04-01 18:40:39 -07:00
sections.h
serial.h
setup.h ARC: boot log: eliminate struct cpuinfo_arc #4: boot log per ISA 2023-08-17 20:31:59 -07:00
shmparam.h ARC: Fix typos 2024-04-01 18:40:39 -07:00
smp.h ARC: Fix typos 2024-04-01 18:40:39 -07:00
spinlock.h ARC: [plat-eznps]: Drop support for EZChip NPS platform 2020-10-05 21:02:29 -07:00
spinlock_types.h
stacktrace.h
string.h
switch_to.h ARC: [plat-eznps]: Drop support for EZChip NPS platform 2020-10-05 21:02:29 -07:00
syscall.h ARC: implement syscall tracepoints 2022-04-25 13:09:47 -07:00
syscalls.h
thread_info.h ARC: Fix typos 2024-04-01 18:40:39 -07:00
timex.h
tlb.h
tlbflush.h
uaccess.h ARC: uaccess: elide unaliged handling if hardware supports 2023-08-17 12:40:26 -07:00
unistd.h arc: convert to generic syscall table 2024-07-10 14:23:38 +02:00
unwind.h
vermagic.h
vmalloc.h