public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] i386: mark two more functions as __init
@ 2006-08-08  8:17 Magnus Damm
  2006-08-08  9:15 ` Andi Kleen
  2006-08-08 19:58 ` Andrew Morton
  0 siblings, 2 replies; 4+ messages in thread
From: Magnus Damm @ 2006-08-08  8:17 UTC (permalink / raw)
  To: linux-kernel; +Cc: Magnus Damm

i386: mark two more functions as __init

cyrix_identify() should be __init because transmeta_identify() is.
tsc_init() is only called from setup_arch() which is marked as __init.

These two section mismatches have been detected using running modpost on
a vmlinux image compiled with CONFIG_RELOCATABLE=y.

Signed-off-by: Magnus Damm <magnus@valinux.co.jp>
---

 cpu/cyrix.c |    2 +-
 tsc.c       |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

--- 0001/arch/i386/kernel/cpu/cyrix.c
+++ work/arch/i386/kernel/cpu/cyrix.c	2006-08-07 17:02:58.000000000 +0900
@@ -394,7 +394,7 @@ static inline int test_cyrix_52div(void)
 	return (unsigned char) (test >> 8) == 0x02;
 }
 
-static void cyrix_identify(struct cpuinfo_x86 * c)
+static void __init cyrix_identify(struct cpuinfo_x86 * c)
 {
 	/* Detect Cyrix with disabled CPUID */
 	if ( c->x86 == 4 && test_cyrix_52div() ) {
--- 0001/arch/i386/kernel/tsc.c
+++ work/arch/i386/kernel/tsc.c	2006-08-07 17:02:58.000000000 +0900
@@ -192,7 +192,7 @@ int recalibrate_cpu_khz(void)
 
 EXPORT_SYMBOL(recalibrate_cpu_khz);
 
-void tsc_init(void)
+void __init tsc_init(void)
 {
 	if (!cpu_has_tsc || tsc_disable)
 		return;

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

* Re: [PATCH] i386: mark two more functions as __init
  2006-08-08  8:17 [PATCH] i386: mark two more functions as __init Magnus Damm
@ 2006-08-08  9:15 ` Andi Kleen
  2006-08-08 19:58 ` Andrew Morton
  1 sibling, 0 replies; 4+ messages in thread
From: Andi Kleen @ 2006-08-08  9:15 UTC (permalink / raw)
  To: Magnus Damm; +Cc: linux-kernel

Magnus Damm <magnus@valinux.co.jp> writes:

> i386: mark two more functions as __init
> 
> cyrix_identify() should be __init because transmeta_identify() is.
> tsc_init() is only called from setup_arch() which is marked as __init.
> 
> These two section mismatches have been detected using running modpost on
> a vmlinux image compiled with CONFIG_RELOCATABLE=y.

I queued both patches (topology and this one) 

-Andi

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

* Re: [PATCH] i386: mark two more functions as __init
  2006-08-08  8:17 [PATCH] i386: mark two more functions as __init Magnus Damm
  2006-08-08  9:15 ` Andi Kleen
@ 2006-08-08 19:58 ` Andrew Morton
  2006-08-09  0:14   ` Magnus Damm
  1 sibling, 1 reply; 4+ messages in thread
From: Andrew Morton @ 2006-08-08 19:58 UTC (permalink / raw)
  To: Magnus Damm; +Cc: linux-kernel

On Tue,  8 Aug 2006 17:17:00 +0900 (JST)
Magnus Damm <magnus@valinux.co.jp> wrote:

> i386: mark two more functions as __init
> 
> cyrix_identify() should be __init because transmeta_identify() is.
> tsc_init() is only called from setup_arch() which is marked as __init.
> 
> These two section mismatches have been detected using running modpost on
> a vmlinux image compiled with CONFIG_RELOCATABLE=y.
> 
> -static void cyrix_identify(struct cpuinfo_x86 * c)
> +static void __init cyrix_identify(struct cpuinfo_x86 * c)

Are we sure?  We end up putting a pointer to this into
arch/i386/kernel/cpu/common.c:cpu_devs[], and that gets used from __cpuinit
code.  


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

* Re: [PATCH] i386: mark two more functions as __init
  2006-08-08 19:58 ` Andrew Morton
@ 2006-08-09  0:14   ` Magnus Damm
  0 siblings, 0 replies; 4+ messages in thread
From: Magnus Damm @ 2006-08-09  0:14 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Magnus Damm, linux-kernel

On 8/9/06, Andrew Morton <akpm@osdl.org> wrote:
> On Tue,  8 Aug 2006 17:17:00 +0900 (JST)
> Magnus Damm <magnus@valinux.co.jp> wrote:
>
> > i386: mark two more functions as __init
> >
> > cyrix_identify() should be __init because transmeta_identify() is.
> > tsc_init() is only called from setup_arch() which is marked as __init.
> >
> > These two section mismatches have been detected using running modpost on
> > a vmlinux image compiled with CONFIG_RELOCATABLE=y.
> >
> > -static void cyrix_identify(struct cpuinfo_x86 * c)
> > +static void __init cyrix_identify(struct cpuinfo_x86 * c)
>
> Are we sure?  We end up putting a pointer to this into
> arch/i386/kernel/cpu/common.c:cpu_devs[], and that gets used from __cpuinit
> code.

Uh, right. The problem is that almost all cpu code is put in the
__init section today. I'll break out and resend the tsc code, and on
top of that post a set of patches that puts cpu code and data into
__cpuinit and __cpuinitdata sections.

Thanks!

/ magnus

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

end of thread, other threads:[~2006-08-09  0:14 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-08-08  8:17 [PATCH] i386: mark two more functions as __init Magnus Damm
2006-08-08  9:15 ` Andi Kleen
2006-08-08 19:58 ` Andrew Morton
2006-08-09  0:14   ` Magnus Damm

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox