This change is needed in order to allow cpus to be onlined after
boot. This used to work but the declaration of
pseries_secondary_smp_init in this file was changed in Ben's big
cleanup patch a while back, so the cpu would start at a bad address.
Signed-off-by: Nathan Lynch <nathanl@austin.ibm.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
static inline int __devinit smp_startup_cpu(unsigned int lcpu)
{
int status;
- unsigned long start_here = __pa(pseries_secondary_smp_init);
+ unsigned long start_here = __pa((u32)*((unsigned long *)
+ pseries_secondary_smp_init));
unsigned int pcpu;
/* At boot time the cpus are already spinning in hold