linux-stable/arch
David S. Miller 0829491367 sparc64: Make sure %pil interrupts are enabled during hypervisor yield.
[ Upstream commit cb3042d609 ]

In arch_cpu_idle() we must enable %pil based interrupts before
potentially invoking the hypervisor cpu yield call.

As per the Hypervisor API documentation for cpu_yield:

	Interrupts which are blocked by some mechanism other that
	pstate.ie (for example %pil) are not guaranteed to cause
	a return from this service.

It seems that only first generation Niagara chips are hit by this
bug.  My best guess is that later chips implement this in hardware
and wake up anyways from %pil events, whereas in first generation
chips the yield is implemented completely in hypervisor code and
requires %pil to be enabled in order to wake properly from this
call.

Fixes: 87fa05aeb3 ("sparc: Use generic idle loop")
Reported-by: Fabio M. Di Nitto <fabbione@fabbione.net>
Reported-by: Jan Engelhardt <jengelh@inai.de>
Tested-by: Jan Engelhardt <jengelh@inai.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-04-22 16:49:22 -07:00
..
alpha alpha: fix broken network checksum 2014-02-06 11:34:09 -08:00
arc ARC: [nsimosci] Unbork console 2014-04-14 06:47:22 -07:00
arm ARM: 7941/2: Fix incorrect FDT initrd parameter override 2014-03-31 10:05:15 -07:00
arm64 arm64: mm: Add double logical invert to pte accessors 2014-03-23 21:44:20 -07:00
avr32 avr32: Makefile: add '-D__linux__' flag for gcc-4.4.7 use 2014-03-06 22:06:10 -08:00
blackfin Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-11-19 10:40:00 -08:00
c6x Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-11-19 10:40:00 -08:00
cris Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-11-19 10:40:00 -08:00
frv Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-11-19 10:40:00 -08:00
hexagon Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-11-19 10:40:00 -08:00
ia64 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-11-20 14:25:39 -08:00
m32r Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-11-19 10:40:00 -08:00
m68k m68k: Skip futex_atomic_cmpxchg_inatomic() test 2014-04-14 06:47:22 -07:00
metag Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-11-19 10:40:00 -08:00
microblaze Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-11-19 10:40:00 -08:00
mips MIPS: Fix build error seen in some configurations 2014-03-31 10:05:15 -07:00
mn10300 Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-11-19 10:40:00 -08:00
openrisc OpenRISC updates for 3.13 2013-11-15 14:26:38 -08:00
parisc parisc: fix cache-flushing 2014-02-06 11:34:09 -08:00
powerpc powerpc/powernv: Refactor PHB diag-data dump 2014-03-31 10:05:16 -07:00
s390 futex: Allow architectures to skip futex_atomic_cmpxchg_inatomic() test 2014-04-14 06:47:22 -07:00
score Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-11-19 10:40:00 -08:00
sh arch/sh/kernel/kgdb.c: add missing #include <linux/sched.h> 2014-02-13 13:55:27 -08:00
sparc sparc64: Make sure %pil interrupts are enabled during hypervisor yield. 2014-04-22 16:49:22 -07:00
tile tile: remove compat_sys_lookup_dcookie declaration to fix compile error 2014-02-13 13:55:31 -08:00
um um: Build always with -mcmodel=large on 64bit 2013-12-01 13:06:51 +01:00
unicore32 Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-11-19 10:40:00 -08:00
x86 x86: Adjust irq remapping quirk for older revisions of 5500/5520 chipsets 2014-04-22 16:49:20 -07:00
xtensa xtensa: introduce spill_registers_kernel macro 2014-03-06 22:06:28 -08:00
.gitignore
Kconfig kernel: remove CONFIG_USE_GENERIC_SMP_HELPERS 2013-11-15 09:32:22 +09:00