2011-02-17 15:50:52

by Jan Beulich

[permalink] [raw]
Subject: [PATCH] x86: remove die_nmi()

With no caller left, the function and the DIE_NMIWATCHDOG enumerator
can both go away.

Signed-off-by: Jan Beulich <[email protected]>

---
arch/x86/include/asm/kdebug.h | 1 -
arch/x86/include/asm/nmi.h | 1 -
arch/x86/kernel/dumpstack.c | 25 -------------------------
arch/x86/kernel/kgdb.c | 9 ---------
4 files changed, 36 deletions(-)

--- 2.6.38-rc5/arch/x86/include/asm/kdebug.h
+++ 2.6.38-rc5-x86-no-die_nmi/arch/x86/include/asm/kdebug.h
@@ -13,7 +13,6 @@ enum die_val {
DIE_PANIC,
DIE_NMI,
DIE_DIE,
- DIE_NMIWATCHDOG,
DIE_KERNELDEBUG,
DIE_TRAP,
DIE_GPF,
--- 2.6.38-rc5/arch/x86/include/asm/nmi.h
+++ 2.6.38-rc5-x86-no-die_nmi/arch/x86/include/asm/nmi.h
@@ -7,7 +7,6 @@

#ifdef CONFIG_X86_LOCAL_APIC

-extern void die_nmi(char *str, struct pt_regs *regs, int do_panic);
extern int avail_to_resrv_perfctr_nmi_bit(unsigned int);
extern int reserve_perfctr_nmi(unsigned int);
extern void release_perfctr_nmi(unsigned int);
--- 2.6.38-rc5/arch/x86/kernel/dumpstack.c
+++ 2.6.38-rc5-x86-no-die_nmi/arch/x86/kernel/dumpstack.c
@@ -320,31 +320,6 @@ void die(const char *str, struct pt_regs
oops_end(flags, regs, sig);
}

-void notrace __kprobes
-die_nmi(char *str, struct pt_regs *regs, int do_panic)
-{
- unsigned long flags;
-
- if (notify_die(DIE_NMIWATCHDOG, str, regs, 0, 2, SIGINT) == NOTIFY_STOP)
- return;
-
- /*
- * We are in trouble anyway, lets at least try
- * to get a message out.
- */
- flags = oops_begin();
- printk(KERN_EMERG "%s", str);
- printk(" on CPU%d, ip %08lx, registers:\n",
- smp_processor_id(), regs->ip);
- show_registers(regs);
- oops_end(flags, regs, 0);
- if (do_panic || panic_on_oops)
- panic("Non maskable interrupt");
- nmi_exit();
- local_irq_enable();
- do_exit(SIGBUS);
-}
-
static int __init oops_setup(char *s)
{
if (!s)
--- 2.6.38-rc5/arch/x86/kernel/kgdb.c
+++ 2.6.38-rc5-x86-no-die_nmi/arch/x86/kernel/kgdb.c
@@ -533,15 +533,6 @@ static int __kgdb_notify(struct die_args
}
return NOTIFY_DONE;

- case DIE_NMIWATCHDOG:
- if (atomic_read(&kgdb_active) != -1) {
- /* KGDB CPU roundup: */
- kgdb_nmicallback(raw_smp_processor_id(), regs);
- return NOTIFY_STOP;
- }
- /* Enter debugger: */
- break;
-
case DIE_DEBUG:
if (atomic_read(&kgdb_cpu_doing_single_step) != -1) {
if (user_mode(regs))



2011-02-18 10:41:04

by Jan Beulich

[permalink] [raw]
Subject: [tip:perf/core] x86: Remove die_nmi()

Commit-ID: 02ca752e4181e219e243cd61a60dd1da47251f11
Gitweb: http://git.kernel.org/tip/02ca752e4181e219e243cd61a60dd1da47251f11
Author: Jan Beulich <[email protected]>
AuthorDate: Thu, 17 Feb 2011 15:51:40 +0000
Committer: Ingo Molnar <[email protected]>
CommitDate: Fri, 18 Feb 2011 08:54:05 +0100

x86: Remove die_nmi()

With no caller left, the function and the DIE_NMIWATCHDOG
enumerator can both go away.

Signed-off-by: Jan Beulich <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Don Zickus <[email protected]>
LKML-Reference: <[email protected]>
Signed-off-by: Ingo Molnar <[email protected]>
---
arch/x86/include/asm/kdebug.h | 1 -
arch/x86/include/asm/nmi.h | 1 -
arch/x86/kernel/dumpstack.c | 25 -------------------------
arch/x86/kernel/kgdb.c | 9 ---------
4 files changed, 0 insertions(+), 36 deletions(-)

diff --git a/arch/x86/include/asm/kdebug.h b/arch/x86/include/asm/kdebug.h
index ca242d3..518bbbb 100644
--- a/arch/x86/include/asm/kdebug.h
+++ b/arch/x86/include/asm/kdebug.h
@@ -13,7 +13,6 @@ enum die_val {
DIE_PANIC,
DIE_NMI,
DIE_DIE,
- DIE_NMIWATCHDOG,
DIE_KERNELDEBUG,
DIE_TRAP,
DIE_GPF,
diff --git a/arch/x86/include/asm/nmi.h b/arch/x86/include/asm/nmi.h
index c76f5b9..07f4601 100644
--- a/arch/x86/include/asm/nmi.h
+++ b/arch/x86/include/asm/nmi.h
@@ -7,7 +7,6 @@

#ifdef CONFIG_X86_LOCAL_APIC

-extern void die_nmi(char *str, struct pt_regs *regs, int do_panic);
extern int avail_to_resrv_perfctr_nmi_bit(unsigned int);
extern int reserve_perfctr_nmi(unsigned int);
extern void release_perfctr_nmi(unsigned int);
diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c
index df20723..220a1c1 100644
--- a/arch/x86/kernel/dumpstack.c
+++ b/arch/x86/kernel/dumpstack.c
@@ -320,31 +320,6 @@ void die(const char *str, struct pt_regs *regs, long err)
oops_end(flags, regs, sig);
}

-void notrace __kprobes
-die_nmi(char *str, struct pt_regs *regs, int do_panic)
-{
- unsigned long flags;
-
- if (notify_die(DIE_NMIWATCHDOG, str, regs, 0, 2, SIGINT) == NOTIFY_STOP)
- return;
-
- /*
- * We are in trouble anyway, lets at least try
- * to get a message out.
- */
- flags = oops_begin();
- printk(KERN_EMERG "%s", str);
- printk(" on CPU%d, ip %08lx, registers:\n",
- smp_processor_id(), regs->ip);
- show_registers(regs);
- oops_end(flags, regs, 0);
- if (do_panic || panic_on_oops)
- panic("Non maskable interrupt");
- nmi_exit();
- local_irq_enable();
- do_exit(SIGBUS);
-}
-
static int __init oops_setup(char *s)
{
if (!s)
diff --git a/arch/x86/kernel/kgdb.c b/arch/x86/kernel/kgdb.c
index a413000..7c64c42 100644
--- a/arch/x86/kernel/kgdb.c
+++ b/arch/x86/kernel/kgdb.c
@@ -533,15 +533,6 @@ static int __kgdb_notify(struct die_args *args, unsigned long cmd)
}
return NOTIFY_DONE;

- case DIE_NMIWATCHDOG:
- if (atomic_read(&kgdb_active) != -1) {
- /* KGDB CPU roundup: */
- kgdb_nmicallback(raw_smp_processor_id(), regs);
- return NOTIFY_STOP;
- }
- /* Enter debugger: */
- break;
-
case DIE_DEBUG:
if (atomic_read(&kgdb_cpu_doing_single_step) != -1) {
if (user_mode(regs))

2011-02-23 15:21:04

by Don Zickus

[permalink] [raw]
Subject: Re: [PATCH] x86: remove die_nmi()

On Thu, Feb 17, 2011 at 03:51:40PM +0000, Jan Beulich wrote:
> With no caller left, the function and the DIE_NMIWATCHDOG enumerator
> can both go away.
>
> Signed-off-by: Jan Beulich <[email protected]>

Acked-by: Don Zickus <[email protected]>