Commit 86969cf7 authored by Benjamin Herrenschmidt's avatar Benjamin Herrenschmidt

Merge branch 'merge' into next

Merge the binutils and kexec fixes.
parents b9d80095 011e4b02
...@@ -155,7 +155,9 @@ endif ...@@ -155,7 +155,9 @@ endif
CFLAGS-$(CONFIG_TUNE_CELL) += $(call cc-option,-mtune=cell) CFLAGS-$(CONFIG_TUNE_CELL) += $(call cc-option,-mtune=cell)
KBUILD_CPPFLAGS += -Iarch/$(ARCH) asinstr := $(call as-instr,lis 9$(comma)foo@high,-DHAVE_AS_ATHIGH=1)
KBUILD_CPPFLAGS += -Iarch/$(ARCH) $(asinstr)
KBUILD_AFLAGS += -Iarch/$(ARCH) $(AFLAGS-y) KBUILD_AFLAGS += -Iarch/$(ARCH) $(AFLAGS-y)
KBUILD_CFLAGS += -msoft-float -pipe -Iarch/$(ARCH) $(CFLAGS-y) KBUILD_CFLAGS += -msoft-float -pipe -Iarch/$(ARCH) $(CFLAGS-y)
CPP = $(CC) -E $(KBUILD_CFLAGS) CPP = $(CC) -E $(KBUILD_CFLAGS)
......
...@@ -322,11 +322,16 @@ GLUE(.,name): ...@@ -322,11 +322,16 @@ GLUE(.,name):
addi reg,reg,(name - 0b)@l; addi reg,reg,(name - 0b)@l;
#ifdef __powerpc64__ #ifdef __powerpc64__
#ifdef HAVE_AS_ATHIGH
#define __AS_ATHIGH high
#else
#define __AS_ATHIGH h
#endif
#define LOAD_REG_IMMEDIATE(reg,expr) \ #define LOAD_REG_IMMEDIATE(reg,expr) \
lis reg,(expr)@highest; \ lis reg,(expr)@highest; \
ori reg,reg,(expr)@higher; \ ori reg,reg,(expr)@higher; \
rldicr reg,reg,32,31; \ rldicr reg,reg,32,31; \
oris reg,reg,(expr)@h; \ oris reg,reg,(expr)@__AS_ATHIGH; \
ori reg,reg,(expr)@l; ori reg,reg,(expr)@l;
#define LOAD_REG_ADDR(reg,name) \ #define LOAD_REG_ADDR(reg,name) \
......
...@@ -237,7 +237,7 @@ static void wake_offline_cpus(void) ...@@ -237,7 +237,7 @@ static void wake_offline_cpus(void)
if (!cpu_online(cpu)) { if (!cpu_online(cpu)) {
printk(KERN_INFO "kexec: Waking offline cpu %d.\n", printk(KERN_INFO "kexec: Waking offline cpu %d.\n",
cpu); cpu);
cpu_up(cpu); WARN_ON(cpu_up(cpu));
} }
} }
} }
......
...@@ -1683,6 +1683,14 @@ int kernel_kexec(void) ...@@ -1683,6 +1683,14 @@ int kernel_kexec(void)
kexec_in_progress = true; kexec_in_progress = true;
kernel_restart_prepare(NULL); kernel_restart_prepare(NULL);
migrate_to_reboot_cpu(); migrate_to_reboot_cpu();
/*
* migrate_to_reboot_cpu() disables CPU hotplug assuming that
* no further code needs to use CPU hotplug (which is true in
* the reboot case). However, the kexec path depends on using
* CPU hotplug again; so re-enable it here.
*/
cpu_hotplug_enable();
printk(KERN_EMERG "Starting new kernel\n"); printk(KERN_EMERG "Starting new kernel\n");
machine_shutdown(); machine_shutdown();
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment