All of lore.kernel.org
 help / color / mirror / Atom feed
From: Don Zickus <dzickus@redhat.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: mingo@elte.hu, tglx@linutronix.de, hpa@zytor.com,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] x86: properly _init-annotate NMI selftest code
Date: Fri, 24 Feb 2012 10:46:13 -0500	[thread overview]
Message-ID: <20120224154613.GF26998@redhat.com> (raw)
In-Reply-To: <4F478C010200007800074A3D@nat28.tlf.novell.com>

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();
>  
> 
> 
> 

  reply	other threads:[~2012-02-24 15:46 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-24 12:09 [PATCH] x86: properly _init-annotate NMI selftest code Jan Beulich
2012-02-24 15:46 ` Don Zickus [this message]
2012-02-27  9:38 ` [tip:x86/debug] x86: Properly " tip-bot for Jan Beulich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120224154613.GF26998@redhat.com \
    --to=dzickus@redhat.com \
    --cc=JBeulich@suse.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.