提交 9ef7fa50 编写于 作者: D Douglas Anderson 提交者: Daniel Thompson

kgdb: Remove irq flags from roundup

The function kgdb_roundup_cpus() was passed a parameter that was
documented as:

> the flags that will be used when restoring the interrupts. There is
> local_irq_save() call before kgdb_roundup_cpus().

Nobody used those flags.  Anyone who wanted to temporarily turn on
interrupts just did local_irq_enable() and local_irq_disable() without
looking at them.  So we can definitely remove the flags.
Signed-off-by: NDouglas Anderson <dianders@chromium.org>
Cc: Vineet Gupta <vgupta@synopsys.com>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Richard Kuo <rkuo@codeaurora.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Paul Burton <paul.burton@mips.com>
Cc: James Hogan <jhogan@kernel.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
Cc: Rich Felker <dalias@libc.org>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Acked-by: NWill Deacon <will.deacon@arm.com>
Signed-off-by: NDaniel Thompson <daniel.thompson@linaro.org>
上级 25956467
...@@ -197,7 +197,7 @@ static void kgdb_call_nmi_hook(void *ignored) ...@@ -197,7 +197,7 @@ static void kgdb_call_nmi_hook(void *ignored)
kgdb_nmicallback(raw_smp_processor_id(), NULL); kgdb_nmicallback(raw_smp_processor_id(), NULL);
} }
void kgdb_roundup_cpus(unsigned long flags) void kgdb_roundup_cpus(void)
{ {
local_irq_enable(); local_irq_enable();
smp_call_function(kgdb_call_nmi_hook, NULL, 0); smp_call_function(kgdb_call_nmi_hook, NULL, 0);
......
...@@ -175,7 +175,7 @@ static void kgdb_call_nmi_hook(void *ignored) ...@@ -175,7 +175,7 @@ static void kgdb_call_nmi_hook(void *ignored)
kgdb_nmicallback(raw_smp_processor_id(), get_irq_regs()); kgdb_nmicallback(raw_smp_processor_id(), get_irq_regs());
} }
void kgdb_roundup_cpus(unsigned long flags) void kgdb_roundup_cpus(void)
{ {
local_irq_enable(); local_irq_enable();
smp_call_function(kgdb_call_nmi_hook, NULL, 0); smp_call_function(kgdb_call_nmi_hook, NULL, 0);
......
...@@ -289,7 +289,7 @@ static void kgdb_call_nmi_hook(void *ignored) ...@@ -289,7 +289,7 @@ static void kgdb_call_nmi_hook(void *ignored)
kgdb_nmicallback(raw_smp_processor_id(), get_irq_regs()); kgdb_nmicallback(raw_smp_processor_id(), get_irq_regs());
} }
void kgdb_roundup_cpus(unsigned long flags) void kgdb_roundup_cpus(void)
{ {
local_irq_enable(); local_irq_enable();
smp_call_function(kgdb_call_nmi_hook, NULL, 0); smp_call_function(kgdb_call_nmi_hook, NULL, 0);
......
...@@ -119,17 +119,12 @@ void kgdb_arch_set_pc(struct pt_regs *regs, unsigned long pc) ...@@ -119,17 +119,12 @@ void kgdb_arch_set_pc(struct pt_regs *regs, unsigned long pc)
/** /**
* kgdb_roundup_cpus - Get other CPUs into a holding pattern * kgdb_roundup_cpus - Get other CPUs into a holding pattern
* @flags: Current IRQ state
* *
* On SMP systems, we need to get the attention of the other CPUs * On SMP systems, we need to get the attention of the other CPUs
* and get them be in a known state. This should do what is needed * and get them be in a known state. This should do what is needed
* to get the other CPUs to call kgdb_wait(). Note that on some arches, * to get the other CPUs to call kgdb_wait(). Note that on some arches,
* the NMI approach is not used for rounding up all the CPUs. For example, * the NMI approach is not used for rounding up all the CPUs. For example,
* in case of MIPS, smp_call_function() is used to roundup CPUs. In * in case of MIPS, smp_call_function() is used to roundup CPUs.
* this case, we have to make sure that interrupts are enabled before
* calling smp_call_function(). The argument to this function is
* the flags that will be used when restoring the interrupts. There is
* local_irq_save() call before kgdb_roundup_cpus().
* *
* On non-SMP systems, this is not called. * On non-SMP systems, this is not called.
*/ */
...@@ -139,7 +134,7 @@ static void hexagon_kgdb_nmi_hook(void *ignored) ...@@ -139,7 +134,7 @@ static void hexagon_kgdb_nmi_hook(void *ignored)
kgdb_nmicallback(raw_smp_processor_id(), get_irq_regs()); kgdb_nmicallback(raw_smp_processor_id(), get_irq_regs());
} }
void kgdb_roundup_cpus(unsigned long flags) void kgdb_roundup_cpus(void)
{ {
local_irq_enable(); local_irq_enable();
smp_call_function(hexagon_kgdb_nmi_hook, NULL, 0); smp_call_function(hexagon_kgdb_nmi_hook, NULL, 0);
......
...@@ -219,7 +219,7 @@ static void kgdb_call_nmi_hook(void *ignored) ...@@ -219,7 +219,7 @@ static void kgdb_call_nmi_hook(void *ignored)
set_fs(old_fs); set_fs(old_fs);
} }
void kgdb_roundup_cpus(unsigned long flags) void kgdb_roundup_cpus(void)
{ {
local_irq_enable(); local_irq_enable();
smp_call_function(kgdb_call_nmi_hook, NULL, 0); smp_call_function(kgdb_call_nmi_hook, NULL, 0);
......
...@@ -124,7 +124,7 @@ static int kgdb_call_nmi_hook(struct pt_regs *regs) ...@@ -124,7 +124,7 @@ static int kgdb_call_nmi_hook(struct pt_regs *regs)
} }
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
void kgdb_roundup_cpus(unsigned long flags) void kgdb_roundup_cpus(void)
{ {
smp_send_debugger_break(); smp_send_debugger_break();
} }
......
...@@ -319,7 +319,7 @@ static void kgdb_call_nmi_hook(void *ignored) ...@@ -319,7 +319,7 @@ static void kgdb_call_nmi_hook(void *ignored)
kgdb_nmicallback(raw_smp_processor_id(), get_irq_regs()); kgdb_nmicallback(raw_smp_processor_id(), get_irq_regs());
} }
void kgdb_roundup_cpus(unsigned long flags) void kgdb_roundup_cpus(void)
{ {
local_irq_enable(); local_irq_enable();
smp_call_function(kgdb_call_nmi_hook, NULL, 0); smp_call_function(kgdb_call_nmi_hook, NULL, 0);
......
...@@ -1014,7 +1014,7 @@ void flush_dcache_page_all(struct mm_struct *mm, struct page *page) ...@@ -1014,7 +1014,7 @@ void flush_dcache_page_all(struct mm_struct *mm, struct page *page)
} }
#ifdef CONFIG_KGDB #ifdef CONFIG_KGDB
void kgdb_roundup_cpus(unsigned long flags) void kgdb_roundup_cpus(void)
{ {
smp_cross_call(&xcall_kgdb_capture, 0, 0, 0); smp_cross_call(&xcall_kgdb_capture, 0, 0, 0);
} }
......
...@@ -422,21 +422,16 @@ static void kgdb_disable_hw_debug(struct pt_regs *regs) ...@@ -422,21 +422,16 @@ static void kgdb_disable_hw_debug(struct pt_regs *regs)
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
/** /**
* kgdb_roundup_cpus - Get other CPUs into a holding pattern * kgdb_roundup_cpus - Get other CPUs into a holding pattern
* @flags: Current IRQ state
* *
* On SMP systems, we need to get the attention of the other CPUs * On SMP systems, we need to get the attention of the other CPUs
* and get them be in a known state. This should do what is needed * and get them be in a known state. This should do what is needed
* to get the other CPUs to call kgdb_wait(). Note that on some arches, * to get the other CPUs to call kgdb_wait(). Note that on some arches,
* the NMI approach is not used for rounding up all the CPUs. For example, * the NMI approach is not used for rounding up all the CPUs. For example,
* in case of MIPS, smp_call_function() is used to roundup CPUs. In * in case of MIPS, smp_call_function() is used to roundup CPUs.
* this case, we have to make sure that interrupts are enabled before
* calling smp_call_function(). The argument to this function is
* the flags that will be used when restoring the interrupts. There is
* local_irq_save() call before kgdb_roundup_cpus().
* *
* On non-SMP systems, this is not called. * On non-SMP systems, this is not called.
*/ */
void kgdb_roundup_cpus(unsigned long flags) void kgdb_roundup_cpus(void)
{ {
apic->send_IPI_allbutself(APIC_DM_NMI); apic->send_IPI_allbutself(APIC_DM_NMI);
} }
......
...@@ -178,21 +178,16 @@ kgdb_arch_handle_exception(int vector, int signo, int err_code, ...@@ -178,21 +178,16 @@ kgdb_arch_handle_exception(int vector, int signo, int err_code,
/** /**
* kgdb_roundup_cpus - Get other CPUs into a holding pattern * kgdb_roundup_cpus - Get other CPUs into a holding pattern
* @flags: Current IRQ state
* *
* On SMP systems, we need to get the attention of the other CPUs * On SMP systems, we need to get the attention of the other CPUs
* and get them into a known state. This should do what is needed * and get them into a known state. This should do what is needed
* to get the other CPUs to call kgdb_wait(). Note that on some arches, * to get the other CPUs to call kgdb_wait(). Note that on some arches,
* the NMI approach is not used for rounding up all the CPUs. For example, * the NMI approach is not used for rounding up all the CPUs. For example,
* in case of MIPS, smp_call_function() is used to roundup CPUs. In * in case of MIPS, smp_call_function() is used to roundup CPUs.
* this case, we have to make sure that interrupts are enabled before
* calling smp_call_function(). The argument to this function is
* the flags that will be used when restoring the interrupts. There is
* local_irq_save() call before kgdb_roundup_cpus().
* *
* On non-SMP systems, this is not called. * On non-SMP systems, this is not called.
*/ */
extern void kgdb_roundup_cpus(unsigned long flags); extern void kgdb_roundup_cpus(void);
/** /**
* kgdb_arch_set_pc - Generic call back to the program counter * kgdb_arch_set_pc - Generic call back to the program counter
......
...@@ -593,7 +593,7 @@ static int kgdb_cpu_enter(struct kgdb_state *ks, struct pt_regs *regs, ...@@ -593,7 +593,7 @@ static int kgdb_cpu_enter(struct kgdb_state *ks, struct pt_regs *regs,
/* Signal the other CPUs to enter kgdb_wait() */ /* Signal the other CPUs to enter kgdb_wait() */
else if ((!kgdb_single_step) && kgdb_do_roundup) else if ((!kgdb_single_step) && kgdb_do_roundup)
kgdb_roundup_cpus(flags); kgdb_roundup_cpus();
#endif #endif
/* /*
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册