lkml.org 
[lkml]   [2007]   [Mar]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 081/101] kexec: Fix CONFIG_SMP=n compilation V2 (ia64)

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

    Kexec support for 2.6.20 on ia64 does not build properly using a config
    made up by CONFIG_SMP=n and CONFIG_HOTPLUG_CPU=n:

    CC arch/ia64/kernel/machine_kexec.o
    arch/ia64/kernel/machine_kexec.c: In function `machine_shutdown':
    arch/ia64/kernel/machine_kexec.c:77: warning: implicit declaration of function `cpu_down'
    AS arch/ia64/kernel/relocate_kernel.o
    CC arch/ia64/kernel/crash.o
    arch/ia64/kernel/crash.c: In function `kdump_cpu_freeze':
    arch/ia64/kernel/crash.c:139: warning: implicit declaration of function `ia64_jump_to_sal'
    arch/ia64/kernel/crash.c:139: error: `sal_boot_rendez_state' undeclared (first use in this function)
    arch/ia64/kernel/crash.c:139: error: (Each undeclared identifier is reported only once
    arch/ia64/kernel/crash.c:139: error: for each function it appears in.)
    arch/ia64/kernel/crash.c: At top level:
    arch/ia64/kernel/crash.c:84: warning: 'kdump_wait_cpu_freeze' defined but not used
    make[1]: *** [arch/ia64/kernel/crash.o] Error 1
    make: *** [arch/ia64/kernel] Error 2

    Signed-off-by: Magnus Damm <magnus@valinux.co.jp>
    Acked-by: Simon Horman <horms@verge.net.au>
    Acked-by: Jay Lan <jlan@sgi.com>
    Cc: Tony Luck <tony.luck@intel.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    arch/ia64/kernel/crash.c | 11 +++++++----
    arch/ia64/kernel/machine_kexec.c | 2 ++
    2 files changed, 9 insertions(+), 4 deletions(-)

    --- linux-2.6.20.1.orig/arch/ia64/kernel/crash.c
    +++ linux-2.6.20.1/arch/ia64/kernel/crash.c
    @@ -79,6 +79,7 @@ crash_save_this_cpu()
    final_note(buf);
    }

    +#ifdef CONFIG_SMP
    static int
    kdump_wait_cpu_freeze(void)
    {
    @@ -91,6 +92,7 @@ kdump_wait_cpu_freeze(void)
    }
    return 1;
    }
    +#endif

    void
    machine_crash_shutdown(struct pt_regs *pt)
    @@ -132,11 +134,12 @@ kdump_cpu_freeze(struct unw_frame_info *
    atomic_inc(&kdump_cpu_freezed);
    kdump_status[cpuid] = 1;
    mb();
    - if (cpuid == 0) {
    - for (;;)
    - cpu_relax();
    - } else
    +#ifdef CONFIG_HOTPLUG_CPU
    + if (cpuid != 0)
    ia64_jump_to_sal(&sal_boot_rendez_state[cpuid]);
    +#endif
    + for (;;)
    + cpu_relax();
    }

    static int
    --- linux-2.6.20.1.orig/arch/ia64/kernel/machine_kexec.c
    +++ linux-2.6.20.1/arch/ia64/kernel/machine_kexec.c
    @@ -70,12 +70,14 @@ void machine_kexec_cleanup(struct kimage

    void machine_shutdown(void)
    {
    +#ifdef CONFIG_HOTPLUG_CPU
    int cpu;

    for_each_online_cpu(cpu) {
    if (cpu != smp_processor_id())
    cpu_down(cpu);
    }
    +#endif
    kexec_disable_iosapic();
    }

    --
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-03-07 18:33    [W:0.061 / U:242.448 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site