diff options
Diffstat (limited to 'arch/powerpc/kernel/machine_kexec_64.c')
-rw-r--r-- | arch/powerpc/kernel/machine_kexec_64.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/machine_kexec_64.c b/arch/powerpc/kernel/machine_kexec_64.c index a168514d860..4bd8b4f5e70 100644 --- a/arch/powerpc/kernel/machine_kexec_64.c +++ b/arch/powerpc/kernel/machine_kexec_64.c | |||
@@ -312,11 +312,24 @@ static struct property kernel_end_prop = { | |||
312 | static void __init export_htab_values(void) | 312 | static void __init export_htab_values(void) |
313 | { | 313 | { |
314 | struct device_node *node; | 314 | struct device_node *node; |
315 | struct property *prop; | ||
315 | 316 | ||
316 | node = of_find_node_by_path("/chosen"); | 317 | node = of_find_node_by_path("/chosen"); |
317 | if (!node) | 318 | if (!node) |
318 | return; | 319 | return; |
319 | 320 | ||
321 | /* remove any stale propertys so ours can be found */ | ||
322 | prop = of_find_property(node, kernel_end_prop.name, NULL); | ||
323 | if (prop) | ||
324 | prom_remove_property(node, prop); | ||
325 | prop = of_find_property(node, htab_base_prop.name, NULL); | ||
326 | if (prop) | ||
327 | prom_remove_property(node, prop); | ||
328 | prop = of_find_property(node, htab_size_prop.name, NULL); | ||
329 | if (prop) | ||
330 | prom_remove_property(node, prop); | ||
331 | |||
332 | /* information needed by userspace when using default_machine_kexec */ | ||
320 | kernel_end = __pa(_end); | 333 | kernel_end = __pa(_end); |
321 | prom_add_property(node, &kernel_end_prop); | 334 | prom_add_property(node, &kernel_end_prop); |
322 | 335 | ||