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>
History 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 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
asserts.h ARC: allow userspace DSP applications to use AGU extensions 2020-03-16 10:30:49 -07:00
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 ARC: [plat-eznps]: Drop support for EZChip NPS platform 2020-10-05 21:02:29 -07:00
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 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
disasm.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
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 ARC: elf: use right ELF_ARCH 2020-06-16 12:56:37 -07:00
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 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
fpu.h ARC: fpu: fix randconfig build error reported by 0-day test service 2020-02-09 22:17:22 -08:00
futex.h futex: arch_futex_atomic_op_inuser() calling conventions change 2020-03-27 23:58:51 -04:00
highmem.h arc/mm/highmem: Use generic kmap atomic implementation 2020-11-06 23:14:55 +01:00
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 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
jump_label.h ARC: Replace __ASSEMBLY__ with __ASSEMBLER__ in the non-uapi headers 2025-06-09 09:18:12 -07:00
Kbuild ring-buffer: Flush and stop persistent ring buffer on panic 2026-05-21 08:20:58 -04:00
kdebug.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
kgdb.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
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 treewide: Convert macro and uses of __section(foo) to __section("foo") 2020-10-25 14:51:49 -07:00
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 arch: split MODULE_ARCH_VERMAGIC definitions out to <asm/vermagic.h> 2020-04-23 10:50:26 +09:00
page.h mm: convert do_brk_flags() to use vma_flags_t 2026-04-05 13:53:40 -07:00
pci.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
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 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
serial.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
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 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
stacktrace.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
string.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
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 ARC: wireup clone3 syscall 2020-01-15 16:08:12 -08:00
thread_info.h ARC: Replace __ASSEMBLY__ with __ASSEMBLER__ in the non-uapi headers 2025-06-09 09:18:12 -07:00
timex.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
tlb.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
tlbflush.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
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 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
vermagic.h arch: split MODULE_ARCH_VERMAGIC definitions out to <asm/vermagic.h> 2020-04-23 10:50:26 +09:00
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