mirror-linux/arch/arm/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
..
hardware arm: make sa1111_bus_type const 2025-10-22 07:54:54 +02:00
mach ARM: 9298/1: Drop custom mdesc->handle_irq() 2023-06-19 09:35:48 +01:00
vdso ARM: vdso: gettimeofday: Add explicit includes 2026-03-11 15:12:27 +01:00
xen arm/xen: Introduce xen_setup_dma_ops() 2022-06-06 08:54:33 +02:00
Kbuild ring-buffer: Flush and stop persistent ring buffer on panic 2026-05-21 08:20:58 -04:00
arch_gicv3.h arm64: add ARM64_HAS_GIC_PRIO_RELAXED_SYNC cpucap 2023-01-31 16:06:17 +00:00
arch_timer.h clocksource/drivers/arm_arch_timer: Drop unnecessary ISB on CVAL programming 2021-10-17 21:47:44 +02:00
archrandom.h random: remove CONFIG_ARCH_RANDOM 2022-07-18 15:03:37 +02:00
arm-cci.h
arm_pmuv3.h arm64: cpufeature: Use pmuv3_implemented() function 2026-03-24 12:33:49 +00:00
asm-offsets.h
assembler.h ARM: 9358/2: Implement PAN for LPAE by TTBR0 page table walks disablement 2024-04-18 12:10:46 +01:00
atomic.h locking/atomic: arm: add preprocessor symbols 2023-06-05 09:57:15 +02:00
auxvec.h
bL_switcher.h
barrier.h
bitops.h arm: align find_bit declarations with generic kernel 2022-07-14 15:21:43 -07:00
bitrev.h
bug.h arm: print alloc free paths for address in registers 2021-05-07 00:26:34 -07:00
bugs.h ARM: cpu: Switch to arch_cpu_finalize_init() 2023-06-16 10:15:59 +02:00
cache.h ARM: 9433/2: implement cacheinfo support 2025-01-14 12:29:30 +00:00
cacheflush.h mm: remove page_mapping() 2024-07-03 19:29:59 -07:00
cachetype.h ARM: 9432/2: add CLIDR accessor functions 2025-01-14 12:29:27 +00:00
checksum.h net: checksum: drop the linux/uaccess.h include 2023-01-27 11:19:46 +00:00
clocksource.h
cmpxchg.h ARM: Emulate one-byte cmpxchg 2024-07-04 13:32:41 -07:00
compiler.h
cp15.h
cpu.h ARM: 9411/1: Switch over to GENERIC_CPU_DEVICES using arch_register_cpu() 2024-08-20 11:18:49 +01:00
cpufeature.h
cpuidle.h arm64 updates for 5.14 2021-06-28 14:04:24 -07:00
cputype.h ARM: 9267/1: Define Armv8 registers in AArch32 state 2022-11-28 11:57:31 +00:00
current.h ARM: remove Thumb2 __builtin_thread_pointer workaround for Clang 2024-02-22 15:38:54 -08:00
dcc.h
delay.h ARM: mm: Make virt_to_pfn() a static inline 2023-05-29 11:27:08 +02:00
device.h ARM/dma-mapping: remove the dma_coherent member of struct dev_archdata 2022-10-06 14:31:08 +02:00
div64.h __arch_xprod64(): make __always_inline when optimizing for performance 2024-10-28 21:44:28 +00:00
dma-iommu.h ARM: 9417/1: dma-mapping: Pass device to arm_iommu_create_mapping() 2024-09-04 15:02:07 +01:00
dma.h ARM: 9323/1: mm: Fix ARCH_LOW_ADDRESS_LIMIT when CONFIG_ZONE_DMA 2023-10-05 16:15:42 +01:00
dmi.h
domain.h ARM: 9326/1: make <linux/uaccess.h> self-contained for ARM 2023-10-05 16:17:05 +01:00
ecard.h ARM: riscpc: make ecard_bus_type constant 2025-01-10 15:42:06 +01:00
edac.h
efi.h efi/arm: Disable LPAE PAN when calling EFI runtime services 2024-06-15 10:25:02 +02:00
elf.h vdso/ARM: Make union vdso_data_store available for all architectures 2024-02-20 20:56:00 +01:00
exception.h ARM: 9320/1: fix stack depot IRQ stack filter 2023-10-05 16:15:40 +01:00
fiq.h
firmware.h
fixmap.h ARM updates for 5.11: 2020-12-22 13:34:27 -08:00
floppy.h floppy: Remove unused CROSS_64KB() macro from arch/ code 2025-08-25 14:46:42 -06:00
fncpy.h
fpstate.h ARM: 9228/1: vfp: kill vfp_flush/release_thread() 2022-08-31 14:50:08 +01:00
fpu.h ARM: implement ARCH_HAS_KERNEL_FPU_SUPPORT 2024-05-19 14:36:17 -07:00
ftrace.h ARM: 9304/1: add prototype for function called only from asm 2023-06-19 09:35:52 +01:00
futex.h
glue-cache.h ARM: 9387/2: mm: Rewrite cacheflush vtables in CFI safe C 2024-04-29 14:14:18 +01:00
glue-df.h
glue-pf.h
glue-proc.h
glue.h
hardirq.h ARM: irqstat: Get rid of duplicated declaration 2020-11-23 10:31:05 +01:00
highmem.h mm: constify highmem related functions for improved const-correctness 2025-09-21 14:22:15 -07:00
hugetlb-3level.h mm: provide mm_struct and address to huge_ptep_get() 2024-07-12 15:52:15 -07:00
hugetlb.h mm: introduce memdesc_flags_t 2025-09-13 16:55:07 -07:00
hw_breakpoint.h ARM: 9391/2: hw_breakpoint: Handle CFI breakpoints 2024-04-29 14:14:22 +01:00
hw_irq.h
hwcap.h
hypervisor.h firmware/smccc: Call arch-specific hook on discovering KVM services 2024-08-30 16:30:41 +01:00
idmap.h treewide: Convert macro and uses of __section(foo) to __section("foo") 2020-10-25 14:51:49 -07:00
insn.h ARM: 9176/1: avoid literal references in inline assembly 2022-01-06 12:58:58 +00:00
io.h mm/memremap: Pass down MEMREMAP_* flags to arch_memremap_wb() 2025-02-21 15:05:38 +01:00
irq.h nmi_backtrace: allow excluding an arbitrary CPU 2023-08-18 10:19:00 -07:00
irq_work.h arch: consolidate arch_irq_work_raise prototypes 2023-11-23 11:32:29 +01:00
irqflags.h
jump_label.h jump_label: adjust inline asm to be consistent 2024-11-04 16:21:45 -05:00
kasan.h ARM: 9016/2: Initialize the mapping of KASan shadow memory 2020-10-27 12:11:10 +00:00
kasan_def.h ARM: 9015/2: Define the virtual space of KASan's shadow region 2020-10-27 12:11:08 +00:00
kexec-internal.h ARM: kexec: fix oops after TLB are invalidated 2021-02-05 10:23:29 +00:00
kexec.h kernel/Kconfig.kexec: drop select of KEXEC for CRASH_DUMP 2023-12-06 16:12:48 -08:00
kfence.h ARM: 9166/1: Support KFENCE for ARM 2021-12-17 11:34:38 +00:00
kgdb.h
kprobes.h kprobes: unify kprobes_exceptions_nofify() prototypes 2023-11-10 19:59:05 +09:00
krait-l2-accessors.h
linkage.h
mc146818rtc.h
mcpm.h
mcs_spinlock.h
memblock.h
memory.h asm-generic: provide generic page_to_phys and phys_to_page implementations 2024-10-28 21:44:28 +00:00
mman.h ARM: prctl: reject PR_SET_MDWE on pre-ARMv6 2024-03-26 11:07:22 -07:00
mmu.h ARM: mm: make vmalloc_seq handling SMP safe 2022-01-25 09:53:52 +01:00
mmu_context.h ARM: mm: make vmalloc_seq handling SMP safe 2022-01-25 09:53:52 +01:00
module.h ARM: 9252/1: module: Teach unwinder about PLTs 2022-11-07 14:18:59 +00:00
module.lds.h kbuild: preprocess module linker script 2020-09-25 00:36:41 +09:00
mpu.h
mtd-xip.h
neon.h
nwflash.h
opcodes-sec.h
opcodes-virt.h
opcodes.h ARM: 9145/1: patch: fix BE32 compilation 2021-10-25 13:12:36 +01:00
outercache.h
page-nommu.h treewide: provide a generic clear_user_page() variant 2026-01-20 19:24:39 -08:00
page.h mm: convert do_brk_flags() to use vma_flags_t 2026-04-05 13:53:40 -07:00
pci.h PCI: Remove pci_get_legacy_ide_irq() and asm-generic/pci.h 2022-07-22 17:23:45 -05:00
percpu.h ARM: make get_current() and __my_cpu_offset() __always_inline 2022-01-31 16:06:35 +01:00
perf_event.h perf/arm: Drop unused functions 2024-11-14 10:40:00 +01:00
pgalloc.h mm/thp: define default pmd_pgtable() 2021-07-01 11:06:03 -07:00
pgtable-2level-hwdef.h
pgtable-2level-types.h
pgtable-2level.h mm/arm: remove pmd_thp_or_huge() 2024-04-25 20:55:47 -07:00
pgtable-3level-hwdef.h ARM: 9409/1: mmu: Do not use magic number for TTBCR settings 2024-08-20 11:18:44 +01:00
pgtable-3level-types.h
pgtable-3level.h arch: remove mk_pmd() 2025-05-11 17:48:04 -07:00
pgtable-hwdef.h
pgtable-nommu.h MM patches for 6.2-rc1. 2022-12-13 19:29:45 -08:00
pgtable.h arch, mm: consolidate empty_zero_page 2026-04-05 13:53:01 -07:00
probes.h
proc-fns.h ARM: 9398/1: Fix userspace enter on LPAE with CC_OPTIMIZE_FOR_SIZE=y 2024-05-15 21:41:08 +01:00
processor.h ARM: uapi: Drop PSR_ENDSTATE 2026-01-30 16:46:17 +01:00
procinfo.h
prom.h ARM: 9011/1: centralize phys-to-virt conversion of DT/ATAGS address 2020-10-27 12:10:59 +00:00
psci.h
ptdump.h arm: ptdump: rename CONFIG_DEBUG_WX to CONFIG_ARM_DEBUG_WX 2024-02-22 10:24:47 -08:00
ptrace.h ARM: 9358/2: Implement PAN for LPAE by TTBR0 page table walks disablement 2024-04-18 12:10:46 +01:00
seccomp.h arm: Enable seccomp architecture tracking 2020-11-20 11:16:34 -08:00
sections.h
secure_cntvoff.h
semihost.h serial: earlycon-arm-semihost: Move smh_putc() variants in respective arch's semihost.h 2023-01-19 14:58:19 +01:00
set_memory.h ARM: 9164/1: mm: Provide set_memory_valid() 2021-12-17 11:34:36 +00:00
setup.h vgacon: clean up global screen_info instances 2023-10-17 10:17:02 +02:00
shmparam.h
signal.h ARM: 9304/1: add prototype for function called only from asm 2023-06-19 09:35:52 +01:00
simd.h ARM/simd: Add scoped guard API for kernel mode SIMD 2025-11-12 09:22:39 +01:00
smp.h ARM: smp: Switch to hotplug core state synchronization 2023-05-15 13:44:57 +02:00
smp_plat.h
smp_scu.h
smp_twd.h
sparsemem.h ARM: mm: Make virt_to_pfn() a static inline 2023-05-29 11:27:08 +02:00
spectre.h ARM: 9304/1: add prototype for function called only from asm 2023-06-19 09:35:52 +01:00
spinlock.h locking: Fix typos in comments 2021-03-22 02:45:52 +01:00
spinlock_types.h Improve consistency of '#error' directive messages 2024-11-11 17:17:04 -08:00
stackprotector.h stackprotector: actually use get_random_canary() 2022-11-18 02:18:10 +01:00
stacktrace.h ARM: stacktrace: include asm/sections.h in asm/stacktrace.h 2025-08-25 06:12:06 -07:00
string.h ARM: clean up the memset64() C wrapper 2026-02-13 11:15:05 -08:00
suspend.h ARM: 9304/1: add prototype for function called only from asm 2023-06-19 09:35:52 +01:00
swab.h
switch_to.h ARM development updates for 5.18: 2022-03-23 17:35:57 -07:00
sync_bitops.h locking/atomic: arm: fix sync ops 2023-06-05 09:57:13 +02:00
syscall.h syscall.h: Remove unused SYSCALL_MAX_ARGS 2026-01-05 16:47:48 +00:00
syscalls.h ARM: 9309/1: add missing syscall prototypes 2023-06-19 09:35:55 +01:00
system_info.h
system_misc.h ARM: 9096/1: Remove arm_pm_restart() 2021-06-13 18:16:48 +01:00
tcm.h ARM: 9314/1: tcm: move tcm_init() prototype to asm/tcm.h 2023-06-19 09:35:59 +01:00
text-patching.h asm-generic: introduce text-patching.h 2024-11-07 14:25:15 -08:00
therm.h
thread_info.h ARM: iwmmxt: Use undef hook to enable coprocessor for task 2023-05-17 15:08:22 +02:00
thread_notify.h
timex.h arm: use fallback for random_get_entropy() instead of zero 2022-05-13 23:59:23 +02:00
tlb.h mm: pgtable: completely move pagetable_dtor() to generic tlb_remove_table() 2025-01-25 20:22:23 -08:00
tlbflush.h arm: implement the new page table range API 2023-08-24 16:20:20 -07:00
tls.h ARM: smp: elide HWCAP_TLS checks or __entry_task updates on SMP+v6 2022-01-25 09:53:52 +01:00
topology.h sched/cpufreq: Rename arch_update_thermal_pressure() => arch_update_hw_pressure() 2024-04-24 12:08:01 +02:00
traps.h ARM: 9326/1: make <linux/uaccess.h> self-contained for ARM 2023-10-05 16:17:05 +01:00
uaccess-asm.h ARM: 9358/2: Implement PAN for LPAE by TTBR0 page table walks disablement 2024-04-18 12:10:46 +01:00
uaccess.h ARM: uaccess: Implement missing __get_user_asm_dword() 2025-11-03 15:26:09 +01:00
ucontext.h ARM: ep93xx: remove MaverickCrunch support 2021-08-04 13:30:04 +02:00
unified.h ARM: 9116/1: unified: Remove check for gcc < 4 2021-08-20 11:39:28 +01:00
unistd.h clone3: drop __ARCH_WANT_SYS_CLONE3 macro 2024-07-10 14:23:38 +02:00
unwind.h ARM: 9304/1: add prototype for function called only from asm 2023-06-19 09:35:52 +01:00
uprobes.h
user.h asm/user.h: killed unused macros 2022-01-30 21:17:00 -05:00
v7m.h irqchip: nvic: Use GENERIC_IRQ_MULTI_HANDLER 2021-12-06 12:49:16 +01:00
vdso.h arm: vdso: Switch to generic storage implementation 2025-02-21 09:54:02 +01:00
vermagic.h
vfp.h ARM: 9438/1: assembler: Drop obsolete VFP accessor fallback 2025-01-14 12:29:25 +00:00
vfpmacros.h ARM: 9438/1: assembler: Drop obsolete VFP accessor fallback 2025-01-14 12:29:25 +00:00
vga.h console: fix up ARM screen_info reference 2023-10-17 16:34:02 +02:00
virt.h
vmalloc.h
vmlinux.lds.h ARM: 9444/1: add KEEP() keyword to ARM_VECTORS 2025-03-26 13:31:48 +00:00
word-at-a-time.h ARM: 9464/1: fix input-only operand modification in load_unaligned_zeropad() 2025-12-09 09:18:53 +00:00