linux_old1/arch/powerpc/kernel
Suresh E. Warrier 8b91a25546 powerpc: Save/restore PPR for KVM hypercalls
The system call FLIH (first-level interrupt handler) at 0xc00
unconditionally sets hardware priority to medium. For hypercalls, this
means we lose guest OS priority. The front end (do_kvm_0x**) to the
KVM interrupt handler always assumes that PPR priority is saved in
PACA exception save area, so it copies this to the kvm_hstate
structure. For hypercalls, this would be the saved priority from any
previous exception. Eventually, the guest gets resumed with an
incorrect priority.

The fix is to save the PPR priority in PACA exception save area before
switching HMT priorities in the FLIH so that existing code described above
in the KVM interrupt handler can copy it from there into the VCPU's saved
context.

Signed-off-by: Suresh Warrier <warrier@linux.vnet.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
[mpe: Dropped HMT_MEDIUM_PPR_DISCARD and reworded comment]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2014-11-12 15:53:25 +11:00
..
vdso32 powerpc/booke64: Use SPRG7 for VDSO 2014-03-19 19:57:14 -05:00
vdso64 powerpc/booke64: Use SPRG7 for VDSO 2014-03-19 19:57:14 -05:00
.gitignore
Makefile powerpc: Separate ppc32 symbol exports into ppc_ksyms_32.c 2014-09-25 23:14:40 +10:00
align.c powerpc: Remove double braces in alignment code. 2014-11-10 09:59:32 +11:00
asm-offsets.c Here are the PPC and ARM changes for KVM, which I separated because 2014-08-07 11:35:30 -07:00
audit.c
btext.c powerpc/btext: Fix CONFIG_PPC_EARLY_DEBUG_BOOTX on ppc32 2013-08-27 16:01:23 +10:00
cacheinfo.c powerpc/pseries: Update dynamic cache nodes for suspend/resume operation 2014-03-07 15:54:49 +11:00
cacheinfo.h
compat_audit.c
cpu_setup_6xx.S
cpu_setup_44x.S
cpu_setup_fsl_booke.S powerpc/booke: Restrict SPE exception handlers to e200/e500 cores 2014-09-22 10:11:31 +02:00
cpu_setup_pa6t.S
cpu_setup_power.S powerpc/powernv: Enable POWER8 doorbell IPIs 2014-06-11 17:05:12 +10:00
cpu_setup_ppc970.S
cputable.c powerpc/booke: Restrict SPE exception handlers to e200/e500 cores 2014-09-22 10:11:31 +02:00
crash.c arch,powerpc: Convert smp_mb__*() 2014-04-18 14:20:41 +02:00
crash_dump.c powerpc: Remove superfluous bootmem includes 2014-11-10 09:59:26 +11:00
dbell.c powerpc: Replace __get_cpu_var uses 2014-11-03 12:12:32 +11:00
dma-iommu.c powerpc/iommu: Update the generic code to use dynamic iommu page sizes 2013-12-30 14:17:19 +11:00
dma-swiotlb.c powerpc/64: Limit ZONE_DMA32 to 4GiB in swiotlb_detect_4g() 2014-09-03 17:58:22 -05:00
dma.c powerpc: Only do dynamic DMA zone limits on platforms that need it 2014-10-17 09:21:44 +11:00
eeh.c powerpc/eeh: Don't collect logs on PE with blocked config space 2014-10-15 11:27:21 +11:00
eeh_cache.c powerpc/eeh: Replace pr_warning() with pr_warn() 2014-08-05 15:41:34 +10:00
eeh_dev.c powerpc/eeh: Replace pr_warning() with pr_warn() 2014-08-05 15:41:34 +10:00
eeh_driver.c powerpc/eeh: Rename flag EEH_PE_RESET to EEH_PE_CFG_BLOCKED 2014-10-15 11:27:18 +11:00
eeh_event.c powerpc/powernv: Fix killed EEH event 2014-06-11 17:04:33 +10:00
eeh_pe.c powerpc/eeh: Block PCI config access upon frozen PE 2014-10-15 11:27:20 +11:00
eeh_sysfs.c powerpc/eeh: Show hex prefix for PE state sysfs 2014-10-01 22:23:34 +10:00
entry_32.S powerpc/ftrace: Fix obsolete comment 2014-11-10 09:59:29 +11:00
entry_64.S powerpc/ftrace: simplify prepare_ftrace_return 2014-11-10 09:59:28 +11:00
epapr_hcalls.S powerpc: Add paravirt idle loop for 64-bit Book-E 2013-03-13 14:19:36 -05:00
epapr_paravirt.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2014-06-10 18:54:22 -07:00
exceptions-64e.S powerpc/booke: Revert SPE/AltiVec common defines for interrupt numbers 2014-09-22 10:11:31 +02:00
exceptions-64s.S powerpc: Save/restore PPR for KVM hypercalls 2014-11-12 15:53:25 +11:00
fadump.c powerpc/fadump: Fix endianess issues in firmware assisted dump handling 2014-10-30 16:52:46 +11:00
firmware.c
fpu.S powerpc: Don't corrupt transactional state when using FP/VMX in kernel 2014-01-15 13:59:11 +11:00
fsl_booke_entry_mapping.S powerpc: enable the relocatable support for the fsl booke 32bit kernel 2014-01-09 17:52:16 -06:00
ftrace.c powerpc/ftrace: simplify prepare_ftrace_return 2014-11-10 09:59:28 +11:00
head_8xx.S powerpc/8xx: Duplicate two insns instead of branching 2014-09-04 19:28:56 -05:00
head_32.S
head_40x.S powerpc: Remove check for CONFIG_SERIAL_TEXT_DEBUG 2014-06-11 16:31:21 +10:00
head_44x.S powerpc/ppc476: Disable BTAC 2014-08-13 15:13:42 +10:00
head_64.S Merge remote-tracking branch 'scott/next' into next 2014-08-05 14:13:41 +10:00
head_booke.h powerpc: Fix interrupt range check on debug exception 2013-05-02 10:31:01 +10:00
head_fsl_booke.S powerpc/booke: Revert SPE/AltiVec common defines for interrupt numbers 2014-09-22 10:11:31 +02:00
hw_breakpoint.c powerpc: Replace __get_cpu_var uses 2014-11-03 12:12:32 +11:00
ibmebus.c powerpc: make of_device_ids const 2014-09-25 23:14:46 +10:00
idle.c powerpc/idle: Convert use of typedef ctl_table to struct ctl_table 2013-07-01 11:10:35 +10:00
idle_6xx.S
idle_book3e.S powerpc: No need to use dot symbols when branching to a function 2014-04-23 10:05:16 +10:00
idle_e500.S
idle_power4.S powerpc: No need to use dot symbols when branching to a function 2014-04-23 10:05:16 +10:00
idle_power7.S powerpc/powernv: Don't call generic code on offline cpus 2014-09-25 23:14:50 +10:00
io-workarounds.c powerpc: Better split CONFIG_PPC_INDIRECT_PIO and CONFIG_PPC_INDIRECT_MMIO 2013-08-14 14:57:50 +10:00
io.c powerpc/powernv: Add PIO accessors for Power8 LPC bus 2013-08-14 14:58:08 +10:00
iomap.c powerpc/kerenl: Enable EEH for IO accessors 2014-06-24 12:43:13 +10:00
iommu.c powerpc: Replace __get_cpu_var uses 2014-11-03 12:12:32 +11:00
irq.c powerpc: Remove superfluous bootmem includes 2014-11-10 09:59:26 +11:00
isa-bridge.c POWERPC: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
jump_label.c
kgdb.c powerpc: Replace __get_cpu_var uses 2014-11-03 12:12:32 +11:00
kprobes.c powerpc: Replace __get_cpu_var uses 2014-11-03 12:12:32 +11:00
kvm.c At over 200 commits, covering almost all supported architectures, this 2014-06-04 08:47:12 -07:00
kvm_emul.S
l2cr_6xx.S
legacy_serial.c powerpc: make of_device_ids const 2014-09-25 23:14:46 +10:00
machine_kexec.c powerpc: Fix endian issues in kexec and crash dump code 2014-02-11 11:24:52 +11:00
machine_kexec_32.c
machine_kexec_64.c powerpc, kexec: Fix "Processor X is stuck" issue during kexec from ST mode 2014-05-28 13:24:26 +10:00
mce.c powerpc: Replace __get_cpu_var uses 2014-11-03 12:12:32 +11:00
mce_power.c powerpc/book3s: Recover from MC in sapphire on SCOM read via MMIO. 2014-03-07 15:52:10 +11:00
misc.S powerpc: Rename __get_SP() to current_stack_pointer() 2014-10-15 11:23:20 +11:00
misc_32.S powerpc: Set the correct ksp_limit on ppc32 when switching to irq stack 2014-02-17 11:19:34 +11:00
misc_64.S powerpc: module: handle MODVERSION for .TOC. 2014-04-23 10:05:28 +10:00
module.c powerpc: Move local setup.h declarations to arch includes 2013-10-30 16:00:31 +11:00
module_32.c powerpc: Use pr_fmt in module loader code 2014-10-02 17:33:54 +10:00
module_64.c powerpc: Use pr_fmt in module loader code 2014-10-02 17:33:54 +10:00
msi.c PCI/MSI/PPC: Remove arch_msi_check_device() 2014-10-01 12:21:14 -06:00
nvram_64.c powerpc: Make a bunch of things static 2014-09-25 23:14:41 +10:00
of_platform.c powerpc: make of_device_ids const 2014-09-25 23:14:46 +10:00
paca.c KVM: PPC: Book3S PR: Rework SLB switching code 2014-05-30 14:26:30 +02:00
pci-common.c powerpc/pci: Quieten unset I/O resource warning 2014-11-05 21:00:46 +11:00
pci-hotplug.c powerpc/PCI: Use pci_is_bridge() to simplify code 2014-05-27 14:57:36 -06:00
pci_32.c powerpc/pci: Support per-aperture memory offset 2013-05-06 13:40:40 +10:00
pci_64.c powerpc: Remove superfluous bootmem includes 2014-11-10 09:59:26 +11:00
pci_dn.c powerpc: Make PCI device node device tree accesses endian safe 2013-08-14 15:33:31 +10:00
pci_of_scan.c powerpc: Make a bunch of things static 2014-09-25 23:14:41 +10:00
pmc.c
ppc32.h powerpc: switch to generic old sigaction() 2013-02-03 18:16:10 -05:00
ppc_ksyms.c powerpc: Rename __get_SP() to current_stack_pointer() 2014-10-15 11:23:20 +11:00
ppc_ksyms_32.c powerpc: Separate ppc32 symbol exports into ppc_ksyms_32.c 2014-09-25 23:14:40 +10:00
ppc_save_regs.S
proc_powerpc.c proc_powerpc: switch to fixed_size_llseek() 2013-06-29 12:57:50 +04:00
process.c powerpc/ftrace: Remove mod_return_to_handler 2014-11-10 09:59:27 +11:00
prom.c powerpc: Remove some old bootmem related comments 2014-11-10 09:59:25 +11:00
prom_init.c powerpc/powernv: Remove OPAL v1 takeover 2014-06-25 13:10:47 +10:00
prom_init_check.sh powerpc: Simplify symbol check in prom_init_check.sh 2014-09-25 23:14:46 +10:00
prom_parse.c powerpc: of_parse_dma_window should take a __be32 *dma_window 2013-08-14 15:33:26 +10:00
ptrace.c Merge git://git.infradead.org/users/eparis/audit 2014-10-19 16:25:56 -07:00
ptrace32.c powerpc: move debug registers in a structure 2013-10-18 18:44:49 -05:00
reloc_32.S powerpc: Don't flush/invalidate the d/icache for an unknown relocation type 2013-07-01 11:10:34 +10:00
reloc_64.S powerpc: Align p_dyn, p_rela and p_st symbols 2014-03-07 13:50:19 +11:00
rtas-proc.c powerpc: LLVM complains about forward declaration of struct rtas_sensors 2014-11-10 09:59:32 +11:00
rtas-rtc.c
rtas.c powerpc: Remove some old bootmem related comments 2014-11-10 09:59:25 +11:00
rtas_flash.c powerpc: Fix endianness of flash_block_list in rtas_flash 2014-07-28 11:30:54 +10:00
rtas_pci.c powerpc: Remove superfluous bootmem includes 2014-11-10 09:59:26 +11:00
rtasd.c powerpc: Make a bunch of things static 2014-09-25 23:14:41 +10:00
setup-common.c powerpc: Convert power off logic to pm_power_off 2014-11-03 12:12:51 +11:00
setup_32.c powerpc: Remove unused vgacon_remap_base & fix build break 2014-11-10 09:59:31 +11:00
setup_64.c powerpc: Move sparse_init() into initmem_init 2014-11-10 09:59:26 +11:00
signal.c powerpc: Use sigsp() 2014-08-06 13:04:32 +02:00
signal.h powerpc: Use get_signal() signal_setup_done() 2014-08-06 13:03:09 +02:00
signal_32.c powerpc: Use sigsp() 2014-08-06 13:04:32 +02:00
signal_64.c powerpc: Use sigsp() 2014-08-06 13:04:32 +02:00
smp-tbsync.c powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
smp.c powerpc: Replace __get_cpu_var uses 2014-11-03 12:12:32 +11:00
stacktrace.c powerpc: Rename __get_SP() to current_stack_pointer() 2014-10-15 11:23:20 +11:00
suspend.c nosave: consolidate __nosave_{begin,end} in <asm/sections.h> 2014-10-09 22:26:04 -04:00
swsusp.c
swsusp_32.S
swsusp_64.c
swsusp_asm64.S powerpc: Only save/restore SDR1 if in hypervisor mode 2013-10-31 12:37:29 +11:00
swsusp_booke.S powerpc/fsl-booke: Use SPRN_SPRGn rather than mfsprg/mtsprg 2014-01-07 19:06:03 -06:00
sys_ppc32.c unify compat fanotify_mark(2), switch to COMPAT_SYSCALL_DEFINE 2013-05-09 13:46:38 -04:00
syscalls.c powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
sysfs.c powerpc: Replace __get_cpu_var uses 2014-11-03 12:12:32 +11:00
systbl.S powerpc: Use standard macros for sys_sigpending() & sys_old_getrlimit() 2014-07-28 14:09:23 +10:00
systbl_chk.c
systbl_chk.sh
tau_6xx.c
time.c powerpc: Replace __get_cpu_var uses 2014-11-03 12:12:32 +11:00
tm.S powerpc: Fix regression of per-CPU DSCR setting 2014-05-28 13:35:40 +10:00
traps.c powerpc: Replace __get_cpu_var uses 2014-11-03 12:12:32 +11:00
udbg.c powerpc: Remove platforms/wsp and associated pieces 2014-06-11 16:35:38 +10:00
udbg_16550.c powerpc: Fix bad NULL pointer check in udbg_uart_getc_poll() 2014-11-12 13:47:20 +11:00
uprobes.c uprobes/powerpc: Kill arch_uprobe->ainsn 2013-11-20 16:31:01 +01:00
vdso.c powerpc: Remove superfluous bootmem includes 2014-11-10 09:59:26 +11:00
vecemu.c powerpc: Put FP/VSX and VR state into structures 2013-10-11 17:26:49 +11:00
vector.S powerpc: Don't corrupt transactional state when using FP/VMX in kernel 2014-01-15 13:59:11 +11:00
vio.c arch/powerpc: replace obsolete strict_strto* calls 2014-08-08 15:57:28 -07:00
vmlinux.lds.S powerpc/modules: Module CRC relocation fix causes perf issues 2013-07-24 14:18:43 +10:00