linux/arch/s390/kernel
Martin Schwidefsky 050eef364a [S390] fix tlb flushing vs. concurrent /proc accesses
The tlb flushing code uses the mm_users field of the mm_struct to
decide if each page table entry needs to be flushed individually with
IPTE or if a global flush for the mm_struct is sufficient after all page
table updates have been done. The comment for mm_users says "How many
users with user space?" but the /proc code increases mm_users after it
found the process structure by pid without creating a new user process.
Which makes mm_users useless for the decision between the two tlb
flusing methods. The current code can be confused to not flush tlb
entries by a concurrent access to /proc files if e.g. a fork is in
progres. The solution for this problem is to make the tlb flushing
logic independent from the mm_users field.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2010-08-24 09:26:34 +02:00
..
vdso32 [S390] vdso: use ntp adjusted clock multiplier 2010-04-22 17:17:19 +02:00
vdso64 [S390] vdso: use ntp adjusted clock multiplier 2010-04-22 17:17:19 +02:00
Makefile [S390] add support for compressed kernels 2010-02-26 22:37:33 +01:00
asm-offsets.c [S390] spp: fix compilation for CONFIG_32BIT 2010-05-26 23:26:29 +02: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] Cleanup struct _lowcore usage and defines. 2010-02-26 22:37:31 +01:00
bitmap.c [S390] move EXPORT_SYMBOLs to definitions 2009-03-26 15:24:11 +01:00
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 Mark arguments to certain syscalls as being const 2010-08-13 16:53:13 -07:00
compat_linux.h Mark arguments to certain syscalls as being const 2010-08-13 16:53:13 -07:00
compat_ptrace.h [S390] Expose a constant for the number of words representing the CRs 2009-03-26 15:24:25 +01:00
compat_signal.c [S390] 64-bit register support for 31-bit processes 2009-10-06 10:35:10 +02:00
compat_wrapper.S [S390] wire up prlimit64 and fanotify* syscalls 2010-08-13 10:06:54 +02:00
cpcmd.c [S390] convert cpcmd printks to pr_xxx macros. 2008-12-25 13:39:19 +01:00
crash.c [S390] Get rid of a lot of sparse warnings. 2007-02-05 21:16:47 +01:00
debug.c [S390] avoid default_llseek in s390 drivers 2010-05-17 10:00:16 +02:00
diag.c [S390] vmur: fix diag14 exceptions with addresses > 2GB. 2007-08-22 13:51:47 +02:00
dis.c [S390] add z9-ec/z10 instruction to kernel disassembler 2010-02-26 22:37:32 +01:00
early.c [S390] virtualization aware cpu measurement 2010-05-17 10:00:15 +02:00
ebcdic.c [S390] Get rid of a lot of sparse warnings. 2007-02-05 21:16:47 +01:00
entry.S [S390] Fix IRQ tracing in case of PER 2010-07-27 19:29:42 +02:00
entry.h [S390] s390: fix build error (sys_execve) 2010-08-24 09:26:34 +02:00
entry64.S [S390] Fix IRQ tracing in case of PER 2010-07-27 19:29:42 +02:00
ftrace.c Merge branch 'tracing-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-02-28 10:17:55 -08:00
head.S [S390] initrd: change default load address 2010-08-09 18:12:54 +02:00
head31.S [S390] correct address of _stext with CONFIG_SHARED_KERNEL=y 2010-05-12 09:32:26 +02:00
head64.S [S390] correct address of _stext with CONFIG_SHARED_KERNEL=y 2010-05-12 09:32:26 +02:00
init_task.c Use new __init_task_data macro in arch init_task.c files. 2009-09-21 06:27:08 +02:00
ipl.c sysfs: add struct file* to bin_attr callbacks 2010-05-21 09:37:31 -07:00
irq.c [S390] Fix init irq proc build break. 2009-02-11 10:37:39 +01:00
kprobes.c [S390] kprobes: forbid probing of stnsm/stosm/epsw 2010-05-26 23:26:29 +02:00
machine_kexec.c [S390] smp: always reboot on cpu 0 2010-02-26 22:37:30 +01:00
mcount.S [S390] improve mcount code 2009-09-11 10:29:43 +02:00
mcount64.S [S390] improve mcount code 2009-09-11 10:29:43 +02:00
mem_detect.c [S390] s390: hibernation support for s390 2009-06-16 10:31:22 +02:00
module.c [S390] kprobes: add parameter check to module_free() 2010-06-08 18:58:23 +02:00
nmi.c [S390] idle time accounting vs. machine checks 2010-05-17 10:00:15 +02:00
process.c Make do_execve() take a const filename pointer 2010-08-17 18:07:43 -07:00
processor.c [S390] More cleanup for struct _lowcore 2010-05-17 10:00:15 +02:00
ptrace.c [S390] add breaking event address for user space 2010-05-17 10:00:15 +02:00
reipl.S [S390] Cleanup struct _lowcore usage and defines. 2010-02-26 22:37:31 +01:00
reipl64.S [S390] Cleanup struct _lowcore usage and defines. 2010-02-26 22:37:31 +01:00
relocate_kernel.S [S390] Reset infrastructure for re-IPL. 2006-12-04 15:40:26 +01:00
relocate_kernel64.S [S390] Reset infrastructure for re-IPL. 2006-12-04 15:40:26 +01:00
s390_ext.c [S390] idle time accounting vs. machine checks 2010-05-17 10:00:15 +02:00
s390_ksyms.c [S390] move EXPORT_SYMBOLs to definitions 2009-03-26 15:24:11 +01:00
sclp.S Merge branch 'for-next' into for-linus 2010-03-08 16:55:37 +01:00
setup.c [S390] spp: fix compilation for CONFIG_32BIT 2010-05-26 23:26:29 +02:00
signal.c [S390] add breaking event address for user space 2010-05-17 10:00:15 +02:00
smp.c [S390] fix tlb flushing vs. concurrent /proc accesses 2010-08-24 09:26:34 +02:00
stacktrace.c [S390] Fix stacktrace compile bug. 2008-07-17 17:22:09 +02:00
suspend.c [S390] hibernate: make sure pfn_is_nosave handles lowcore pages 2009-09-22 22:58:45 +02:00
switch_cpu.S [S390] Cleanup struct _lowcore usage and defines. 2010-02-26 22:37:31 +01:00
switch_cpu64.S [S390] Cleanup struct _lowcore usage and defines. 2010-02-26 22:37:31 +01:00
swsusp_asm64.S Merge branch 'for-35' of git://repo.or.cz/linux-kbuild 2010-06-01 08:55:52 -07:00
sys_s390.c [S390] sys_personality: follow u_long to unsigned int conversion 2010-08-13 10:06:54 +02:00
syscalls.S [S390] wire up prlimit64 and fanotify* syscalls 2010-08-13 10:06:54 +02:00
sysinfo.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
time.c Merge branch 'timers-timekeeping-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-08-06 13:18:29 -07:00
topology.c [S390] topology: expose core identifier 2010-05-17 10:00:16 +02:00
traps.c [S390] debug: enable exception-trace debug facility 2010-05-17 10:00:17 +02:00
vdso.c [S390] vdso: remove redundant check for CONFIG_64BIT 2010-05-17 10:00:16 +02:00
vmlinux.lds.S [S390] Enable kmemleak on s390. 2009-10-06 10:35:06 +02:00
vtime.c [S390] idle time accounting vs. machine checks 2010-05-17 10:00:15 +02:00