Re: [PATCH] i386: mark two more functions as __init

From: Magnus Damm
Date: Tue Aug 08 2006 - 20:12:04 EST


On 8/9/06, Andrew Morton <akpm@xxxxxxxx> wrote:
On Tue, 8 Aug 2006 17:17:00 +0900 (JST)
Magnus Damm <magnus@xxxxxxxxxxxxx> 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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/