linux/arch/powerpc/kernel
Paul Mackerras 860aed25a1 powerpc/time: Sanity check of decrementer expiration is necessary
This reverts 68568add2c ("powerpc/time: Remove unnecessary sanity check
of decrementer expiration").  We do need to check whether we have reached
the expiration time of the next event, because we sometimes get an early
decrementer interrupt, most notably when we set the decrementer to 1 in
arch_irq_work_raise().  The effect of not having the sanity check is that
if timer_interrupt() gets called early, we leave the decrementer set to
its maximum value, which means we then don't get any more decrementer
interrupts for about 4 seconds (or longer, depending on timebase
frequency).  I saw these pauses as a consequence of getting a stray
hypervisor decrementer interrupt left over from exiting a KVM guest.

This isn't quite a straight revert because of changes to the surrounding
code, but it restores the same algorithm as was previously used.

Cc: stable@vger.kernel.org
Acked-by: Anton Blanchard <anton@samba.org>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2012-06-08 14:07:35 +10:00
..
vdso32 Fix common misspellings 2011-03-31 11:26:23 -03:00
vdso64 Fix common misspellings 2011-03-31 11:26:23 -03:00
.gitignore
align.c Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
asm-offsets.c Merge branch 'next' of git://git.kernel.org/pub/scm/virt/kvm/kvm 2012-05-24 16:17:30 -07:00
audit.c
btext.c powerpc: various straight conversions from module.h --> export.h 2011-10-31 19:30:44 -04:00
cacheinfo.c cpu: convert 'cpu' and 'machinecheck' sysdev_class to a regular subsystem 2011-12-21 14:29:42 -08:00
cacheinfo.h
clock.c powerpc: various straight conversions from module.h --> export.h 2011-10-31 19:30:44 -04:00
compat_audit.c
cpu_setup_6xx.S powerpc: Fix some 6xx/7xxx CPU setup functions 2011-02-07 12:57:11 +11:00
cpu_setup_44x.S
cpu_setup_a2.S powerpc/book3e: Add ICSWX/ACOP support to Book3e cores like A2 2011-11-25 14:11:28 +11:00
cpu_setup_fsl_booke.S KVM: PPC: e500mc support 2012-04-08 12:54:33 +03:00
cpu_setup_pa6t.S
cpu_setup_power7.S powerpc, KVM: Split HVMODE_206 cpu feature bit into separate HV and architecture bits 2011-07-12 13:16:58 +03:00
cpu_setup_ppc970.S powerpc, KVM: Split HVMODE_206 cpu feature bit into separate HV and architecture bits 2011-07-12 13:16:58 +03:00
cputable.c Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
crash.c Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
crash_dump.c powerpc: Rename mapping based RELOCATABLE to DYNAMIC_MEMSTART for BookE 2011-12-20 10:20:19 -05:00
dbell.c powerpc: Rework lazy-interrupt handling 2012-03-09 13:25:06 +11:00
dma-iommu.c PowerPC: adapt for dma_map_ops changes 2012-03-28 16:36:33 +02:00
dma-swiotlb.c PowerPC: adapt for dma_map_ops changes 2012-03-28 16:36:33 +02:00
dma.c PowerPC: adapt for dma_map_ops changes 2012-03-28 16:36:33 +02:00
entry_32.S powerpc: Fix page fault with lockdep regression 2012-04-10 17:21:35 +10:00
entry_64.S Merge branch 'merge' into next 2012-05-14 10:19:22 +10:00
exceptions-64e.S powerpc: Rework lazy-interrupt handling 2012-03-09 13:25:06 +11:00
exceptions-64s.S Merge branch 'next' of git://git.kernel.org/pub/scm/virt/kvm/kvm 2012-05-24 16:17:30 -07:00
fadump.c powerpc: Fix fallout from system.h split up 2012-04-02 14:00:03 +10:00
firmware.c powerpc: fix implicit use of cache.h in kernel/firmware.c 2011-10-31 19:30:41 -04:00
fpu.S powerpc: Remove second definition of STACK_FRAME_OVERHEAD 2010-11-29 15:48:23 +11:00
fsl_booke_entry_mapping.S
ftrace.c powerpc/ftrace: Implement raw syscall tracepoints on PowerPC 2011-05-26 13:38:57 +10:00
head_8xx.S powerpc: Call do_page_fault() with interrupts off 2012-03-09 10:55:08 +11:00
head_32.S powerpc: Call do_page_fault() with interrupts off 2012-03-09 10:55:08 +11:00
head_40x.S powerpc: Call do_page_fault() with interrupts off 2012-03-09 10:55:08 +11:00
head_44x.S Merge branch 'next' of git://git.kernel.org/pub/scm/virt/kvm/kvm 2012-05-24 16:17:30 -07:00
head_64.S powerpc: Rework lazy-interrupt handling 2012-03-09 13:25:06 +11:00
head_booke.h KVM: PPC: booke: category E.HV (GS-mode) support 2012-04-08 12:51:19 +03:00
head_fsl_booke.S Merge branch 'next' of git://git.kernel.org/pub/scm/virt/kvm/kvm 2012-05-24 16:17:30 -07:00
hw_breakpoint.c powerpc: remove non-required uses of include <linux/module.h> 2011-10-31 19:30:44 -04:00
ibmebus.c Merge branch 'for-linus' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping 2012-04-04 17:13:43 -07:00
idle.c powerpc: Remove unused cpu_idle_wait() 2012-05-08 12:35:07 +02:00
idle_6xx.S
idle_book3e.S powerpc: Rework lazy-interrupt handling 2012-03-09 13:25:06 +11:00
idle_e500.S powerpc: e500mc: Fix: use CONFIG_PPC_E500MC in idle_e500.S 2011-10-11 23:23:24 -05:00
idle_power4.S powerpc: Fix power4/970 idle code regression with lockdep 2012-03-16 09:28:17 +11:00
idle_power7.S KVM: PPC: Book3S HV: Make secondary threads more robust against stray IPIs 2012-04-08 14:01:20 +03:00
io-workarounds.c powerpc: io-workarounds.c was implicitly getting init_mm 2011-10-31 19:30:37 -04:00
io.c powerpc: various straight conversions from module.h --> export.h 2011-10-31 19:30:44 -04:00
iomap.c powerpc: switch to GENERIC_PCI_IOMAP 2011-11-28 21:13:18 +02:00
iommu.c fadump: Register for firmware assisted dump. 2012-02-23 10:50:01 +11:00
irq.c powerpc: Fix irq distribution 2012-05-22 14:38:26 +10:00
isa-bridge.c powerpc: Remove FW_FEATURE ISERIES from arch code 2012-03-21 11:16:11 +11:00
jump_label.c powerpc: Fix build breakage in jump_label.c 2011-11-16 14:25:19 +11:00
kgdb.c powerpc: Fix fallout from system.h split up 2012-04-02 14:00:03 +10:00
kprobes.c Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
kvm.c KVM: PPC: Avoid patching paravirt template code 2012-03-05 14:52:34 +02:00
kvm_emul.S KVM: PPC: Avoid patching paravirt template code 2012-03-05 14:52:34 +02:00
l2cr_6xx.S Fix common misspellings 2011-03-31 11:26:23 -03:00
legacy_serial.c powerpc: Fix build on some non-freescale platforms 2012-01-25 13:33:22 +11:00
lparcfg.c Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
machine_kexec.c powerpc/irqdomain: Fix broken NR_IRQ references 2012-04-30 10:45:26 +10:00
machine_kexec_32.c treewide: convert uses of ATTRIB_NORETURN to __noreturn 2012-01-12 20:13:03 -08:00
machine_kexec_64.c treewide: convert uses of ATTRIB_NORETURN to __noreturn 2012-01-12 20:13:03 -08:00
Makefile powerpc: Use generic init_task 2012-05-05 13:00:25 +02:00
misc.S powerpc: Remove legacy iSeries bits from assembly files 2012-03-09 10:54:59 +11:00
misc_32.S powerpc/47x: Kernel support for KEXEC 2012-05-03 08:40:23 -04:00
misc_64.S powerpc/maple: Enable scom access functions on Maple 2011-06-29 17:48:20 +10:00
module.c powerpc: remove non-required uses of include <linux/module.h> 2011-10-31 19:30:44 -04:00
module_32.c modules: make arch's use default loader hooks 2011-07-24 22:06:04 +09:30
module_64.c modules: make arch's use default loader hooks 2011-07-24 22:06:04 +09:30
msi.c
nvram_64.c powerpc/nvram: Generalize code for OS partitions in NVRAM 2011-03-04 18:19:04 +11:00
of_platform.c powerpc/eeh: Introduce EEH device 2012-03-09 11:39:29 +11:00
paca.c powerpc: Remove iseries specific fields in lppaca 2012-04-30 15:37:16 +10:00
pci-common.c Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-03-23 14:02:12 -07:00
pci_32.c powerpc/PCI: compute I/O space bus-to-resource offset consistently 2012-03-20 10:41:44 -07:00
pci_64.c powerpc/PCI: compute I/O space bus-to-resource offset consistently 2012-03-20 10:41:44 -07:00
pci_dn.c powerpc/powernv: PCI support for p7IOC under OPAL v2 2011-11-25 14:53:15 +11:00
pci_of_scan.c powerpc/PCI: convert devtree bus addresses to resource 2012-03-20 10:41:51 -07:00
pmc.c bug.h: add include of it to various implicit C users 2012-02-29 17:15:08 -05:00
ppc32.h
ppc_ksyms.c powerpc: Use the new generic strncpy_from_user() and strnlen_user() 2012-05-27 21:00:07 -07:00
ppc_save_regs.S Fix common misspellings 2011-03-31 11:26:23 -03:00
proc_powerpc.c
process.c Merge branch 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-05-23 10:59:07 -07:00
prom.c Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
prom_init.c powerpc/crypto: Enable the PFO-based encryption device 2012-05-16 15:05:46 +10:00
prom_init_check.sh powerpc/powernv: Get kernel command line accross OPAL takeover 2011-09-20 16:09:48 +10:00
prom_parse.c powerpc: remove non-required uses of include <linux/module.h> 2011-10-31 19:30:44 -04:00
ptrace.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2012-05-23 09:02:42 -07:00
ptrace32.c powerpc: Remove old powerpc specific ptrace getregs/setregs calls 2012-04-30 15:37:28 +10:00
reloc_32.S powerpc: Process dynamic relocations for kernel 2011-12-20 10:21:08 -05:00
reloc_64.S
rtas-proc.c
rtas-rtc.c powerpc/rtas-rtc: remove sideeffects of printk_ratelimit 2011-06-29 15:30:43 +10:00
rtas.c Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
rtas_flash.c powerpc/pseries: Cancel RTAS event scan before firmware flash 2011-11-25 14:11:29 +11:00
rtas_pci.c Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-03-23 14:02:12 -07:00
rtasd.c powerpc/pseries: Cancel RTAS event scan before firmware flash 2011-11-25 14:11:29 +11:00
setup-common.c Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
setup.h
setup_32.c powerpc: fix build when CONFIG_BOOKE_WDT is enabled 2012-04-19 14:55:43 -05:00
setup_64.c Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
signal.c new helper: signal_delivered() 2012-06-01 12:58:52 -04:00
signal.h powerpc: get rid of restore_sigmask() 2012-06-01 12:58:51 -04:00
signal_32.c powerpc: get rid of restore_sigmask() 2012-06-01 12:58:51 -04:00
signal_64.c powerpc: get rid of restore_sigmask() 2012-06-01 12:58:51 -04:00
smp-tbsync.c atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
smp.c powerpc: Use generic idle thread allocation 2012-04-26 12:06:10 +02:00
softemu8xx.c Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
stacktrace.c powerpc: various straight conversions from module.h --> export.h 2011-10-31 19:30:44 -04:00
suspend.c
swsusp.c Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
swsusp_32.S Fix common misspellings 2011-03-31 11:26:23 -03:00
swsusp_64.c Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
swsusp_asm64.S
swsusp_booke.S
sys_ppc32.c Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
syscalls.c
sysfs.c Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
systbl.S
systbl_chk.c
systbl_chk.sh
tau_6xx.c
time.c powerpc/time: Sanity check of decrementer expiration is necessary 2012-06-08 14:07:35 +10:00
traps.c powerpc/irq: Make alignment & program interrupt behave the same 2012-05-09 09:42:33 +10:00
udbg.c powerpc: Random little legacy iSeries removal tidy ups 2012-03-28 11:33:23 +11:00
udbg_16550.c powerpc: Add early debug for WSP platforms 2011-05-06 13:32:41 +10:00
vdso.c Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
vecemu.c
vector.S powerpc: Optimise enable_kernel_altivec 2012-04-30 15:37:17 +10:00
vio.c powerpc/pseries: Add PFO support to the VIO bus 2012-05-14 10:49:09 +10:00
vmlinux.lds.S powerpc: Remove legacy iSeries bits from assembly files 2012-03-09 10:54:59 +11:00