linux/arch/powerpc/kernel
Paul Mackerras 18aa0da33e powerpc: Don't try to set LPCR unless we're in hypervisor mode
Commit 8f619b5429 ("powerpc/ppc64: Do not turn AIL (reloc-on
interrupts) too early") added code to set the AIL bit in the LPCR
without checking whether the kernel is running in hypervisor mode.  The
result is that when the kernel is running as a guest (i.e., under
PowerKVM or PowerVM), the processor takes a privileged instruction
interrupt at that point, causing a panic.  The visible result is that
the kernel hangs after printing "returning from prom_init".

This fixes it by checking for hypervisor mode being available before
setting LPCR.  If we are not in hypervisor mode, we enable relocation-on
interrupts later in pSeries_setup_arch using the H_SET_MODE hcall.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2014-04-12 17:58:48 -07:00
..
vdso32
vdso64
.gitignore
Makefile
align.c powerpc: Add lq/stq emulation 2014-04-09 12:53:28 +10:00
asm-offsets.c
audit.c
btext.c
cacheinfo.c
cacheinfo.h
compat_audit.c
cpu_setup_6xx.S
cpu_setup_44x.S
cpu_setup_a2.S
cpu_setup_fsl_booke.S
cpu_setup_pa6t.S
cpu_setup_power.S powerpc/ppc64: Do not turn AIL (reloc-on interrupts) too early 2014-04-07 10:33:15 +10:00
cpu_setup_ppc970.S
cputable.c
crash.c
crash_dump.c
dbell.c
dma-iommu.c
dma-swiotlb.c
dma.c
eeh.c
eeh_cache.c
eeh_dev.c
eeh_driver.c
eeh_event.c
eeh_pe.c
eeh_sysfs.c
entry_32.S
entry_64.S
epapr_hcalls.S
epapr_paravirt.c
exceptions-64e.S
exceptions-64s.S powerpc: Remove dead code in sycall entry 2014-04-09 12:53:11 +10:00
fadump.c
firmware.c
fpu.S
fsl_booke_entry_mapping.S
ftrace.c Most of the changes were largely clean ups, and some documentation. 2014-04-03 10:26:31 -07:00
head_8xx.S
head_32.S
head_40x.S
head_44x.S
head_64.S
head_booke.h
head_fsl_booke.S
hw_breakpoint.c
ibmebus.c
idle.c
idle_6xx.S
idle_book3e.S
idle_e500.S
idle_power4.S
idle_power7.S
io-workarounds.c
io.c
iomap.c
iommu.c
irq.c
isa-bridge.c
jump_label.c
kgdb.c
kprobes.c
kvm.c
kvm_emul.S
l2cr_6xx.S
legacy_serial.c
machine_kexec.c
machine_kexec_32.c
machine_kexec_64.c
mce.c
mce_power.c
misc.S
misc_32.S
misc_64.S
module.c
module_32.c
module_64.c
msi.c
nvram_64.c
of_platform.c
paca.c powerpc/ppc64: Gracefully handle early interrupts 2014-04-07 10:33:15 +10:00
pci-common.c
pci-hotplug.c
pci_32.c
pci_64.c
pci_dn.c
pci_of_scan.c
pmc.c
ppc32.h
ppc_ksyms.c
ppc_save_regs.S
proc_powerpc.c
process.c powerpc/tm: Disable IRQ in tm_recheckpoint 2014-04-07 10:33:13 +10:00
prom.c powerpc/prom: early_init_dt_scan_cpus() updates cpu features only once 2014-04-07 10:33:14 +10:00
prom_init.c
prom_init_check.sh
prom_parse.c
ptrace.c
ptrace32.c
reloc_32.S
reloc_64.S
rtas-proc.c
rtas-rtc.c
rtas.c powerpc/le: Enable RTAS events support 2014-04-07 10:33:12 +10:00
rtas_flash.c
rtas_pci.c
rtasd.c powerpc/le: Enable RTAS events support 2014-04-07 10:33:12 +10:00
setup-common.c powerpc: Make boot_cpuid common between 32 and 64-bit 2014-04-07 10:33:14 +10:00
setup_32.c powerpc: Make boot_cpuid common between 32 and 64-bit 2014-04-07 10:33:14 +10:00
setup_64.c powerpc: Don't try to set LPCR unless we're in hypervisor mode 2014-04-12 17:58:48 -07:00
signal.c
signal.h
signal_32.c powerpc/tm: Disable IRQ in tm_recheckpoint 2014-04-07 10:33:13 +10:00
signal_64.c powerpc/tm: Disable IRQ in tm_recheckpoint 2014-04-07 10:33:13 +10:00
smp-tbsync.c
smp.c
stacktrace.c
suspend.c
swsusp.c
swsusp_32.S
swsusp_64.c
swsusp_asm64.S
swsusp_booke.S
sys_ppc32.c
syscalls.c
sysfs.c
systbl.S
systbl_chk.c
systbl_chk.sh
tau_6xx.c
time.c
tm.S powerpc/tm: Disable IRQ in tm_recheckpoint 2014-04-07 10:33:13 +10:00
traps.c powerpc: Add lq/stq emulation 2014-04-09 12:53:28 +10:00
udbg.c
udbg_16550.c
uprobes.c
vdso.c
vecemu.c
vector.S
vio.c
vmlinux.lds.S