diff options
Diffstat (limited to 'arch/powerpc/kernel/machine_kexec_64.c')
| -rw-r--r-- | arch/powerpc/kernel/machine_kexec_64.c | 10 | 
1 files changed, 6 insertions, 4 deletions
diff --git a/arch/powerpc/kernel/machine_kexec_64.c b/arch/powerpc/kernel/machine_kexec_64.c index 611acdf3009..879b3aacac3 100644 --- a/arch/powerpc/kernel/machine_kexec_64.c +++ b/arch/powerpc/kernel/machine_kexec_64.c @@ -237,7 +237,7 @@ static void wake_offline_cpus(void)  		if (!cpu_online(cpu)) {  			printk(KERN_INFO "kexec: Waking offline cpu %d.\n",  			       cpu); -			cpu_up(cpu); +			WARN_ON(cpu_up(cpu));  		}  	}  } @@ -312,7 +312,7 @@ static union thread_union kexec_stack __init_task_data =   */  struct paca_struct kexec_paca; -/* Our assembly helper, in kexec_stub.S */ +/* Our assembly helper, in misc_64.S */  extern void kexec_sequence(void *newstack, unsigned long start,  			   void *image, void *control,  			   void (*clear_all)(void)) __noreturn; @@ -369,6 +369,7 @@ void default_machine_kexec(struct kimage *image)  /* Values we need to export to the second kernel via the device tree. */  static unsigned long htab_base; +static unsigned long htab_size;  static struct property htab_base_prop = {  	.name = "linux,htab-base", @@ -379,7 +380,7 @@ static struct property htab_base_prop = {  static struct property htab_size_prop = {  	.name = "linux,htab-size",  	.length = sizeof(unsigned long), -	.value = &htab_size_bytes, +	.value = &htab_size,  };  static int __init export_htab_values(void) @@ -403,8 +404,9 @@ static int __init export_htab_values(void)  	if (prop)  		of_remove_property(node, prop); -	htab_base = __pa(htab_address); +	htab_base = cpu_to_be64(__pa(htab_address));  	of_add_property(node, &htab_base_prop); +	htab_size = cpu_to_be64(htab_size_bytes);  	of_add_property(node, &htab_size_prop);  	of_node_put(node);  | 
