All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] x86: properly _init-annotate NMI selftest code
@ 2012-02-24 12:09 Jan Beulich
  2012-02-24 15:46 ` Don Zickus
  2012-02-27  9:38 ` [tip:x86/debug] x86: Properly " tip-bot for Jan Beulich
  0 siblings, 2 replies; 3+ messages in thread
From: Jan Beulich @ 2012-02-24 12:09 UTC (permalink / raw)
  To: mingo, tglx, hpa; +Cc: dzickus, linux-kernel

After all, this code is being run once at boot only (if configured in
at all).

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Cc: Don Zickus <dzickus@redhat.com>

---
 arch/x86/kernel/nmi_selftest.c |   37 +++++++++++++++++++------------------
 1 file changed, 19 insertions(+), 18 deletions(-)

--- 3.3-rc4/arch/x86/kernel/nmi_selftest.c
+++ 3.3-rc4-x86-nmi-selftest-init/arch/x86/kernel/nmi_selftest.c
@@ -12,6 +12,7 @@
 #include <linux/smp.h>
 #include <linux/cpumask.h>
 #include <linux/delay.h>
+#include <linux/init.h>
 
 #include <asm/apic.h>
 #include <asm/nmi.h>
@@ -20,35 +21,35 @@
 #define FAILURE		1
 #define TIMEOUT		2
 
-static int nmi_fail;
+static int __initdata nmi_fail;
 
 /* check to see if NMI IPIs work on this machine */
-static DECLARE_BITMAP(nmi_ipi_mask, NR_CPUS) __read_mostly;
+static DECLARE_BITMAP(nmi_ipi_mask, NR_CPUS) __initdata;
 
-static int testcase_total;
-static int testcase_successes;
-static int expected_testcase_failures;
-static int unexpected_testcase_failures;
-static int unexpected_testcase_unknowns;
+static int __initdata testcase_total;
+static int __initdata testcase_successes;
+static int __initdata expected_testcase_failures;
+static int __initdata unexpected_testcase_failures;
+static int __initdata unexpected_testcase_unknowns;
 
-static int nmi_unk_cb(unsigned int val, struct pt_regs *regs)
+static int __init nmi_unk_cb(unsigned int val, struct pt_regs *regs)
 {
 	unexpected_testcase_unknowns++;
 	return NMI_HANDLED;
 }
 
-static void init_nmi_testsuite(void)
+static void __init init_nmi_testsuite(void)
 {
 	/* trap all the unknown NMIs we may generate */
 	register_nmi_handler(NMI_UNKNOWN, nmi_unk_cb, 0, "nmi_selftest_unk");
 }
 
-static void cleanup_nmi_testsuite(void)
+static void __init cleanup_nmi_testsuite(void)
 {
 	unregister_nmi_handler(NMI_UNKNOWN, "nmi_selftest_unk");
 }
 
