linux/arch/alpha/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
..
agp_backend.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
asm-prototypes.h alpha: move __udiv_qrnnd library function to arch/alpha/lib/ 2021-09-18 14:45:48 -07:00
atomic.h locking/atomic: treewide: delete arch_atomic_*() kerneldoc 2023-06-05 09:57:24 +02:00
barrier.h alpha: Override READ_ONCE() with barriered implementation 2020-07-21 10:50:35 +01:00
bitops.h alpha: Add __attribute_const__ to ffs()-family implementations 2025-09-08 14:58:51 -07:00
bug.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cache.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cacheflush.h mm: rationalise flush_icache_pages() and flush_icache_page() 2023-08-24 16:20:25 -07:00
checksum.h saner calling conventions for csum_and_copy_..._user() 2020-08-20 15:45:15 -04:00
cmpxchg.h alpha: no need to include asm/xchg.h twice 2024-08-19 09:45:27 +02:00
compiler.h alpha: remove undef inline in compiler.h 2021-07-25 22:18:20 -07:00
console.h alpha: Replace __ASSEMBLY__ with __ASSEMBLER__ in the alpha headers 2025-12-08 23:10:30 +01:00
core_cia.h alpha: add full ioread64/iowrite64 implementation 2022-10-04 11:23:29 +02:00
core_irongate.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
core_marvel.h alpha: add full ioread64/iowrite64 implementation 2022-10-04 11:23:29 +02:00
core_mcpcia.h alpha: add full ioread64/iowrite64 implementation 2022-10-04 11:23:29 +02:00
core_polaris.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
core_t2.h alpha: sable: remove early machine support 2024-05-03 22:09:55 +02:00
core_titan.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
core_tsunami.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
core_wildfire.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
delay.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
device.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 428 2019-06-05 17:37:16 +02:00
dma-mapping.h alpha: remove DECpc AXP150 (Jensen) support 2024-05-03 22:09:50 +02:00
dma.h alpha: remove LCA and APECS based machines 2024-05-03 22:09:59 +02:00
elf.h alpha/elf: Fix misc/setarch test of util-linux by removing 32bit support 2025-02-06 07:35:38 -08:00
emergency-restart.h
err_common.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
err_ev6.h
err_ev7.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
extable.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
floppy.h floppy: Remove unused CROSS_64KB() macro from arch/ code 2025-08-25 14:46:42 -06:00
fpu.h alpha: lazy FPU switching 2023-02-24 23:14:22 -05:00
ftrace.h tracing: make CALLER_ADDRx overwriteable 2009-03-02 16:49:37 -05:00
futex.h futex: arch_futex_atomic_op_inuser() calling conventions change 2020-03-27 23:58:51 -04:00
gct.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hardirq.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hw_irq.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hwrpb.h alpha: Replace one-element array with flexible array member 2025-02-14 14:06:15 -05:00
io_trivial.h alpha: add full ioread64/iowrite64 implementation 2022-10-04 11:23:29 +02:00
io.h alpha: stop using asm-generic/iomap.h 2025-03-10 16:20:25 +01:00
irq.h alpha: cabriolet: remove EV5 CPU support 2024-05-03 22:10:03 +02:00
irqflags.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Kbuild ring-buffer: Flush and stop persistent ring buffer on panic 2026-05-21 08:20:58 -04:00
linkage.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
local.h locking/local, arch: Rewrite local_add_unless() as a static inline function 2023-10-04 11:38:11 +02:00
machvec.h alpha: drop pre-EV56 support 2024-05-06 12:05:00 +02:00
mc146818rtc.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mce.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mmu_context.h alpha: drop pre-EV56 support 2024-05-06 12:05:00 +02:00
mmu.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
module.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
page.h treewide: provide a generic clear_user_page() variant 2026-01-20 19:24:39 -08:00
pal.h alpha: Replace __ASSEMBLY__ with __ASSEMBLER__ in the alpha headers 2025-12-08 23:10:30 +01:00
parport.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pci.h PCI/sysfs: Move declarations to linux/pci.h 2023-08-14 12:05:18 -05:00
percpu.h mm/percpu: conditionally define _shared_alloc_tag via CONFIG_ARCH_MODULE_NEEDS_WEAK_PER_CPU 2025-07-09 22:42:15 -07:00
perf_event.h perf, arch: Cleanup perf-pmu init vs lockup-detector 2010-11-26 15:14:56 +01:00
pgalloc.h mm/thp: define default pmd_pgtable() 2021-07-01 11:06:03 -07:00
pgtable.h alpha updates for v7.1 2026-04-17 08:34:43 -07:00
processor.h alpha/elf: Fix misc/setarch test of util-linux by removing 32bit support 2025-02-06 07:35:38 -08:00
ptrace.h kill signal_pt_regs() 2022-10-23 18:06:54 -04:00
rwonce.h alpha: Override READ_ONCE() with barriered implementation 2020-07-21 10:50:35 +01:00
seccomp.h alpha: add support for SECCOMP and SECCOMP_FILTER 2026-04-12 19:13:59 +02:00
serial.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
setup.h alpha: Use absolute_pointer to define COMMAND_LINE 2021-09-15 12:04:28 -07:00
sfp-machine.h
shmparam.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
signal.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
smp.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
socket.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sparsemem.h alpha: switch from DISCONTIGMEM to SPARSEMEM 2020-12-15 12:13:42 -08:00
special_insns.h alpha: drop pre-EV56 support 2024-05-06 12:05:00 +02:00
spinlock_types.h Improve consistency of '#error' directive messages 2024-11-11 17:17:04 -08:00
spinlock.h Merge branch 'linus' into locking/core, to resolve conflicts 2017-11-07 10:32:44 +01:00
string.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
switch_to.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
syscall.h alpha: add support for SECCOMP and SECCOMP_FILTER 2026-04-12 19:13:59 +02:00
thread_info.h alpha: add support for SECCOMP and SECCOMP_FILTER 2026-04-12 19:13:59 +02:00
timex.h alpha: define get_cycles macro for arch-override 2022-05-13 23:59:23 +02:00
tlb.h alpha: mm: enable MMU_GATHER_RCU_TABLE_FREE 2026-02-06 15:47:17 -08:00
tlbflush.h alpha: fix user-space corruption during memory compaction 2026-01-24 10:35:52 +01:00
topology.h alpha: remove DISCONTIGMEM and NUMA 2021-06-29 10:53:55 -07:00
types.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
uaccess.h alpha: drop pre-EV56 support 2024-05-06 12:05:00 +02:00
ucontext.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
unistd.h alpha: replace NR_SYSCALLS by NR_syscalls 2023-02-14 12:37:17 -05:00
user.h asm/user.h: killed unused macros 2022-01-30 21:17:00 -05:00
vga.h alpha: sort scr_mem{cpy,move}w() out 2024-05-03 22:08:50 +02: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
word-at-a-time.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
wrperfmon.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00