Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc

Pull two powerpc fixes from Ben Herrenschmidt:
"Here's a pair of powerpc fixes for 3.15 which are also going to
stable.

One's a fix for building with newer binutils (the problem currently
only affects the BookE kernels but the affected macro might come back
into use on BookS platforms at any time). Unfortunately, the binutils
maintainer did a backward incompatible change to a construct that we
use so we have to add Makefile check.

The other one is a fix for CPUs getting stuck in kexec when running
single threaded. Since we routinely use kexec on power (including in
our newer bootloaders), I deemed that important enough"

* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
powerpc, kexec: Fix "Processor X is stuck" issue during kexec from ST mode
powerpc: Fix 64 bit builds with binutils 2.24

+18 -3
+3 -1
arch/powerpc/Makefile
··· 150 150 151 151 CFLAGS-$(CONFIG_TUNE_CELL) += $(call cc-option,-mtune=cell) 152 152 153 - KBUILD_CPPFLAGS += -Iarch/$(ARCH) 153 + asinstr := $(call as-instr,lis 9$(comma)foo@high,-DHAVE_AS_ATHIGH=1) 154 + 155 + KBUILD_CPPFLAGS += -Iarch/$(ARCH) $(asinstr) 154 156 KBUILD_AFLAGS += -Iarch/$(ARCH) 155 157 KBUILD_CFLAGS += -msoft-float -pipe -Iarch/$(ARCH) $(CFLAGS-y) 156 158 CPP = $(CC) -E $(KBUILD_CFLAGS)
+6 -1
arch/powerpc/include/asm/ppc_asm.h
··· 318 318 addi reg,reg,(name - 0b)@l; 319 319 320 320 #ifdef __powerpc64__ 321 + #ifdef HAVE_AS_ATHIGH 322 + #define __AS_ATHIGH high 323 + #else 324 + #define __AS_ATHIGH h 325 + #endif 321 326 #define LOAD_REG_IMMEDIATE(reg,expr) \ 322 327 lis reg,(expr)@highest; \ 323 328 ori reg,reg,(expr)@higher; \ 324 329 rldicr reg,reg,32,31; \ 325 - oris reg,reg,(expr)@h; \ 330 + oris reg,reg,(expr)@__AS_ATHIGH; \ 326 331 ori reg,reg,(expr)@l; 327 332 328 333 #define LOAD_REG_ADDR(reg,name) \
+1 -1
arch/powerpc/kernel/machine_kexec_64.c
··· 237 237 if (!cpu_online(cpu)) { 238 238 printk(KERN_INFO "kexec: Waking offline cpu %d.\n", 239 239 cpu); 240 - cpu_up(cpu); 240 + WARN_ON(cpu_up(cpu)); 241 241 } 242 242 } 243 243 }
+8
kernel/kexec.c
··· 1683 1683 kexec_in_progress = true; 1684 1684 kernel_restart_prepare(NULL); 1685 1685 migrate_to_reboot_cpu(); 1686 + 1687 + /* 1688 + * migrate_to_reboot_cpu() disables CPU hotplug assuming that 1689 + * no further code needs to use CPU hotplug (which is true in 1690 + * the reboot case). However, the kexec path depends on using 1691 + * CPU hotplug again; so re-enable it here. 1692 + */ 1693 + cpu_hotplug_enable(); 1686 1694 printk(KERN_EMERG "Starting new kernel\n"); 1687 1695 machine_shutdown(); 1688 1696 }