-static int test_nmi_ipi_callback(unsigned int val, struct pt_regs *regs)
+static int __init test_nmi_ipi_callback(unsigned int val, struct pt_regs *regs)
 {
         int cpu = raw_smp_processor_id();
 
@@ -58,7 +59,7 @@ static int test_nmi_ipi_callback(unsigne
         return NMI_DONE;
 }
 
-static void test_nmi_ipi(struct cpumask *mask)
+static void __init test_nmi_ipi(struct cpumask *mask)
 {
 	unsigned long timeout;
 
@@ -86,7 +87,7 @@ static void test_nmi_ipi(struct cpumask 
 	return;
 }
 
-static void remote_ipi(void)
+static void __init remote_ipi(void)
 {
 	cpumask_copy(to_cpumask(nmi_ipi_mask), cpu_online_mask);
 	cpumask_clear_cpu(smp_processor_id(), to_cpumask(nmi_ipi_mask));
@@ -94,19 +95,19 @@ static void remote_ipi(void)
 		test_nmi_ipi(to_cpumask(nmi_ipi_mask));
 }
 
-static void local_ipi(void)
+static void __init local_ipi(void)
 {
 	cpumask_clear(to_cpumask(nmi_ipi_mask));
 	cpumask_set_cpu(smp_processor_id(), to_cpumask(nmi_ipi_mask));
 	test_nmi_ipi(to_cpumask(nmi_ipi_mask));
 }
 
-static void reset_nmi(void)
+static void __init reset_nmi(void)
 {
 	nmi_fail = 0;
 }
 
-static void dotest(void (*testcase_fn)(void), int expected)
+static void __init dotest(void (*testcase_fn)(void), int expected)
 {
 	testcase_fn();
 	/*
@@ -131,12 +132,12 @@ static void dotest(void (*testcase_fn)(v
 	reset_nmi();
 }
 
-static inline void print_testname(const char *testname)
+static inline void __init print_testname(const char *testname)
 {
 	printk("%12s:", testname);
 }
 
-void nmi_selftest(void)
+void __init nmi_selftest(void)
 {
 	init_nmi_testsuite();
 




^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] x86: properly _init-annotate NMI selftest code
  2012-02-24 12:09 [PATCH] x86: properly _init-annotate NMI selftest code Jan Beulich
@ 2012-02-24 15:46 ` Don Zickus
  2012-02-27  9:38 ` [tip:x86/debug] x86: Properly " tip-bot for Jan Beulich
  1 sibling, 0 replies; 3+ messages in thread
From: Don Zickus @ 2012-02-24 15:46 UTC (permalink / raw)
  To: Jan Beulich; +Cc: mingo, tglx, hpa, linux-kernel

On Fri, Feb 24, 2012 at 12:09:21PM +0000, Jan Beulich wrote:
> After all, this code is being run once at boot only (if configured in
> at all).
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> Cc: Don Zickus <dzickus@redhat.com>

Heh. Yes, nice catch.

Ingo, I can respin this with my sign-off or just give my ACK.

Cheers,
Don

> 
> ---
>  arch/x86/kernel/nmi_selftest.c |   37 +++++++++++++++++++------------------
>  1 file changed, 19 insertions(+), 18 deletions(-)
> 
> --- 3.3-rc4/arch/x86/kernel/nmi_selftest.c
> +++ 3.3-rc4-x86-nmi-selftest-init/arch/x86/kernel/nmi_selftest.c
> @@ -12,6 +12,7 @@
>  #include <linux/smp.h>
>  #include <linux/cpumask.h>
>  #include <linux/delay.h>
> +#include <linux/init.h>
>  
>  #include <asm/apic.h>
>  #include <asm/nmi.h>
> @@ -20,35 +21,35 @@
>  #define FAILURE		1
>  #define TIMEOUT		2
>  
> -static int nmi_fail;
> +static int __initdata nmi_fail;
>  
>  /* check to see if NMI IPIs work on this machine */
> -static DECLARE_BITMAP(nmi_ipi_mask, NR_CPUS) __read_mostly;
> +static DECLARE_BITMAP(nmi_ipi_mask, NR_CPUS) __initdata;
>  
> -static int testcase_total;
> -static int testcase_successes;
> -static int expected_testcase_failures;
> -static int unexpected_testcase_failures;
> -static int unexpected_testcase_unknowns;
> +static int __initdata testcase_total;
> +static int __initdata testcase_successes;
> +static int __initdata expected_testcase_failures;
> +static int __initdata unexpected_testcase_failures;
> +static int __initdata unexpected_testcase_unknowns;
>  
> -static int nmi_unk_cb(unsigned int val, struct pt_regs *regs)
> +static int __init nmi_unk_cb(unsigned int val, struct pt_regs *regs)
>  {
>  	unexpected_testcase_unknowns++;
>  	return NMI_HANDLED;
>  }
>  
> -static void init_nmi_testsuite(void)
> +static void __init init_nmi_testsuite(void)
>  {
>  	/* trap all the unknown NMIs we may generate */
>  	register_nmi_handler(NMI_UNKNOWN, nmi_unk_cb, 0, "nmi_selftest_unk");
>  }
>  
> -static void cleanup_nmi_testsuite(void)
> +static void __init cleanup_nmi_testsuite(void)
>  {
>  	unregister_nmi_handler(NMI_UNKNOWN, "nmi_selftest_unk");
>  }
>  
> -static int test_nmi_ipi_callback(unsigned int val, struct pt_regs *regs)
> +static int __init test_nmi_ipi_callback(unsigned int val, struct pt_regs *regs)
>  {
>          int cpu = raw_smp_processor_id();
>  
> @@ -58,7 +59,7 @@ static int test_nmi_ipi_callback(unsigne
>          return NMI_DONE;
>  }
>  
> -static void test_nmi_ipi(struct cpumask *mask)
> +static void __init test_nmi_ipi(struct cpumask *mask)
>  {
>  	unsigned long timeout;
>  
> @@ -86,7 +87,7 @@ static void test_nmi_ipi(struct cpumask 
>  	return;
>  }
>  
> -static void remote_ipi(void)
> +static void __init remote_ipi(void)
>  {
>  	cpumask_copy(to_cpumask(nmi_ipi_mask), cpu_online_mask);
>  	cpumask_clear_cpu(smp_processor_id(), to_cpumask(nmi_ipi_mask));
> @@ -94,19 +95,19 @@ static void remote_ipi(void)
>  		test_nmi_ipi(to_cpumask(nmi_ipi_mask));
>  }
>  
> -static void local_ipi(void)
> +static void __init local_ipi(void)
>  {
>  	cpumask_clear(to_cpumask(nmi_ipi_mask));
>  	cpumask_set_cpu(smp_processor_id(), to_cpumask(nmi_ipi_mask));
>  	test_nmi_ipi(to_cpumask(nmi_ipi_mask));
>  }
>  
> -static void reset_nmi(void)
> +static void __init reset_nmi(void)
>  {
>  	nmi_fail = 0;
>  }
>  
> -static void dotest(void (*testcase_fn)(void), int expected)
> +static void __init dotest(void (*testcase_fn)(void), int expected)
>  {
>  	testcase_fn();
>  	/*
> @@ -131,12 +132,12 @@ static void dotest(void (*testcase_fn)(v
>  	reset_nmi();
>  }
>  
> -static inline void print_testname(const char *testname)
> +static inline void __init print_testname(const char *testname)
>  {
>  	printk("%12s:", testname);
>  }
>  
> -void nmi_selftest(void)
> +void __init nmi_selftest(void)
>  {
>  	init_nmi_testsuite();
>  
> 
> 
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [tip:x86/debug] x86: Properly _init-annotate NMI selftest code
  2012-02-24 12:09 [PATCH] x86: properly _init-annotate NMI selftest code Jan Beulich
  2012-02-24 15:46 ` Don Zickus
@ 2012-02-27  9:38 ` tip-bot for Jan Beulich
  1 sibling, 0 replies; 3+ messages in thread
From: tip-bot for Jan Beulich @ 2012-02-27  9:38 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: linux-kernel, hpa, mingo, jbeulich, JBeulich, tglx, dzickus, mingo

Commit-ID:  f0ba662a6e06f2fb58201800eff33dcad9246f97
Gitweb:     http://git.kernel.org/tip/f0ba662a6e06f2fb58201800eff33dcad9246f97
Author:     Jan Beulich <JBeulich@suse.com>
AuthorDate: Fri, 24 Feb 2012 12:09:21 +0000
Committer:  Ingo Molnar <mingo@elte.hu>
CommitDate: Mon, 27 Feb 2012 08:43:37 +0100

x86: Properly _init-annotate NMI selftest code

After all, this code is being run once at boot only (if
configured in at all).

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Don Zickus <dzickus@redhat.com>
Link: http://lkml.kernel.org/r/4F478C010200007800074A3D@nat28.tlf.novell.com
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
 arch/x86/kernel/nmi_selftest.c |   37 +++++++++++++++++++------------------
 1 files changed, 19 insertions(+), 18 deletions(-)

diff --git a/arch/x86/kernel/nmi_selftest.c b/arch/x86/kernel/nmi_selftest.c
index 0d01a8e..2c39dcd 100644
--- a/arch/x86/kernel/nmi_selftest.c
+++ b/arch/x86/kernel/nmi_selftest.c
@@ -12,6 +12,7 @@
 #include <linux/smp.h>
 #include <linux/cpumask.h>
 #include <linux/delay.h>
+#include <linux/init.h>
 
 #include <asm/apic.h>
 #include <asm/nmi.h>
@@ -20,35 +21,35 @@
 #define FAILURE		1
 #define TIMEOUT		2
 
-static int nmi_fail;
+static int __initdata nmi_fail;
 
 /* check to see if NMI IPIs work on this machine */
-static DECLARE_BITMAP(nmi_ipi_mask, NR_CPUS) __read_mostly;
+static DECLARE_BITMAP(nmi_ipi_mask, NR_CPUS) __initdata;
 
-static int testcase_total;
-static int testcase_successes;
-static int expected_testcase_failures;
-static int unexpected_testcase_failures;
-static int unexpected_testcase_unknowns;
+static int __initdata testcase_total;
+static int __initdata testcase_successes;
+static int __initdata expected_testcase_failures;
+static int __initdata unexpected_testcase_failures;
+static int __initdata unexpected_testcase_unknowns;
 
-static int nmi_unk_cb(unsigned int val, struct pt_regs *regs)
+static int __init nmi_unk_cb(unsigned int val, struct pt_regs *regs)
 {
 	unexpected_testcase_unknowns++;
 	return NMI_HANDLED;
 }
 
-static void init_nmi_testsuite(void)
+static void __init init_nmi_testsuite(void)
 {
 	/* trap all the unknown NMIs we may generate */
 	register_nmi_handler(NMI_UNKNOWN, nmi_unk_cb, 0, "nmi_selftest_unk");
 }
 
-static void cleanup_nmi_testsuite(void)
+static void __init cleanup_nmi_testsuite(void)
 {
 	unregister_nmi_handler(NMI_UNKNOWN, "nmi_selftest_unk");
 }
 
-static int test_nmi_ipi_callback(unsigned int val, struct pt_regs *regs)
+static int __init test_nmi_ipi_callback(unsigned int val, struct pt_regs *regs)
 {
         int cpu = raw_smp_processor_id();
 
@@ -58,7 +59,7 @@ static int test_nmi_ipi_callback(unsigned int val, struct pt_regs *regs)
         return NMI_DONE;
 }
 
-static void test_nmi_ipi(struct cpumask *mask)
+static void __init test_nmi_ipi(struct cpumask *mask)
 {
 	unsigned long timeout;
 
@@ -86,7 +87,7 @@ static void test_nmi_ipi(struct cpumask *mask)
 	return;
 }
 
-static void remote_ipi(void)
+static void __init remote_ipi(void)
 {
 	cpumask_copy(to_cpumask(nmi_ipi_mask), cpu_online_mask);
 	cpumask_clear_cpu(smp_processor_id(), to_cpumask(nmi_ipi_mask));
@@ -94,19 +95,19 @@ static void remote_ipi(void)
 		test_nmi_ipi(to_cpumask(nmi_ipi_mask));
 }
 
-static void local_ipi(void)
+static void __init local_ipi(void)
 {
 	cpumask_clear(to_cpumask(nmi_ipi_mask));
 	cpumask_set_cpu(smp_processor_id(), to_cpumask(nmi_ipi_mask));
 	test_nmi_ipi(to_cpumask(nmi_ipi_mask));
 }
 
-static void reset_nmi(void)
+static void __init reset_nmi(void)
 {
 	nmi_fail = 0;
 }
 
-static void dotest(void (*testcase_fn)(void), int expected)
+static void __init dotest(void (*testcase_fn)(void), int expected)
 {
 	testcase_fn();
 	/*
@@ -131,12 +132,12 @@ static void dotest(void (*testcase_fn)(void), int expected)
 	reset_nmi();
 }
 
-static inline void print_testname(const char *testname)
+static inline void __init print_testname(const char *testname)
 {
 	printk("%12s:", testname);
 }
 
-void nmi_selftest(void)
+void __init nmi_selftest(void)
 {
 	init_nmi_testsuite();
 

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-02-27  9:39 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-02-24 12:09 [PATCH] x86: properly _init-annotate NMI selftest code Jan Beulich
2012-02-24 15:46 ` Don Zickus
2012-02-27  9:38 ` [tip:x86/debug] x86: Properly " tip-bot for Jan Beulich

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.