Re: [PATCH 2/7] x86: make some apic symbols init

From: Cyrill Gorcunov
Date: Thu Mar 03 2011 - 16:19:34 EST


On 03/03/2011 11:04 PM, Henrik Kretzschmar wrote:
> apic_force_enable(), apic_verify() and the variable
> force_enable_local_apic are only used by init code
> and now get marked as such.
>
> Global __initdata variables may better be initialized,
> since they are in the data section and not in the bss.
>
> Signed-off-by: Henrik Kretzschmar <henne@xxxxxxxxxxxxxxxx>
> ---
> arch/x86/include/asm/apic.h | 2 +-
> arch/x86/kernel/apic/apic.c | 6 +++---
> 2 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h
> index dbd558c..afe69e1 100644
> --- a/arch/x86/include/asm/apic.h
> +++ b/arch/x86/include/asm/apic.h
> @@ -240,7 +240,7 @@ extern void setup_boot_APIC_clock(void);
> extern void setup_secondary_APIC_clock(void);
> extern int APIC_init_uniprocessor(void);
> extern void enable_NMI_through_LVT0(void);
> -extern int apic_force_enable(unsigned long addr);
> +extern int apic_force_enable(unsigned long addr) __init;

Nope, we either should _check_ all the prototipes and fix them
either left them untouched. This will confuse code readers with "for
what reason some functions have __init, some -- not". So I rather
would fix this nit in different patch later which would address
all of them (if this would not break someone's queue).

>
> /*
> * On 32bit this is mach-xxx local
> diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
> index 6c464a3..022afb9 100644
> --- a/arch/x86/kernel/apic/apic.c
> +++ b/arch/x86/kernel/apic/apic.c
> @@ -93,7 +93,7 @@ DEFINE_EARLY_PER_CPU(int, x86_cpu_to_logical_apicid, BAD_APICID);
> *
> * +1=force-enable
> */
> -static int force_enable_local_apic;
> +static int force_enable_local_apic __initdata = 0;

Hmm, I fail to see why we need to set it to 0.

> /*
> * APIC command line parameters
> */
> @@ -1560,7 +1560,7 @@ static int __init detect_init_APIC(void)
> }
> #else
>
> -static int apic_verify(void)
> +static int __init apic_verify(void)
> {
> u32 features, h, l;
>
> @@ -1585,7 +1585,7 @@ static int apic_verify(void)
> return 0;
> }
>
> -int apic_force_enable(unsigned long addr)
> +int __init apic_force_enable(unsigned long addr)
> {
> u32 h, l;
>

Other looks good to me.

--
Cyrill
--
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/