Skip to content

Commit

Permalink
[POWERPC] Wrap cpu_die() with CONFIG_HOTPLUG_CPU
Browse files Browse the repository at this point in the history
Per email discussion, it appears that rtas_stop_self()
and pSeries_mach_cpu_die() should not be compiled if
CONFIG_HOTPLUG_CPU is not defined. This patch adds
#ifdefs around these bits of code.

Signed-off-by: Linas Vepstas <linas@austin.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
  • Loading branch information
Linas Vepstas authored and Paul Mackerras committed Dec 4, 2006
1 parent 5873c9b commit 088df4d
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 4 deletions.
5 changes: 3 additions & 2 deletions arch/powerpc/kernel/rtas.c
Original file line number Diff line number Diff line change
Expand Up @@ -810,9 +810,9 @@ asmlinkage int ppc_rtas(struct rtas_args __user *uargs)
return 0;
}

#ifdef CONFIG_HOTPLUG_CPU
/* This version can't take the spinlock, because it never returns */

struct rtas_args rtas_stop_self_args = {
static struct rtas_args rtas_stop_self_args = {
/* The token is initialized for real in setup_system() */
.token = RTAS_UNKNOWN_SERVICE,
.nargs = 0,
Expand All @@ -834,6 +834,7 @@ void rtas_stop_self(void)

panic("Alas, I survived.\n");
}
#endif

/*
* Call early during boot, before mem init or bootmem, to retrieve the RTAS
Expand Down
4 changes: 4 additions & 0 deletions arch/powerpc/platforms/pseries/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -347,6 +347,7 @@ static int __init pSeries_init_panel(void)
}
arch_initcall(pSeries_init_panel);

#ifdef CONFIG_HOTPLUG_CPU
static void pSeries_mach_cpu_die(void)
{
local_irq_disable();
Expand All @@ -357,6 +358,9 @@ static void pSeries_mach_cpu_die(void)
BUG();
for(;;);
}
#else
#define pSeries_mach_cpu_die NULL
#endif

static int pseries_set_dabr(unsigned long dabr)
{
Expand Down
2 changes: 0 additions & 2 deletions include/asm-powerpc/rtas.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,6 @@ struct rtas_args {
rtas_arg_t *rets; /* Pointer to return values in args[]. */
};

extern struct rtas_args rtas_stop_self_args;

struct rtas_t {
unsigned long entry; /* physical address pointer */
unsigned long base; /* physical address pointer */
Expand Down

0 comments on commit 088df4d

Please sign in to comment.