linux-stable/arch/powerpc/include/asm
Douglas Anderson 8d539b84f1 nmi_backtrace: allow excluding an arbitrary CPU
The APIs that allow backtracing across CPUs have always had a way to
exclude the current CPU.  This convenience means callers didn't need to
find a place to allocate a CPU mask just to handle the common case.

Let's extend the API to take a CPU ID to exclude instead of just a
boolean.  This isn't any more complex for the API to handle and allows the
hardlockup detector to exclude a different CPU (the one it already did a
trace for) without needing to find space for a CPU mask.

Arguably, this new API also encourages safer behavior.  Specifically if
the caller wants to avoid tracing the current CPU (maybe because they
already traced the current CPU) this makes it more obvious to the caller
that they need to make sure that the current CPU ID can't change.

[akpm@linux-foundation.org: fix trigger_allbutcpu_cpu_backtrace() stub]
Link: https://lkml.kernel.org/r/20230804065935.v4.1.Ia35521b91fc781368945161d7b28538f9996c182@changeid
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: kernel test robot <lkp@intel.com>
Cc: Lecopzer Chen <lecopzer.chen@mediatek.com>
Cc: Petr Mladek <pmladek@suse.com>
Cc: Pingfan Liu <kernelfans@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2023-08-18 10:19:00 -07:00
..
book3s powerpc/mm/book3s64/hash/4k: Add pmd_same callback for 4K page size 2023-07-10 09:47:47 +10:00
nohash mm: remove __HAVE_ARCH_PTE_SWP_EXCLUSIVE 2023-02-02 22:33:11 -08:00
vdso powerpc/64s: Make POWER10 and later use pause_short in cpu_relax loops 2022-09-28 19:22:10 +10:00
8xx_immap.h
Kbuild char/agp: introduce asm-generic/agp.h 2023-02-13 22:13:29 +01:00
accounting.h
archrandom.h Bitmap patches for v6.0-rc1 2022-08-07 17:52:35 -07:00
asm-compat.h powerpc/vdso: augment VDSO32 functions to support 64 bits build 2022-02-12 22:47:43 +11:00
asm-const.h
asm-offsets.h
asm-prototypes.h powerpc/64s: early boot machine check handler 2022-09-28 19:22:13 +10:00
asm.h objtool/powerpc: Enable objtool to be built on ppc 2022-11-18 19:00:16 +11:00
async_tx.h
atomic.h locking/atomic: make atomic*_{cmp,}xchg optional 2023-06-05 09:57:14 +02:00
backlight.h
barrier.h powerpc/kcsan: Memory barriers semantics 2023-02-10 22:19:56 +11:00
bitops.h powerpc: Don't hide eh field of lwarx behind a macro 2022-08-10 15:32:02 +10:00
bootx.h
bpf_perf_event.h powerpc/bpf: Fix use of user_pt_regs in uapi 2022-06-29 20:43:04 +10:00
btext.h
bug.h Revert "powerpc/bug: Provide better flexibility to WARN_ON/__WARN_FLAGS() with asm goto" 2023-07-17 10:35:28 +10:00
cache.h powerpc: move the ARCH_DMA_MINALIGN definition to asm/cache.h 2023-06-19 16:19:24 -07:00
cacheflush.h
cell-pmu.h
cell-regs.h
checksum.h powerpc: Use rol32() instead of opencoding in csum_fold() 2022-05-08 22:15:40 +10:00
clocksource.h
cmpxchg.h locking/arch: Rename all internal __xchg() names to __arch_xchg() 2023-04-29 09:08:44 +02:00
code-patching-asm.h
code-patching.h powerpc/code-patching: Remove protection against patching init addresses after init 2022-12-02 21:59:57 +11:00
compat.h asm-generic: compat: Cleanup duplicate definitions 2022-04-26 13:35:54 -07:00
context_tracking.h context_tracking: Split user tracking Kconfig 2022-06-29 17:04:09 -07:00
copro.h
cpm.h
cpm1.h
cpm2.h
cpu_has_feature.h
cpu_setup.h powerpc/cputable: Move __cpu_setup() prototypes out of cputable.h 2022-09-26 22:26:49 +10:00
cpufeature.h powerpc: Move Power10 feature PPC_MODULE_FEATURE_P10 2023-04-20 18:20:05 +08:00
cpuidle.h
cputable.h powerpc/dexcr: Add initial Dynamic Execution Control Register (DEXCR) support 2023-06-19 17:36:25 +10:00
cputhreads.h
cputime.h powerpc: remove the last remnants of cputime_t 2022-11-24 23:31:48 +11:00
crashdump-ppc64.h
current.h
dbdma.h
dbell.h
dcr-generic.h
dcr-mmio.h
dcr-native.h
dcr-regs.h
dcr.h
debug.h powerpc: Allow clearing and restoring registers independent of saved breakpoint state 2022-11-30 21:46:48 +11:00
delay.h
device.h powerpc/papr_scm: Add perf interface support 2022-03-09 17:50:50 -08:00
disassemble.h
dma-direct.h
dma.h PCI: Move isa_dma_bridge_buggy out of asm/dma.h 2022-07-22 17:24:47 -05:00
drmem.h powerpc: Add missing declaration in asm/drmem.h 2022-05-06 00:00:21 +10:00
dt_cpu_ftrs.h
dtl.h powerpc/pseries: Move dtl scanning and steal time accounting to pseries platform 2022-09-05 14:14:27 +10:00
edac.h
eeh.h powerpc/eeh: Remove unused inline functions 2022-05-04 21:44:02 +10:00
eeh_event.h
ehv_pic.h
elf.h Revert "powerpc/64s: Remove support for ELFv1 little endian userspace" 2023-07-19 21:28:35 +10:00
elfnote.h
emergency-restart.h
emulated_ops.h
epapr_hcalls.h powerpc/epapr: Fix parmeters typo 2022-02-03 21:35:56 +11:00
exception-64e.h
exception-64s.h
exec.h
extable.h
fadump-internal.h powerpc/fadump: save CPU reg data in vmcore when PHYP terminates LPAR 2022-04-26 22:36:57 +10:00
fadump.h
fb.h arch/powerpc: Implement <asm/fb.h> with generic helpers 2023-04-20 10:05:05 +02:00
feature-fixups.h
firmware.h powerpc/pseries: Add FW_FEATURE_PLPKS feature flag 2023-04-20 13:21:46 +10:00
fixmap.h powerpc/fixmap: Fix VM debug warning on unmap 2022-01-24 17:29:05 +11:00
floppy.h
fs_pd.h
fsl_gtm.h
fsl_hcalls.h
fsl_lbc.h
fsl_pamu_stash.h
fsl_pm.h
ftrace.h powerpc updates for 6.2 2022-12-19 07:13:33 -06:00
futex.h
grackle.h
hardirq.h
head-64.h
heathrow.h
highmem.h
hmi.h
hugetlb.h powerpc: Remove CONFIG_PPC_FSL_BOOK3E 2022-09-26 23:00:13 +10:00
hvcall.h powerpc/pseries: Implement signed update for PLPKS objects 2023-02-12 22:12:38 +11:00
hvconsole.h
hvcserver.h
hvsi.h
hw_breakpoint.h
hw_irq.h Merge branch 'fixes' into next 2023-02-12 22:11:56 +11:00
hydra.h
i8259.h
ibmebus.h
icswx.h
ide.h
idle.h powerpc/pseries: Always inline functions called from cpuidle 2023-04-20 13:21:49 +10:00
imc-pmu.h powerpc/imc-pmu: Fix use of mutex in IRQs disabled section 2023-01-11 18:29:09 +11:00
immap_cpm2.h
inst.h powerpc/64: Drop ppc_inst_as_str() 2022-06-29 19:37:07 +10:00
interrupt.h powerpc: Consolidate 32-bit and 64-bit interrupt_enter_prepare 2023-02-10 22:17:35 +11:00
io-defs.h
io-workarounds.h
io.h powerpc/64: Add support to build with prefixed instructions 2023-04-20 12:54:22 +10:00
io_event_irq.h
iommu.h powerpc/iommu: Remove iommu_del_device() 2023-05-17 00:51:06 +10:00
ipic.h
irq.h nmi_backtrace: allow excluding an arbitrary CPU 2023-08-18 10:19:00 -07:00
irq_work.h
irqflags.h powerpc/64: Remove asm interrupt tracing call helpers 2022-12-02 17:54:07 +11:00
isa-bridge.h
jump_label.h
kasan.h kasan, powerpc: don't rename memintrinsics if compiler adds prefixes 2023-03-23 17:18:33 -07:00
kdebug.h
kdump.h
kexec.h powerpc: Remove CONFIG_FSL_BOOKE 2022-09-26 22:47:37 +10:00
kexec_ranges.h powerpc/64s: Fix build failure when CONFIG_PPC_64S_HASH_MMU is not set 2022-03-05 20:42:21 +11:00
keylargo.h
kfence.h powerpc/64s: Enable KFENCE on book3s64 2022-09-28 19:22:10 +10:00
kgdb.h powerpc: Change CONFIG_E500 to CONFIG_PPC_E500 2022-09-26 23:00:13 +10:00
kprobes.h powerpc/probes: Remove ppc_opcode_t 2022-07-27 21:36:05 +10:00
kup.h powerpc/kuap: Remove unused inline function __kuap_assert_locked() 2022-05-04 19:37:46 +10:00
kvm_asm.h
kvm_book3s.h KVM: PPC: Book3s HV: Remove unused function kvmppc_bad_interrupt 2022-07-20 22:28:12 +10:00
kvm_book3s_32.h
kvm_book3s_64.h KVM: Rename mmu_notifier_* to mmu_invalidate_* 2022-08-19 04:05:41 -04:00
kvm_book3s_asm.h powerpc/kvm: Remove unused references for MMCR3/SIER2/SIER3 registers 2022-11-24 23:31:47 +11:00
kvm_book3s_uvmem.h
kvm_booke.h
kvm_booke_hv_asm.h
kvm_fpu.h
kvm_guest.h
kvm_host.h KVM: PPC: Fetch prefixed instructions from the guest 2023-04-03 15:45:50 +10:00
kvm_para.h
kvm_ppc.h powerpc: Mark writes registering ipi to host cpu through kvm and polling 2023-06-21 15:13:57 +10:00
libata-portmap.h
linkage.h powerpc: Override __ALIGN and __ALIGN_STR macros 2022-11-15 20:11:47 +11:00
livepatch.h livepatch: Remove klp_arch_set_pc() and asm/livepatch.h 2022-05-24 08:46:37 +02:00
local.h locking/arch: Wire up local_try_cmpxchg() 2023-04-29 09:09:16 +02:00
lppaca.h powerpc/pseries: Add wait interval counter definitions to struct lppaca 2022-09-04 22:39:59 +10:00
lv1call.h
machdep.h powerpc/machdep: Define 'compatible' property in ppc_md and use it 2023-03-15 00:52:10 +11:00
macio.h
mc146818rtc.h
mce.h powerpc/mce: Avoid using irq_work_queue() in realmode 2022-03-08 00:05:00 +11:00
mediabay.h
mem_encrypt.h
membarrier.h
mman.h powerpc: Include asm/firmware.h in all users of firmware_has_feature() 2022-06-29 16:45:05 +10:00
mmiowb.h
mmu.h powerpc: Ignore DSI error caused by the copy/paste instruction 2022-09-28 22:52:32 +10:00
mmu_context.h cxl: Use radix__flush_all_mm instead of generic flush_all_mm 2022-11-30 21:46:48 +11:00
mmzone.h
module.h powerpc/64: modules support building with PCREL addresing 2023-04-20 13:21:42 +10:00
module.lds.h
mpc5xxx.h powerpc/mpc5xxx: Switch mpc5xxx_get_bus_frequency() to use fwnode 2022-06-22 12:51:49 +10:00
mpc6xx.h
mpc52xx.h powerpc: Drop MPC5200 LocalPlus bus FIFO driver 2023-05-15 23:25:56 +10:00
mpc52xx_psc.h
mpc85xx.h
mpc5121.h
mpc8260.h powerpc: drop MPC8272-ADS and PowerQUICC II FADS shared code. 2023-04-20 13:21:48 +10:00
mpic.h
mpic_msgr.h
mpic_timer.h
msi_bitmap.h
nmi.h powerpc: move arch_trigger_cpumask_backtrace from nmi.h to irq.h 2023-06-23 17:04:04 -07:00
nvram.h
ohare.h
opal-api.h
opal.h powerpc/powernv/pci: Remove MVE code 2023-06-21 15:13:57 +10:00
paca.h powerpc: powernv: Fix KCSAN datarace warnings on idle_state contention 2023-06-21 15:13:57 +10:00
page.h mm, arch: add generic implementation of pfn_valid() for FLATMEM 2023-02-09 16:51:41 -08:00
page_32.h powerpc: move the ARCH_DMA_MINALIGN definition to asm/cache.h 2023-06-19 16:19:24 -07:00
page_64.h
papr-sysparm.h powerpc/pseries: PAPR system parameter API 2023-02-13 22:35:03 +11:00
paravirt.h powerpc/pseries: Implement CONFIG_PARAVIRT_TIME_ACCOUNTING 2022-09-05 14:14:02 +10:00
paravirt_api_clock.h powerpc/pseries: Implement CONFIG_PARAVIRT_TIME_ACCOUNTING 2022-09-05 14:14:02 +10:00
parport.h powerpc: Don't include asm/prom.h in asm/parport.h 2022-05-06 00:00:20 +10:00
pasemi_dma.h
pci-bridge.h powerpc/iommu: Add iommu_ops to report capabilities and allow blocking domains 2023-03-15 00:51:46 +11:00
pci.h powerpc updates for 6.0 2022-08-06 16:38:17 -07:00
percpu.h
perf_event.h
perf_event_fsl_emb.h
perf_event_server.h
pgalloc.h
pgtable-be-types.h powerpc: Rely on generic definition of hugepd_t and is_hugepd when unused 2022-09-26 20:58:18 +10:00
pgtable-types.h powerpc: Rely on generic definition of hugepd_t and is_hugepd when unused 2022-09-26 20:58:18 +10:00
pgtable.h procfs: consolidate arch_report_meminfo declaration 2023-05-17 09:24:49 +02:00
pkeys.h
plpar_wrappers.h powerpc/irq: Replace #ifdefs by IS_ENABLED() 2022-06-29 16:57:09 +10:00
plpks.h powerpc/pseries: Pass PLPKS password on kexec 2023-02-12 22:12:39 +11:00
pmac_feature.h powerpc/machdep: Move sys_ctrler_t definition into pmac_feature.h 2022-02-07 21:02:20 +11:00
pmac_low_i2c.h
pmac_pfunc.h
pmc.h
pmi.h
pnv-ocxl.h
pnv-pci.h powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
powernv.h
ppc-opcode.h powerpc/dexcr: Handle hashchk exception 2023-06-19 17:36:26 +10:00
ppc-pci.h powerpc/fsl_uli1575: Mark uli_exclude_device() as static 2023-04-20 10:20:50 +10:00
ppc4xx.h
ppc_asm.h powerpc: merge 32-bit and 64-bit _switch implementation 2023-06-15 14:03:55 +10:00
probes.h powerpc/ppc-opcode: Define and use PPC_RAW_TRAP() and PPC_RAW_TW() 2022-07-27 21:36:05 +10:00
processor.h powerpc/dexcr: Support userspace ROP protection 2023-06-19 17:36:26 +10:00
prom.h powerpc: export the CPU node count 2022-12-07 20:14:49 +11:00
ps3.h driver core: fixup for "driver core: make struct bus_type.uevent() take a const *" 2023-01-30 17:02:03 +01:00
ps3av.h powerpc/ps3: remove orphan declarations from ps3av.h 2022-09-15 22:55:46 +10:00
ps3gpu.h
ps3stor.h
pte-walk.h powerpc: Remove find_current_mm_pte() 2022-11-24 23:12:18 +11:00
ptrace.h powerpc: Mark [h]ssr_valid accesses in check_return_regs_valid 2023-06-21 15:13:57 +10:00
qspinlock.h powerpc/qspinlock: add compile-time tuning adjustments 2022-12-02 17:48:50 +11:00
qspinlock_types.h powerpc/qspinlock: provide accounting and options for sleepy locks 2022-12-02 17:48:50 +11:00
reg.h powerpc/dexcr: Add initial Dynamic Execution Control Register (DEXCR) support 2023-06-19 17:36:25 +10:00
reg_8xx.h
reg_a2.h
reg_booke.h powerpc: Change CONFIG_E500 to CONFIG_PPC_E500 2022-09-26 23:00:13 +10:00
reg_fsl_emb.h
rheap.h
rio.h
rtas-types.h powerpc/rtas: ensure 8-byte alignment for struct rtas_args 2023-03-30 23:36:34 +11:00
rtas-work-area.h powerpc/pseries: add RTAS work area allocator 2023-02-13 22:35:02 +11:00
rtas.h powerpc/rtas: introduce rtas_function_token() API 2023-02-13 22:35:03 +11:00
runlatch.h powerpc/64s: Fix irq state management in runlatch functions 2022-09-28 19:22:11 +10:00
seccomp.h
sections.h powerpc/64: vmlinux support building with PCREL addresing 2023-04-20 12:59:21 +10:00
secure_boot.h
security_features.h
secvar.h powerpc/secvar: Allow backend to populate static list of variable names 2023-02-12 22:12:37 +11:00
serial.h
set_memory.h powerpc: Add set_memory_{p/np}() and remove set_memory_attr() 2022-02-12 22:47:42 +11:00
setjmp.h
setup.h powerpc: Add hardware description string 2022-09-30 18:35:52 +10:00
sfp-machine.h
shmparam.h
signal.h powerpc/signal: Report minimum signal frame size to userspace via AT_MINSIGSTKSZ 2022-05-19 23:11:26 +10:00
simple_spinlock.h powerpc/kcsan: Properly instrument arch_spin_unlock() 2023-06-09 23:29:51 +10:00
simple_spinlock_types.h
smp.h powerpc/cpu: Mark start_secondary_resume() __noreturn 2023-03-08 08:44:24 -08:00
smu.h
sparsemem.h
spinlock.h powerpc/qspinlock: powerpc qspinlock implementation 2022-12-02 17:48:02 +11:00
spinlock_types.h powerpc/qspinlock: powerpc qspinlock implementation 2022-12-02 17:48:02 +11:00
spu.h powerpc: declare unmodified attribute_group usages const 2022-03-08 22:15:32 +11:00
spu_csa.h
spu_info.h
spu_priv1.h
sstep.h
stackprotector.h stackprotector: actually use get_random_canary() 2022-11-18 02:18:10 +01:00
stacktrace.h
static_call.h static_call: Properly initialise DEFINE_STATIC_CALL_RET0() 2022-04-05 09:59:38 +02:00
string.h kasan, powerpc: don't rename memintrinsics if compiler adds prefixes 2023-03-23 17:18:33 -07:00
svm.h powerpc updates for 5.19 2022-05-28 11:27:17 -07:00
swab.h
swiotlb.h swiotlb: add a SWIOTLB_ANY flag to lift the low memory restriction 2022-04-18 07:21:12 +02:00
switch_to.h powerpc: Fix missing declaration of [en/dis]able_kernel_altivec() 2022-05-04 19:37:46 +10:00
synch.h powerpc: Change CONFIG_E500 to CONFIG_PPC_E500 2022-09-26 23:00:13 +10:00
syscall.h powerpc: Provide syscall wrapper 2022-09-28 19:22:09 +10:00
syscall_wrapper.h powerpc: Don't add __powerpc_ prefix to syscall entry points 2022-10-07 00:59:54 +11:00
syscalls.h powerpc/32: fix syscall wrappers with 64-bit arguments 2022-11-01 10:24:09 +11:00
syscalls_32.h powerpc: Include all arch-specific syscall prototypes 2022-09-28 19:22:08 +10:00
task_size_32.h
task_size_64.h powerpc/mm: Use generic_get_unmapped_area() and call it from arch_get_unmapped_area() 2022-05-05 22:11:57 +10:00
tce.h
thread_info.h Revert "powerpc/64s: Remove support for ELFv1 little endian userspace" 2023-07-19 21:28:35 +10:00
time.h powerpc/pseries: Move dtl scanning and steal time accounting to pseries platform 2022-09-05 14:14:27 +10:00
timex.h powerpc: define get_cycles macro for arch-override 2022-05-13 23:59:23 +02:00
tlb.h mmu_gather: Remove per arch tlb_{start,end}_vma() 2022-07-21 10:50:13 -07:00
tlbflush.h
tm.h
topology.h powerpc/numa: Associate numa node to its cpu earlier 2022-05-22 15:58:30 +10:00
trace.h powerpc/tracing: tracepoints for RTAS entry and exit 2023-02-13 22:35:02 +11:00
trace_clock.h
tsi108.h
tsi108_irq.h
tsi108_pci.h
types.h powerpc: Finalise cleanup around ABI use 2022-05-19 23:11:29 +10:00
uaccess.h powerpc/64: Add support to build with prefixed instructions 2023-04-20 12:54:22 +10:00
udbg.h powerpc/udbg: Remove extern function prototypes 2022-09-28 19:22:14 +10:00
uic.h
ultravisor-api.h
ultravisor.h
uninorth.h
unistd.h powerpc: Use generic fallocate compatibility syscall 2022-09-26 23:00:15 +10:00
uprobes.h powerpc/probes: Remove ppc_opcode_t 2022-07-27 21:36:05 +10:00
user.h asm/user.h: killed unused macros 2022-01-30 21:17:00 -05:00
vas.h powerpc/powernv/vas: Assign real address to rx_fifo in vas_rx_win_attr 2022-05-22 15:58:27 +10:00
vdso.h powerpc/vdso: Don't map VDSO at a fixed address on PPC32 2022-08-22 13:36:59 +10:00
vdso_datapage.h
vermagic.h
vga.h
vio.h vio: move to_vio_dev() to use container_of_const() 2023-01-27 13:45:41 +01:00
vmalloc.h
word-at-a-time.h powerpc: Don't include asm/ppc_asm.h in other headers 2022-06-29 16:45:13 +10:00
xics.h powerpc/sysdev: remove unused xics_ipi_dispatch() declaration 2022-09-15 22:55:46 +10:00
xive-regs.h
xive.h
xmon.h
xor.h
xor_altivec.h lib/xor: make xor prototypes more friendly to compiler vectorization 2022-02-11 20:39:39 +11:00