lkml.org 
[lkml]   [2009]   [Jan]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 1/5] x86-64: Remove pda_init()
    Date
    Copy the code to cpu_init() to satisfy the requirement that the cpu
    be reinitialized. Remove all other calls, since the segments are
    already initialized in head_64.S.

    Signed-off-by: Brian Gerst <brgerst@gmail.com>
    ---
    arch/x86/include/asm/pda.h | 1 -
    arch/x86/kernel/cpu/common.c | 15 +++------------
    arch/x86/kernel/head64.c | 2 --
    arch/x86/xen/enlighten.c | 1 -
    4 files changed, 3 insertions(+), 16 deletions(-)

    diff --git a/arch/x86/include/asm/pda.h b/arch/x86/include/asm/pda.h
    index c31ca04..6ca7bc0 100644
    --- a/arch/x86/include/asm/pda.h
    +++ b/arch/x86/include/asm/pda.h
    @@ -26,7 +26,6 @@ struct x8664_pda {
    } ____cacheline_aligned_in_smp;

    DECLARE_PER_CPU(struct x8664_pda, __pda);
    -extern void pda_init(int);

    #define cpu_pda(cpu) (&per_cpu(__pda, cpu))

    diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
    index 7976a6a..f83a4d6 100644
    --- a/arch/x86/kernel/cpu/common.c
    +++ b/arch/x86/kernel/cpu/common.c
    @@ -895,15 +895,6 @@ EXPORT_PER_CPU_SYMBOL(kernel_stack);

    DEFINE_PER_CPU(unsigned int, irq_count) = -1;

    -void __cpuinit pda_init(int cpu)
    -{
    - /* Setup up data that may be needed in __get_free_pages early */
    - loadsegment(fs, 0);
    - loadsegment(gs, 0);
    -
    - load_pda_offset(cpu);
    -}
    -
    static DEFINE_PER_CPU_PAGE_ALIGNED(char, exception_stacks
    [(N_EXCEPTION_STACKS - 1) * EXCEPTION_STKSZ + DEBUG_STKSZ])
    __aligned(PAGE_SIZE);
    @@ -967,9 +958,9 @@ void __cpuinit cpu_init(void)
    struct task_struct *me;
    int i;

    - /* CPU 0 is initialised in head64.c */
    - if (cpu != 0)
    - pda_init(cpu);
    + loadsegment(fs, 0);
    + loadsegment(gs, 0);
    + load_pda_offset(cpu);

    #ifdef CONFIG_NUMA
    if (cpu != 0 && percpu_read(node_number) == 0 &&
    diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
    index af67d32..f5b2722 100644
    --- a/arch/x86/kernel/head64.c
    +++ b/arch/x86/kernel/head64.c
    @@ -91,8 +91,6 @@ void __init x86_64_start_kernel(char * real_mode_data)
    if (console_loglevel == 10)
    early_printk("Kernel alive\n");

    - pda_init(0);
    -
    x86_64_start_reservations(real_mode_data);
    }

    diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
    index 75b9413..bef941f 100644
    --- a/arch/x86/xen/enlighten.c
    +++ b/arch/x86/xen/enlighten.c
    @@ -1645,7 +1645,6 @@ asmlinkage void __init xen_start_kernel(void)
    #ifdef CONFIG_X86_64
    /* Disable until direct per-cpu data access. */
    have_vcpu_info_placement = 0;
    - pda_init(0);
    #endif

    xen_smp_init();
    --
    1.6.1.rc1


    \
     
     \ /
      Last update: 2009-01-19 01:55    [W:0.060 / U:30.960 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site