mirror-linux/arch/arc/include/asm
Masami Hiramatsu (Google) a494d3c8d5 ring-buffer: Flush and stop persistent ring buffer on panic
On real hardware, panic and machine reboot may not flush hardware cache
to memory. This means the persistent ring buffer, which relies on a
coherent state of memory, may not have its events written to the buffer
and they may be lost. Moreover, there may be inconsistency with the
counters which are used for validation of the integrity of the
persistent ring buffer which may cause all data to be discarded.

To avoid this issue, stop recording of the ring buffer on panic and
flush the cache of the ring buffer's memory.

Fixes: e645535a95 ("tracing: Add option to use memmapped memory for trace boot instance")
Cc: stable@vger.kernel.org
Cc: Will Deacon <will@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Ian Rogers <irogers@google.com>
Link: https://patch.msgid.link/177751969602.2136606.12031934362587643488.stgit@mhiramat.tok.corp.google.com
Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2026-05-21 08:20:58 -04:00
..
Kbuild ring-buffer: Flush and stop persistent ring buffer on panic 2026-05-21 08:20:58 -04:00
arcregs.h mm: replace (20 - PAGE_SHIFT) with common macros for pages<->MB conversion 2025-09-13 16:54:42 -07: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 ARC: Replace __ASSEMBLY__ with __ASSEMBLER__ in the non-uapi headers 2025-06-09 09:18:12 -07:00
atomic64-arcv2.h ARC: atomics: Implement arch_atomic64_cmpxchg using _relaxed 2025-06-09 09:18:12 -07:00
barrier.h
bitops.h arc: Fix __fls() const-foldability via __builtin_clzl() 2025-09-02 19:30:51 -04:00
bug.h ARC: Replace __ASSEMBLY__ with __ASSEMBLER__ in the non-uapi headers 2025-06-09 09:18:12 -07:00
cache.h ARC: Replace __ASSEMBLY__ with __ASSEMBLER__ in the non-uapi headers 2025-06-09 09:18:12 -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: Replace __ASSEMBLY__ with __ASSEMBLER__ in the non-uapi headers 2025-06-09 09:18:12 -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 ARC: Replace __ASSEMBLY__ with __ASSEMBLER__ in the non-uapi headers 2025-06-09 09:18:12 -07:00
dsp.h ARC: Replace __ASSEMBLY__ with __ASSEMBLER__ in the non-uapi headers 2025-06-09 09:18:12 -07:00
dwarf.h ARC: Replace __ASSEMBLY__ with __ASSEMBLER__ in the non-uapi headers 2025-06-09 09:18:12 -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: Replace __ASSEMBLY__ with __ASSEMBLER__ in the non-uapi headers 2025-06-09 09:18:12 -07:00
exec.h
fpu.h
futex.h
highmem.h
hugepage.h arch: remove mk_pmd() 2025-05-11 17:48:04 -07: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 ARC: Replace __ASSEMBLY__ with __ASSEMBLER__ in the non-uapi headers 2025-06-09 09:18:12 -07:00
irqflags-compact.h ARC: Replace __ASSEMBLY__ with __ASSEMBLER__ in the non-uapi headers 2025-06-09 09:18:12 -07:00
irqflags.h
jump_label.h ARC: Replace __ASSEMBLY__ with __ASSEMBLER__ in the non-uapi headers 2025-06-09 09:18:12 -07:00
kdebug.h
kgdb.h
kprobes.h kprobes: unify kprobes_exceptions_nofify() prototypes 2023-11-10 19:59:05 +09:00
linkage.h ARC: Replace __ASSEMBLY__ with __ASSEMBLER__ in the non-uapi headers 2025-06-09 09:18:12 -07:00
mach_desc.h
mmu-arcv2.h ARC: Replace __ASSEMBLY__ with __ASSEMBLER__ in the non-uapi headers 2025-06-09 09:18:12 -07:00
mmu.h ARC: Replace __ASSEMBLY__ with __ASSEMBLER__ in the non-uapi headers 2025-06-09 09:18:12 -07:00
mmu_context.h ARC: Fix typos 2024-04-01 18:40:39 -07:00
module.h
page.h mm: convert do_brk_flags() to use vma_flags_t 2026-04-05 13:53:40 -07: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 asm-generic: pgalloc: provide generic __pgd_{alloc,free} 2025-01-25 20:22:24 -08:00
pgtable-bits-arcv2.h ARC fixes for 6.16 2025-06-12 08:17:56 -07:00
pgtable-levels.h ARC: Replace __ASSEMBLY__ with __ASSEMBLER__ in the non-uapi headers 2025-06-09 09:18:12 -07:00
pgtable.h arch, mm: consolidate empty_zero_page 2026-04-05 13:53:01 -07:00
processor.h ARC: Replace __ASSEMBLY__ with __ASSEMBLER__ in the non-uapi headers 2025-06-09 09:18:12 -07:00
ptrace.h ARC: Replace __ASSEMBLY__ with __ASSEMBLER__ in the non-uapi headers 2025-06-09 09:18:12 -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
spinlock_types.h
stacktrace.h
string.h
switch_to.h ARC: Replace __ASSEMBLY__ with __ASSEMBLER__ in the non-uapi headers 2025-06-09 09:18:12 -07:00
syscall.h syscall.h: introduce syscall_set_nr() 2025-05-11 17:48:15 -07:00
syscalls.h
thread_info.h ARC: Replace __ASSEMBLY__ with __ASSEMBLER__ in the non-uapi headers 2025-06-09 09:18:12 -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