Unverified Commit a3788a37 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!1665 arm64: Add framework to turn an IPI as NMI

Merge Pull Request from: @ci-robot 
 
PR sync from: Ruan Jinjie <ruanjinjie@huawei.com>
https://mailweb.openeuler.org/hyperkitty/list/kernel@openeuler.org/message/EHN6ENC7DMIVST6HGFD53IQMXC7J6VJF/ 
arm64: Add framework to turn an IPI as NMI

Sumit Garg (7):
  arm64: Add framework to turn IPI as NMI
  irqchip/gic-v3: Enable support for SGIs to act as NMIs
  arm64: smp: Assign and setup an IPI as NMI
  nmi: backtrace: Allow runtime arch specific override
  arm64: ipi_nmi: Add support for NMI backtrace
  kgdb: Expose default CPUs roundup fallback mechanism
  arm64: kgdb: Roundup cpus using IPI as NMI

Xiongfeng Wang (1):
  arm64: ipi_nmi: fix compile error when CONFIG_KGDB is disabled


-- 
2.34.1
 
https://gitee.com/openeuler/kernel/issues/I7R4EN 
 
Link:https://gitee.com/openeuler/kernel/pulls/1665

 

Reviewed-by: default avatarWei Li <liwei391@huawei.com>
Reviewed-by: default avatarXiongfeng Wang <wangxiongfeng2@huawei.com>
Signed-off-by: default avatarWei Li <liwei391@huawei.com>
parents 77dc26d1 6e585827
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@ void init_IRQ(void);
#ifdef CONFIG_SMP
#include <linux/cpumask.h>

extern void arch_trigger_cpumask_backtrace(const cpumask_t *mask,
extern bool arch_trigger_cpumask_backtrace(const cpumask_t *mask,
					   bool exclude_self);
#define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace
#endif
+2 −1
Original line number Diff line number Diff line
@@ -850,7 +850,8 @@ static void raise_nmi(cpumask_t *mask)
	__ipi_send_mask(ipi_desc[IPI_CPU_BACKTRACE], mask);
}

void arch_trigger_cpumask_backtrace(const cpumask_t *mask, bool exclude_self)
bool arch_trigger_cpumask_backtrace(const cpumask_t *mask, bool exclude_self)
{
	nmi_trigger_cpumask_backtrace(mask, exclude_self, raise_nmi);
	return true;
}
+6 −0
Original line number Diff line number Diff line
@@ -6,6 +6,12 @@

#include <asm-generic/irq.h>

#ifdef CONFIG_SMP
extern bool arch_trigger_cpumask_backtrace(const cpumask_t *mask,
					   bool exclude_self);
#define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace
#endif

struct pt_regs;

int set_handle_irq(void (*handle_irq)(struct pt_regs *));
+17 −0
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __ASM_NMI_H
#define __ASM_NMI_H

#ifndef __ASSEMBLER__

#include <linux/cpumask.h>

extern bool arm64_supports_nmi(void);
extern void arm64_send_nmi(cpumask_t *mask);

void set_smp_dynamic_ipi(int ipi);
void dynamic_ipi_setup(int cpu);
void dynamic_ipi_teardown(int cpu);

#endif /* !__ASSEMBLER__ */
#endif
+1 −1
Original line number Diff line number Diff line
@@ -34,7 +34,7 @@ obj-y := debug-monitors.o entry.o irq.o fpsimd.o \
			   cpufeature.o alternative.o cacheinfo.o		\
			   smp.o smp_spin_table.o topology.o smccc-call.o	\
			   syscall.o proton-pack.o idreg-override.o idle.o	\
			   patching.o
			   patching.o ipi_nmi.o

obj-$(CONFIG_COMPAT)			+= sys32.o signal32.o			\
					   sys_compat.o
Loading