linux/arch/s390/kernel
Heiko Carstens d3d238c774 [S390] nohz: Fix __udelay.
This fixes a regression that came with 934b2857cc
("[S390] nohz/sclp: disable timer on synchronous waits.").
If udelay() gets called from a disabled context it sets the clock comparator
to a value where it expects the next interrupt. When the interrupt happens
the clock comparator gets not reset and therefore the interrupt condition
doesn't get cleared. The result is an endless timer interrupt loop.

In addition this patch fixes also the following:

rcutorture reveals that our __udelay implementation is still buggy,
since it might schedule tasklets, but prevents their execution:

NOHZ: local_softirq_pending 42
NOHZ: local_softirq_pending 02
NOHZ: local_softirq_pending 142
NOHZ: local_softirq_pending 02

To fix this we make sure that only the clock comparator interrupt
is enabled when the enabled wait psw is loaded.
Also no code gets called anymore which might schedule tasklets.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2008-10-03 21:55:54 +02:00
..
asm-offsets.c s390: use kbuild.h instead of defining macros in asm-offsets.c 2008-04-29 08:06:30 -07:00
audit.c [S390] Get rid of a bunch of sparse warnings again. 2007-10-12 16:13:06 +02:00
audit.h [S390] Get rid of a bunch of sparse warnings again. 2007-10-12 16:13:06 +02:00
base.S [S390] Convert memory detection into C code. 2007-02-05 21:18:37 +01:00
bitmap.S
compat_audit.c [S390] Get rid of a bunch of sparse warnings again. 2007-10-12 16:13:06 +02:00
compat_exec_domain.c [S390] Get rid of a lot of sparse warnings. 2007-02-05 21:16:47 +01:00
compat_linux.c arch: Remove unnecessary inclusions of asm/semaphore.h 2008-04-18 22:14:49 -04:00
compat_linux.h [S390] Fix a lot of sparse warnings. 2008-04-17 07:47:06 +02:00
compat_ptrace.h [S390] CVE-2008-1514: prevent ptrace padding area read/write in 31-bit mode 2008-09-09 12:39:06 +02:00
compat_signal.c [S390] Fix a lot of sparse warnings. 2008-04-17 07:47:06 +02:00
compat_wrapper.S [S390] Wire up new syscalls. 2008-08-01 16:39:32 +02:00
cpcmd.c [S390] cpcmd: fix inline assembly usage. 2007-10-12 16:13:09 +02:00
crash.c [S390] Get rid of a lot of sparse warnings. 2007-02-05 21:16:47 +01:00
debug.c [S390] Cleanup s390 debug feature print messages. 2008-07-14 10:02:22 +02:00
diag.c [S390] vmur: fix diag14 exceptions with addresses > 2GB. 2007-08-22 13:51:47 +02:00
dis.c [S390] disassembler: fix idte instruction format. 2008-05-30 10:03:36 +02:00
early.c [S390] Remove P390 support. 2008-07-14 10:02:25 +02:00
ebcdic.c [S390] Get rid of a lot of sparse warnings. 2007-02-05 21:16:47 +01:00
entry64.S [S390] s390-kvm: leave sie context on work. Removes preemption requirement 2008-05-07 09:23:01 +02:00
entry.h [S390] Fix a lot of sparse warnings. 2008-04-17 07:47:06 +02:00
entry.S [S390] s390: Optimize user and work TIF check 2008-05-07 09:23:00 +02:00
head31.S [S390] Convert machine feature detection code to C. 2008-04-30 13:38:47 +02:00
head64.S [S390] System z large page support. 2008-04-30 13:38:47 +02:00
head.S [S390] Get rid of new section mismatch warnings. 2007-07-27 12:29:18 +02:00
init_task.c [PATCH] take init_files to fs/file.c 2008-05-16 17:22:20 -04:00
ipl.c [S390] ipl: Reboot from alternate device does not work when booting from file 2008-08-01 16:39:30 +02:00
irq.c [S390] show_interrupts: prevent cpu hotplug when walking cpu_online_map. 2008-05-15 16:52:41 +02:00
kprobes.c stop_machine: Wean existing callers off stop_machine_run() 2008-07-28 12:16:31 +10:00
machine_kexec.c [S390] Cleanup kprobes printk messages. 2008-07-14 10:02:24 +02:00
Makefile [S390] Move memory detection code to own file. 2008-07-14 10:02:17 +02:00
mem_detect.c [S390] Remove diag 0x260 call from memory detection. 2008-08-01 16:39:34 +02:00
module.c [S390] Use generic bug. 2007-04-27 16:01:42 +02:00
process.c [S390] Fix uninitialized spinlock use 2008-08-21 19:46:39 +02:00
ptrace.c [S390] CVE-2008-1514: prevent ptrace padding area read/write in 31-bit mode 2008-09-09 12:39:06 +02:00
reipl64.S [S390] reipl: move dump_prefix_page out of text section. 2007-03-05 23:35:43 +01:00
reipl.S [S390] reipl: move dump_prefix_page out of text section. 2007-03-05 23:35:43 +01:00
relocate_kernel64.S [S390] Reset infrastructure for re-IPL. 2006-12-04 15:40:26 +01:00
relocate_kernel.S [S390] Reset infrastructure for re-IPL. 2006-12-04 15:40:26 +01:00
s390_ext.c [S390] Fix a lot of sparse warnings. 2008-04-17 07:47:06 +02:00
s390_ksyms.c Generic semaphore implementation 2008-04-17 10:42:34 -04:00
setup.c s390: use virtio_console for KVM on s390 2008-07-25 12:06:07 +10:00
signal.c [S390] Fix a lot of sparse warnings. 2008-04-17 07:47:06 +02:00
smp.c [S390] Remove unneeded spinlock initialization. 2008-08-21 19:46:39 +02:00
stacktrace.c [S390] Fix stacktrace compile bug. 2008-07-17 17:22:09 +02:00
sys_s390.c unified (weak) sys_pipe implementation 2008-05-03 13:50:33 -07:00
syscalls.S [S390] Wire up new syscalls. 2008-08-01 16:39:32 +02:00
time.c [S390] nohz: Fix __udelay. 2008-10-03 21:55:54 +02:00
topology.c S390 topology: don't use kthread() for arch_reinit_sched_domains() 2008-07-25 10:53:40 -07:00
traps.c [S390] Move show_regs to traps.c. 2008-04-30 13:38:43 +02:00
vmlinux.lds.S [S390] Fix linker script. 2008-08-25 18:15:01 +02:00
vtime.c [S390] Cleanup vtime printk messages. 2008-07-14 10:02:18 +02:00