linux/arch/parisc/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
..
alternative.h parisc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-05-04 20:46:27 +02:00
asm-offsets.h kbuild: move asm-offsets.h to include/generated 2009-12-12 13:08:14 +01:00
asmregs.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 153 2019-05-30 11:26:32 -07:00
assembly.h parisc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-05-04 20:46:27 +02:00
atomic.h locking/atomic: parisc: add preprocessor symbols 2023-06-05 09:57:16 +02:00
barrier.h parisc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-05-04 20:46:27 +02:00
bitops.h parisc: Add __attribute_const__ to ffs()-family implementations 2025-09-08 14:58:51 -07:00
bug.h parisc architecture fixes and updates for kernel v6.19-rc1: 2025-12-06 16:24:52 -08:00
cache.h parisc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-05-04 20:46:27 +02:00
cacheflush.h parisc: Try to fix random segmentation faults in package builds 2024-06-12 01:57:05 +02:00
cachetype.h Introduce cpu_dcache_is_aliasing() across all architectures 2024-02-22 15:27:19 -08:00
checksum.h parisc: Drop ip_fast_csum() inline assembly implementation 2026-04-17 11:32:46 +02:00
cmpxchg.h parisc: add u16 support to cmpxchg() 2024-04-09 22:06:00 -07:00
compat.h parisc: is_compat_task() shall return false for COMPAT=n 2026-04-17 15:46:45 +02:00
compat_ucontext.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
current.h parisc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-05-04 20:46:27 +02: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
dma-mapping.h dma-mapping: no need to pass a bus_type into get_arch_dma_ops() 2023-02-15 12:35:20 +01:00
dma.h parisc: dma: Add prototype for pcxl_dma_start 2023-08-10 19:12:16 +02:00
dwarf.h parisc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-05-04 20:46:27 +02:00
eisa_bus.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
eisa_eeprom.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
elf.h parisc: fix mmap_base calculation when stack grows upwards 2023-11-15 15:30:09 -08:00
extable.h parisc: Fix random data corruption from exception handler 2024-01-30 17:18:58 +01:00
fixmap.h parisc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-05-04 20:46:27 +02:00
floppy.h floppy: Replace custom SZ_64K constant 2025-08-25 14:46:42 -06:00
ftrace.h parisc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-05-04 20:46:27 +02:00
futex.h uaccess: remove CONFIG_SET_FS 2022-02-25 09:36:06 +01:00
grfioctl.h parisc: Drop HP-UX constants and structs from grfioctl.h 2023-05-03 17:43:26 +02:00
hardirq.h softirq: Move __ARCH_HAS_DO_SOFTIRQ to Kconfig 2021-02-10 23:34:16 +01:00
hardware.h parisc: Avoid printing the hardware path twice 2022-10-31 15:37:14 +01:00
hash.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hugetlb.h mm: hugetlb: Add huge page size param to huge_ptep_get_and_clear() 2025-02-27 17:40:57 +00:00
io.h - The 6 patch series "Enable strict percpu address space checks" from 2025-04-01 09:29:18 -07:00
irq.h parisc: Remove leftover reference to the power_tasklet 2021-01-26 19:57:26 +01:00
irqflags.h parisc: Check if IRQs are disabled when calling arch_local_irq_restore() 2023-06-30 17:14:13 +02:00
jump_label.h parisc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-05-04 20:46:27 +02:00
kbdleds.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
kexec.h parisc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-05-04 20:46:27 +02:00
kfence.h parisc: Add KFENCE support 2021-10-30 23:11:00 +02:00
kgdb.h parisc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-05-04 20:46:27 +02:00
kprobes.h parisc/kprobes: always include asm-generic/kprobes.h 2024-02-16 20:18:03 +01:00
ldcw.h parisc: Mark lock_aligned variables 16-byte aligned on SMP 2023-11-25 09:43:17 +01:00
led.h parisc: led: Rewrite LED/LCD driver to utilizize Linux LED subsystem 2023-08-28 17:58:14 +02:00
linkage.h parisc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-05-04 20:46:27 +02:00
mman.h mm: refactor arch_calc_vm_flag_bits() and arm64 MTE handling 2024-11-05 16:49:55 -08:00
mmu.h parisc: Add vDSO support 2022-03-11 19:49:30 +01:00
mmu_context.h parisc: Use constants to encode the space registers like SR_KERNEL 2022-03-11 19:49:31 +01:00
mmzone.h parisc: Switch from DISCONTIGMEM to SPARSEMEM 2019-05-03 23:47:40 +02: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
parisc-device.h driver core: have match() callback in struct bus_type take a const * 2024-07-03 15:16:54 +02: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: Remove pci_get_legacy_ide_irq() and asm-generic/pci.h 2022-07-22 17:23:45 -05:00
pdc.h parisc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-05-04 20:46:27 +02:00
pdc_chassis.h treewide: remove editor modelines and cruft 2021-05-07 00:26:34 -07:00
pdcpat.h parisc: Add PDC PAT call to get free running 64-bit counter 2026-02-07 00:45:19 +01:00
perf.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
perf_event.h parisc: Add initial kernel-side perf_event support 2025-10-07 19:35:51 +02:00
pgalloc.h mm: pass mm down to pagetable_{pte,pmd}_ctor 2025-05-11 17:48:21 -07:00
pgtable.h mm: change to return bool for ptep_clear_flush_young()/clear_flush_young_ptes() 2026-04-05 13:53:35 -07:00
prefetch.h parisc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-05-04 20:46:27 +02:00
processor.h parisc: constify mmap_upper_limit() parameter 2025-09-21 14:22:14 -07:00
psw.h parisc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-05-04 20:46:27 +02:00
ptrace.h parisc: Use PRIV_USER and PRIV_KERNEL in ptrace.h 2021-11-01 07:36:00 +01:00
ropes.h parisc: sba-iommu: Fix sparse warnigs 2023-08-31 21:42:42 +02:00
rt_sigframe.h parisc: Add vDSO support 2022-03-11 19:49:30 +01:00
runway.h parisc: ccio-dma: Create private runway procfs root entry 2023-08-28 18:00:27 +02:00
seccomp.h parisc: Enable seccomp architecture tracking 2020-11-20 11:16:34 -08:00
sections.h asm-generic: Refactor dereference_[kernel]_function_descriptor() 2022-02-16 23:25:11 +11:00
serial.h parisc: remove empty SERIAL_PORT_DFNS in serial.h 2013-11-30 21:02:18 +01:00
shmparam.h parisc: shmparam.h: Document aliasing requirements of PA-RISC 2023-09-07 08:00:32 +02:00
signal.h parisc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-05-04 20:46:27 +02:00
smp.h parisc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-05-04 20:46:27 +02:00
socket.h parisc: Define O_NONBLOCK to become 000200000 2020-10-15 08:10:38 +02:00
sparsemem.h parisc: Switch from DISCONTIGMEM to SPARSEMEM 2019-05-03 23:47:40 +02:00
special_insns.h parisc: Check region is readable by user in raw_copy_from_user() 2025-07-25 22:45:23 +02:00
spinlock.h parisc: Fix lightweight spinlock checks to not break futexes 2023-08-10 17:32:09 +02:00
spinlock_types.h parisc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-05-04 20:46:27 +02:00
string.h Revert "parisc: Add assembly implementations for memset, strlen, strcpy, strncpy and strcat" 2021-08-29 10:13:32 -07:00
superio.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 syscall.h: introduce syscall_set_nr() 2025-05-11 17:48:15 -07:00
text-patching.h asm-generic: introduce text-patching.h 2024-11-07 14:25:15 -08:00
thread_info.h parisc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-05-04 20:46:27 +02:00
timex.h parisc: define get_cycles macro for arch-override 2022-05-13 23:59:23 +02:00
tlb.h parisc: mm: enable MMU_GATHER_RCU_TABLE_FREE 2026-02-06 15:47:18 -08:00
tlbflush.h parisc: Add vDSO support 2022-03-11 19:49:30 +01:00
topology.h parisc: Switch from GENERIC_CPU_DEVICES to GENERIC_ARCH_TOPOLOGY 2022-03-29 21:37:12 +02:00
traps.h parisc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-05-04 20:46:27 +02:00
uaccess.h parisc: Revise __get_user() to probe user read access 2025-07-25 22:45:24 +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 parisc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-05-04 20:46:27 +02:00
unwind.h parisc: Consolidate unwind initialization calls 2018-08-17 17:00:08 +02:00
vdso.h parisc: Fix 64-bit kernel build when CONFIG_COMPAT=n 2026-05-01 19:09:30 +02:00
video.h Fix access to video_is_primary_device() when compiled without CONFIG_VIDEO 2025-09-10 09:35:33 -05: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