All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] x86: Mark the thermal init functions __init
@ 2009-11-11  7:51 Yong Wang
  2009-11-11 11:42 ` [tip:perf/mce] " tip-bot for Yong Wang
  2009-11-12  5:28 ` [PATCH] " Hidetoshi Seto
  0 siblings, 2 replies; 6+ messages in thread
From: Yong Wang @ 2009-11-11  7:51 UTC (permalink / raw)
  To: Ingo Molnar, H. Peter Anvin, Thomas Gleixner; +Cc: linux-kernel

Mark the thermal init functions __init so that the init memory can be freed.

Signed-off-by: Yong Wang <yong.y.wang@intel.com>
---
 arch/x86/kernel/cpu/mcheck/therm_throt.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kernel/cpu/mcheck/therm_throt.c b/arch/x86/kernel/cpu/mcheck/therm_throt.c
index 7f3cf36..8a73d5c 100644
--- a/arch/x86/kernel/cpu/mcheck/therm_throt.c
+++ b/arch/x86/kernel/cpu/mcheck/therm_throt.c
@@ -256,7 +256,7 @@ asmlinkage void smp_thermal_interrupt(struct pt_regs *regs)
 	ack_APIC_irq();
 }
 
-void mcheck_intel_therm_init(void)
+void __init mcheck_intel_therm_init(void)
 {
 	/*
 	 * This function is only called on boot CPU. Save the init thermal
@@ -268,7 +268,7 @@ void mcheck_intel_therm_init(void)
 		lvtthmr_init = apic_read(APIC_LVTTHMR);
 }
 
-void intel_init_thermal(struct cpuinfo_x86 *c)
+void __init intel_init_thermal(struct cpuinfo_x86 *c)
 {
 	unsigned int cpu = smp_processor_id();
 	int tm2 = 0;

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

* [tip:perf/mce] x86: Mark the thermal init functions __init
  2009-11-11  7:51 [PATCH] x86: Mark the thermal init functions __init Yong Wang
@ 2009-11-11 11:42 ` tip-bot for Yong Wang
  2009-11-12  5:28 ` [PATCH] " Hidetoshi Seto
  1 sibling, 0 replies; 6+ messages in thread
From: tip-bot for Yong Wang @ 2009-11-11 11:42 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: linux-kernel, hpa, mingo, yong.y.wang, yong.y.wang, tglx, mingo

Commit-ID:  ce6b5d768c79b9d5dd6345c033bae781d5ca9b8e
Gitweb:     http://git.kernel.org/tip/ce6b5d768c79b9d5dd6345c033bae781d5ca9b8e
Author:     Yong Wang <yong.y.wang@linux.intel.com>
AuthorDate: Wed, 11 Nov 2009 15:51:25 +0800
Committer:  Ingo Molnar <mingo@elte.hu>
CommitDate: Wed, 11 Nov 2009 12:33:32 +0100

x86: Mark the thermal init functions __init

Mark the thermal init functions __init so that the init memory
can be freed.

Signed-off-by: Yong Wang <yong.y.wang@intel.com>
LKML-Reference: <20091111075125.GA17900@ywang-moblin2.bj.intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
 arch/x86/kernel/cpu/mcheck/therm_throt.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kernel/cpu/mcheck/therm_throt.c b/arch/x86/kernel/cpu/mcheck/therm_throt.c
index 7f3cf36..8a73d5c 100644
--- a/arch/x86/kernel/cpu/mcheck/therm_throt.c
+++ b/arch/x86/kernel/cpu/mcheck/therm_throt.c
@@ -256,7 +256,7 @@ asmlinkage void smp_thermal_interrupt(struct pt_regs *regs)
 	ack_APIC_irq();
 }
 
-void mcheck_intel_therm_init(void)
+void __init mcheck_intel_therm_init(void)
 {
 	/*
 	 * This function is only called on boot CPU. Save the init thermal
@@ -268,7 +268,7 @@ void mcheck_intel_therm_init(void)
 		lvtthmr_init = apic_read(APIC_LVTTHMR);
 }
 
-void intel_init_thermal(struct cpuinfo_x86 *c)
+void __init intel_init_thermal(struct cpuinfo_x86 *c)
 {
 	unsigned int cpu = smp_processor_id();
 	int tm2 = 0;

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

* Re: [PATCH] x86: Mark the thermal init functions __init
  2009-11-11  7:51 [PATCH] x86: Mark the thermal init functions __init Yong Wang
  2009-11-11 11:42 ` [tip:perf/mce] " tip-bot for Yong Wang
@ 2009-11-12  5:28 ` Hidetoshi Seto
  2009-11-12  6:52   ` [PATCH] x86, mce: fix __init annotations Hidetoshi Seto
  1 sibling, 1 reply; 6+ messages in thread
From: Hidetoshi Seto @ 2009-11-12  5:28 UTC (permalink / raw)
  To: Yong Wang; +Cc: Ingo Molnar, H. Peter Anvin, Thomas Gleixner, linux-kernel

Yong Wang wrote:
> Mark the thermal init functions __init so that the init memory can be freed.
> 
> Signed-off-by: Yong Wang <yong.y.wang@intel.com>
> ---
>  arch/x86/kernel/cpu/mcheck/therm_throt.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/x86/kernel/cpu/mcheck/therm_throt.c b/arch/x86/kernel/cpu/mcheck/therm_throt.c
> index 7f3cf36..8a73d5c 100644
> --- a/arch/x86/kernel/cpu/mcheck/therm_throt.c
> +++ b/arch/x86/kernel/cpu/mcheck/therm_throt.c
> @@ -256,7 +256,7 @@ asmlinkage void smp_thermal_interrupt(struct pt_regs *regs)
>  	ack_APIC_irq();
>  }
>  
> -void mcheck_intel_therm_init(void)
> +void __init mcheck_intel_therm_init(void)
>  {
>  	/*
>  	 * This function is only called on boot CPU. Save the init thermal

It's OK because it is called only on BP.

> @@ -268,7 +268,7 @@ void mcheck_intel_therm_init(void)
>  		lvtthmr_init = apic_read(APIC_LVTTHMR);
>  }
>  
> -void intel_init_thermal(struct cpuinfo_x86 *c)
> +void __init intel_init_thermal(struct cpuinfo_x86 *c)
>  {
>  	unsigned int cpu = smp_processor_id();
>  	int tm2 = 0;

But I think this could be called on hot-plugged AP.
Should be __cpuinit ?

void __cpuinit mcheck_cpu_init(struct cpuinfo_x86 *c)
 ->  static void __mcheck_cpu_init_vendor(struct cpuinfo_x86 *c)
  ->  void mce_intel_feature_init(struct cpuinfo_x86 *c)
   ->  void intel_init_thermal(struct cpuinfo_x86 *c)

Thanks,
H.Seto



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

* [PATCH] x86, mce: fix __init annotations
  2009-11-12  5:28 ` [PATCH] " Hidetoshi Seto
@ 2009-11-12  6:52   ` Hidetoshi Seto
  2009-11-12  8:12     ` Yong Wang
  2009-11-12  8:22     ` [tip:perf/mce] x86, mce: Fix " tip-bot for Hidetoshi Seto
  0 siblings, 2 replies; 6+ messages in thread
From: Hidetoshi Seto @ 2009-11-12  6:52 UTC (permalink / raw)
  To: Yong Wang; +Cc: Ingo Molnar, H. Peter Anvin, Thomas Gleixner, linux-kernel

Hidetoshi Seto wrote:
> Yong Wang wrote:
>> @@ -268,7 +268,7 @@ void mcheck_intel_therm_init(void)
>>  		lvtthmr_init = apic_read(APIC_LVTTHMR);
>>  }
>>  
>> -void intel_init_thermal(struct cpuinfo_x86 *c)
>> +void __init intel_init_thermal(struct cpuinfo_x86 *c)
>>  {
>>  	unsigned int cpu = smp_processor_id();
>>  	int tm2 = 0;
> 
> But I think this could be called on hot-plugged AP.
> Should be __cpuinit ?
> 
> void __cpuinit mcheck_cpu_init(struct cpuinfo_x86 *c)
>  ->  static void __mcheck_cpu_init_vendor(struct cpuinfo_x86 *c)
>   ->  void mce_intel_feature_init(struct cpuinfo_x86 *c)
>    ->  void intel_init_thermal(struct cpuinfo_x86 *c)

I found it is called from resume path, so neither __init nor __cpuinit
will be applicable...

static int mce_resume(struct sys_device *dev)
 -> static void __mcheck_cpu_init_vendor(struct cpuinfo_x86 *c)
  ->  void mce_intel_feature_init(struct cpuinfo_x86 *c)
   ->  void intel_init_thermal(struct cpuinfo_x86 *c)

Following patch is based on tip:perf/mce.


Thanks,
H.Seto

===

Subject: [PATCH] x86, mce: fix __init annotations

The intel_init_thermal() is called from resume path, so it cannot be
marked as __init.

OTOH mce_banks_init() is only called from __mcheck_cpu_cap_init()
which is marked as __cpuinit, so it can be also marked as __cpuinit.

Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
---
 arch/x86/kernel/cpu/mcheck/mce.c         |    4 ++--
 arch/x86/kernel/cpu/mcheck/therm_throt.c |    2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
index 0d41020..5f277ca 100644
--- a/arch/x86/kernel/cpu/mcheck/mce.c
+++ b/arch/x86/kernel/cpu/mcheck/mce.c
@@ -1201,7 +1201,7 @@ int mce_notify_irq(void)
 }
 EXPORT_SYMBOL_GPL(mce_notify_irq);
 
-static int mce_banks_init(void)
+static int __cpuinit __mcheck_cpu_mce_banks_init(void)
 {
 	int i;
 
@@ -1242,7 +1242,7 @@ static int __cpuinit __mcheck_cpu_cap_init(void)
 	WARN_ON(banks != 0 && b != banks);
 	banks = b;
 	if (!mce_banks) {
-		int err = mce_banks_init();
+		int err = __mcheck_cpu_mce_banks_init();
 
 		if (err)
 			return err;
diff --git a/arch/x86/kernel/cpu/mcheck/therm_throt.c b/arch/x86/kernel/cpu/mcheck/therm_throt.c
index 8a73d5c..4fef985 100644
--- a/arch/x86/kernel/cpu/mcheck/therm_throt.c
+++ b/arch/x86/kernel/cpu/mcheck/therm_throt.c
@@ -268,7 +268,7 @@ void __init mcheck_intel_therm_init(void)
 		lvtthmr_init = apic_read(APIC_LVTTHMR);
 }
 
-void __init intel_init_thermal(struct cpuinfo_x86 *c)
+void intel_init_thermal(struct cpuinfo_x86 *c)
 {
 	unsigned int cpu = smp_processor_id();
 	int tm2 = 0;
-- 
1.6.5.2



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

* Re: [PATCH] x86, mce: fix __init annotations
  2009-11-12  6:52   ` [PATCH] x86, mce: fix __init annotations Hidetoshi Seto
@ 2009-11-12  8:12     ` Yong Wang
  2009-11-12  8:22     ` [tip:perf/mce] x86, mce: Fix " tip-bot for Hidetoshi Seto
  1 sibling, 0 replies; 6+ messages in thread
From: Yong Wang @ 2009-11-12  8:12 UTC (permalink / raw)
  To: Hidetoshi Seto; +Cc: Ingo Molnar, H. Peter Anvin, Thomas Gleixner, linux-kernel

On Thu, Nov 12, 2009 at 03:52:40PM +0900, Hidetoshi Seto wrote:
> Hidetoshi Seto wrote:
> > Yong Wang wrote:
> >> @@ -268,7 +268,7 @@ void mcheck_intel_therm_init(void)
> >>  		lvtthmr_init = apic_read(APIC_LVTTHMR);
> >>  }
> >>  
> >> -void intel_init_thermal(struct cpuinfo_x86 *c)
> >> +void __init intel_init_thermal(struct cpuinfo_x86 *c)
> >>  {
> >>  	unsigned int cpu = smp_processor_id();
> >>  	int tm2 = 0;
> > 
> > But I think this could be called on hot-plugged AP.
> > Should be __cpuinit ?
> > 
> > void __cpuinit mcheck_cpu_init(struct cpuinfo_x86 *c)
> >  ->  static void __mcheck_cpu_init_vendor(struct cpuinfo_x86 *c)
> >   ->  void mce_intel_feature_init(struct cpuinfo_x86 *c)
> >    ->  void intel_init_thermal(struct cpuinfo_x86 *c)
> 
> I found it is called from resume path, so neither __init nor __cpuinit
> will be applicable...
> 
> static int mce_resume(struct sys_device *dev)
>  -> static void __mcheck_cpu_init_vendor(struct cpuinfo_x86 *c)
>   ->  void mce_intel_feature_init(struct cpuinfo_x86 *c)
>    ->  void intel_init_thermal(struct cpuinfo_x86 *c)
> 
> Following patch is based on tip:perf/mce.
> 
> 
> Thanks,
> H.Seto
> 
> ===
> 
> Subject: [PATCH] x86, mce: fix __init annotations
> 
> The intel_init_thermal() is called from resume path, so it cannot be
> marked as __init.
> 
> OTOH mce_banks_init() is only called from __mcheck_cpu_cap_init()
> which is marked as __cpuinit, so it can be also marked as __cpuinit.
> 
> Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
> ---
>  arch/x86/kernel/cpu/mcheck/mce.c         |    4 ++--
>  arch/x86/kernel/cpu/mcheck/therm_throt.c |    2 +-
>  2 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
> index 0d41020..5f277ca 100644
> --- a/arch/x86/kernel/cpu/mcheck/mce.c
> +++ b/arch/x86/kernel/cpu/mcheck/mce.c
> @@ -1201,7 +1201,7 @@ int mce_notify_irq(void)
>  }
>  EXPORT_SYMBOL_GPL(mce_notify_irq);
>  
> -static int mce_banks_init(void)
> +static int __cpuinit __mcheck_cpu_mce_banks_init(void)
>  {
>  	int i;
>  
> @@ -1242,7 +1242,7 @@ static int __cpuinit __mcheck_cpu_cap_init(void)
>  	WARN_ON(banks != 0 && b != banks);
>  	banks = b;
>  	if (!mce_banks) {
> -		int err = mce_banks_init();
> +		int err = __mcheck_cpu_mce_banks_init();
>  
>  		if (err)
>  			return err;
> diff --git a/arch/x86/kernel/cpu/mcheck/therm_throt.c b/arch/x86/kernel/cpu/mcheck/therm_throt.c
> index 8a73d5c..4fef985 100644
> --- a/arch/x86/kernel/cpu/mcheck/therm_throt.c
> +++ b/arch/x86/kernel/cpu/mcheck/therm_throt.c
> @@ -268,7 +268,7 @@ void __init mcheck_intel_therm_init(void)
>  		lvtthmr_init = apic_read(APIC_LVTTHMR);
>  }
>  
> -void __init intel_init_thermal(struct cpuinfo_x86 *c)
> +void intel_init_thermal(struct cpuinfo_x86 *c)
>  {
>  	unsigned int cpu = smp_processor_id();
>  	int tm2 = 0;
> 

Oh, yeah. We should only mark mcheck_intel_therm_init as __init for the
thermal part. Thanks for spotting.


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

* [tip:perf/mce] x86, mce: Fix __init annotations
  2009-11-12  6:52   ` [PATCH] x86, mce: fix __init annotations Hidetoshi Seto
  2009-11-12  8:12     ` Yong Wang
@ 2009-11-12  8:22     ` tip-bot for Hidetoshi Seto
  1 sibling, 0 replies; 6+ messages in thread
From: tip-bot for Hidetoshi Seto @ 2009-11-12  8:22 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: linux-kernel, hpa, mingo, yong.y.wang, seto.hidetoshi, tglx,
	mingo

Commit-ID:  cffd377e5879ea58522224a785a083f201afd80e
Gitweb:     http://git.kernel.org/tip/cffd377e5879ea58522224a785a083f201afd80e
Author:     Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
AuthorDate: Thu, 12 Nov 2009 15:52:40 +0900
Committer:  Ingo Molnar <mingo@elte.hu>
CommitDate: Thu, 12 Nov 2009 09:17:11 +0100

x86, mce: Fix __init annotations

The intel_init_thermal() is called from resume path, so it
cannot be marked as __init.

OTOH mce_banks_init() is only called from
__mcheck_cpu_cap_init() which is marked as __cpuinit, so it can
be also marked as __cpuinit.

Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Acked-by: Yong Wang <yong.y.wang@linux.intel.com>
LKML-Reference: <4AFBB0B8.2070501@jp.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
 arch/x86/kernel/cpu/mcheck/mce.c         |    4 ++--
 arch/x86/kernel/cpu/mcheck/therm_throt.c |    2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
index 0d41020..5f277ca 100644
--- a/arch/x86/kernel/cpu/mcheck/mce.c
+++ b/arch/x86/kernel/cpu/mcheck/mce.c
@@ -1201,7 +1201,7 @@ int mce_notify_irq(void)
 }
 EXPORT_SYMBOL_GPL(mce_notify_irq);
 
-static int mce_banks_init(void)
+static int __cpuinit __mcheck_cpu_mce_banks_init(void)
 {
 	int i;
 
@@ -1242,7 +1242,7 @@ static int __cpuinit __mcheck_cpu_cap_init(void)
 	WARN_ON(banks != 0 && b != banks);
 	banks = b;
 	if (!mce_banks) {
-		int err = mce_banks_init();
+		int err = __mcheck_cpu_mce_banks_init();
 
 		if (err)
 			return err;
diff --git a/arch/x86/kernel/cpu/mcheck/therm_throt.c b/arch/x86/kernel/cpu/mcheck/therm_throt.c
index 8a73d5c..4fef985 100644
--- a/arch/x86/kernel/cpu/mcheck/therm_throt.c
+++ b/arch/x86/kernel/cpu/mcheck/therm_throt.c
@@ -268,7 +268,7 @@ void __init mcheck_intel_therm_init(void)
 		lvtthmr_init = apic_read(APIC_LVTTHMR);
 }
 
-void __init intel_init_thermal(struct cpuinfo_x86 *c)
+void intel_init_thermal(struct cpuinfo_x86 *c)
 {
 	unsigned int cpu = smp_processor_id();
 	int tm2 = 0;

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

end of thread, other threads:[~2009-11-12  8:22 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-11-11  7:51 [PATCH] x86: Mark the thermal init functions __init Yong Wang
2009-11-11 11:42 ` [tip:perf/mce] " tip-bot for Yong Wang
2009-11-12  5:28 ` [PATCH] " Hidetoshi Seto
2009-11-12  6:52   ` [PATCH] x86, mce: fix __init annotations Hidetoshi Seto
2009-11-12  8:12     ` Yong Wang
2009-11-12  8:22     ` [tip:perf/mce] x86, mce: Fix " tip-bot for Hidetoshi Seto

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.