linux-stable/arch/sparc/include/asm
Douglas Anderson 4d880fc4a2 nmi_backtrace: allow excluding an arbitrary CPU
[ Upstream commit 8d539b84f1 ]

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>
Stable-dep-of: 1f38c86bb2 ("watchdog/hardlockup: avoid large stack frames in watchdog_hardlockup_check()")
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-09-13 09:53:08 +02:00
..
adi.h
adi_64.h
apb.h
asm-offsets.h
asm-prototypes.h
asm.h
asmmacro.h
atomic.h
atomic_32.h locking/atomic: sparc: add preprocessor symbols 2023-06-05 09:57:17 +02:00
atomic_64.h locking/atomic: sparc: add preprocessor symbols 2023-06-05 09:57:17 +02:00
auxio.h
auxio_32.h
auxio_64.h
backoff.h
barrier.h
barrier_32.h
barrier_64.h
bbc.h
bitext.h
bitops.h
bitops_32.h bitops: wrap non-atomic bitops with a transparent macro 2022-06-30 19:52:41 -07:00
bitops_64.h include: move find.h from asm_generic to linux 2022-01-15 08:47:31 -08:00
btext.h
bug.h
cache.h treewide: Convert macro and uses of __section(foo) to __section("foo") 2020-10-25 14:51:49 -07:00
cacheflush.h
cacheflush_32.h sparc: cacheflush_32.h needs struct page 2022-04-23 09:27:17 -07:00
cacheflush_64.h
cachetlb_32.h
chafsr.h
checksum.h sparc64: propagate the calling convention changes down to __csum_partial_copy_...() 2020-08-20 15:45:21 -04:00
checksum_32.h sparc64: propagate the calling convention changes down to __csum_partial_copy_...() 2020-08-20 15:45:21 -04:00
checksum_64.h sparc64: propagate the calling convention changes down to __csum_partial_copy_...() 2020-08-20 15:45:21 -04:00
chmctrl.h
clock.h
clocksource.h
cmpxchg.h
cmpxchg_32.h sparc: mark __arch_xchg() as __always_inline 2023-07-13 09:54:32 -07:00
cmpxchg_64.h sparc: mark __arch_xchg() as __always_inline 2023-07-13 09:54:32 -07:00
compat.h asm-generic: compat: Cleanup duplicate definitions 2022-04-26 13:35:54 -07:00
compat_signal.h
contregs.h
cpu_type.h
cpudata.h
cpudata_32.h
cpudata_64.h
current.h
dcr.h
dcu.h
delay.h
delay_32.h
delay_64.h
device.h
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 PCI: Move isa_dma_bridge_buggy out of asm/dma.h 2022-07-22 17:24:47 -05:00
ebus_dma.h
ecc.h
eeprom.h
elf.h
elf_32.h
elf_64.h sparc32: switch to generic extables 2021-01-03 20:05:18 -05:00
estate.h
extable.h sparc32: switch to generic extables 2021-01-03 20:05:18 -05:00
fb.h fbdev: Rename fb_mem*() helpers 2023-05-18 11:07:54 +02:00
fbio.h
fhc.h
floppy.h
floppy_32.h
floppy_64.h
fpumacro.h
ftrace.h tracing: Fix various typos in comments 2021-03-23 14:08:18 -04:00
futex.h
futex_32.h
futex_64.h
hardirq.h
hardirq_32.h
hardirq_64.h
head.h
head_32.h
head_64.h
hibernate.h
highmem.h sparc/mm/highmem: flush cache and TLB 2021-01-24 10:34:52 -08:00
hugetlb.h mm: change huge_ptep_clear_flush() to return the original pte 2022-05-13 16:48:55 -07:00
hvtramp.h
hw_irq.h
hypervisor.h
ide.h mm: remove unneeded includes of <asm/pgalloc.h> 2020-08-07 11:33:26 -07:00
idprom.h
intr_queue.h
io-unit.h
io.h sparc: Fix the generic IO helpers 2022-09-08 16:49:14 +02:00
io_32.h sparc32: Move ioremap/iounmap declaration before asm-generic/io.h include 2020-10-05 09:44:41 +01:00
io_64.h sparc: Fix the generic IO helpers 2022-09-08 16:49:14 +02:00
ioctls.h
iommu-common.h
iommu.h
iommu_32.h
iommu_64.h
irq.h
irq_32.h init: consolidate prototypes in linux/init.h 2023-06-09 17:44:16 -07:00
irq_64.h nmi_backtrace: allow excluding an arbitrary CPU 2023-09-13 09:53:08 +02:00
irqflags.h
irqflags_32.h
irqflags_64.h
jump_label.h
Kbuild char/agp: introduce asm-generic/agp.h 2023-02-13 22:13:29 +01:00
kdebug.h
kdebug_32.h
kdebug_64.h
kgdb.h
kprobes.h kprobes: treewide: Make it harder to refer kretprobe_trampoline directly 2021-09-30 21:24:06 -04:00
ldc.h
leon.h
leon_amba.h
leon_pci.h
lsu.h
machines.h
mbus.h
mc146818rtc.h
mc146818rtc_32.h
mc146818rtc_64.h
mdesc.h
memctrl.h
mman.h sparc/mm: enable ARCH_HAS_VM_GET_PAGE_PROT 2022-04-28 23:16:13 -07:00
mmu.h
mmu_32.h
mmu_64.h
mmu_context.h
mmu_context_32.h sparc: use asm-generic/mmu_context.h for no-op implementations 2020-10-27 16:02:38 +01:00
mmu_context_64.h mm: Expose untagging mask in /proc/$PID/status 2023-03-16 13:08:40 -07:00
mmzone.h mm: replace CONFIG_NEED_MULTIPLE_NODES with CONFIG_NUMA 2021-06-29 10:53:55 -07:00
mxcc.h
nmi.h watchdog/hardlockup: declare arch_touch_nmi_watchdog() only in linux/nmi.h 2023-06-19 16:25:29 -07:00
ns87303.h
obio.h
openprom.h
oplib.h
oplib_32.h
oplib_64.h
page.h
page_32.h mm, arch: add generic implementation of pfn_valid() for FLATMEM 2023-02-09 16:51:41 -08:00
page_64.h
parport.h
pbm.h
pci.h Merge branch 'pci/header-cleanup-immutable' 2022-08-04 11:46:53 -05:00
pcic.h
pcr.h
percpu.h
percpu_32.h
percpu_64.h
perf_event.h
pgalloc.h
pgalloc_32.h mm/thp: define default pmd_pgtable() 2021-07-01 11:06:03 -07:00
pgalloc_64.h mm/thp: define default pmd_pgtable() 2021-07-01 11:06:03 -07:00
pgtable.h
pgtable_32.h mm: remove __HAVE_ARCH_PTE_SWP_EXCLUSIVE 2023-02-02 22:33:11 -08:00
pgtable_64.h sparc/mm: don't unconditionally set HW writable bit when setting PTE dirty on 64bit 2023-04-18 16:30:00 -07:00
pgtsrmmu.h sparc/mm: support __HAVE_ARCH_PTE_SWP_EXCLUSIVE on 32bit 2023-02-02 22:33:10 -08:00
pil.h
processor.h
processor_32.h kernel: exit: cleanup release_thread() 2022-09-11 21:55:07 -07:00
processor_64.h locking: remove spin_lock_prefetch 2023-08-12 09:18:47 -07:00
prom.h of: Make devtree_lock declaration private 2023-04-10 18:32:31 -05:00
psr.h
ptrace.h ptrace: Remove the unnecessary arguments from arch_ptrace_stop 2021-10-06 11:27:41 -05:00
qrwlock.h
qspinlock.h
ross.h
sbi.h
scratchpad.h
seccomp.h
sections.h
setup.h
sfafsr.h
sfp-machine.h
sfp-machine_32.h
sfp-machine_64.h
shmparam.h
shmparam_32.h
shmparam_64.h
sigcontext.h
signal.h sparc: remove SA_STATIC_ALLOC macro definition 2020-09-14 17:04:49 -07:00
smp.h
smp_32.h sparc: Unbreak the build 2022-09-29 19:21:10 -07:00
smp_64.h sparc/cpu: Mark cpu_play_dead() __noreturn 2023-03-08 08:44:25 -08:00
sparsemem.h sparc: drop unused MAX_PHYSADDR_BITS 2020-08-12 10:57:57 -07:00
spinlock.h
spinlock_32.h
spinlock_64.h locking/arch: Move qrwlock.h include after qspinlock.h 2021-02-11 07:59:54 -05:00
spinlock_types.h
spitfire.h
stacktrace.h
starfire.h
string.h
string_32.h
string_64.h
sunbpp.h
swift.h
switch_to.h
switch_to_32.h
switch_to_64.h sparc64: remove CONFIG_SET_FS support 2022-02-25 09:36:06 +01:00
syscall.h arch: remove unused function syscall_set_arguments() 2021-09-14 16:06:20 +02:00
syscalls.h
termbits.h
thread_info.h
thread_info_32.h sparc: add support for TIF_NOTIFY_SIGNAL 2020-12-12 09:17:38 -07:00
thread_info_64.h sparc64: remove CONFIG_SET_FS support 2022-02-25 09:36:06 +01:00
timer.h
timer_32.h
timer_64.h init: consolidate prototypes in linux/init.h 2023-06-09 17:44:16 -07:00
timex.h
timex_32.h sparc: use fallback for random_get_entropy() instead of zero 2022-05-13 23:59:23 +02:00
timex_64.h
tlb.h
tlb_32.h
tlb_64.h mmu_gather: Remove per arch tlb_{start,end}_vma() 2022-07-21 10:50:13 -07:00
tlbflush.h
tlbflush_32.h
tlbflush_64.h
topology.h
topology_32.h
topology_64.h
trap_block.h
traps.h
tsb.h
tsunami.h
ttable.h
turbosparc.h
uaccess.h uaccess: generalize access_ok() 2022-02-25 09:36:05 +01:00
uaccess_32.h uaccess: remove CONFIG_SET_FS 2022-02-25 09:36:06 +01:00
uaccess_64.h mm: Introduce untagged_addr_remote() 2023-03-16 13:08:39 -07:00
unistd.h fs: stat: compat: Add __ARCH_WANT_COMPAT_STAT 2022-04-26 13:35:45 -07:00
upa.h
uprobes.h
user.h
vaddrs.h sparc/mm/highmem: Switch to generic kmap atomic 2020-11-06 23:14:57 +01:00
vdso.h
vga.h
viking.h
vio.h vio: move to_vio_dev() to use container_of_const() 2023-01-27 13:45:41 +01:00
visasm.h
vmalloc.h
vvar.h
winmacro.h
xor.h
xor_32.h lib/xor: make xor prototypes more friendly to compiler vectorization 2022-02-11 20:39:39 +11:00
xor_64.h lib/xor: make xor prototypes more friendly to compiler vectorization 2022-02-11 20:39:39 +11:00