diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-10-11 14:34:50 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-10-11 14:34:50 -0400 |
commit | f144c78e525542c94e0dcb171b41cc5ef7b341b3 (patch) | |
tree | a94920a3f87a11ad1875e08619a60e748b626e34 /arch/s390/kernel/vdso.c | |
parent | ef1f7a7e878e4ae37b3a78ebdeef9f911bae59df (diff) | |
parent | 6fca97a958bc3c67566aa91eafc6a5be2e66d6b3 (diff) |
Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6
* 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6: (21 commits)
[S390] dasd: fix race condition in resume code
[S390] Add EX_TABLE for addressing exception in usercopy functions.
[S390] 64-bit register support for 31-bit processes
[S390] hibernate: Use correct place for CPU address in lowcore
[S390] pm: ignore time spend in suspended state
[S390] zcrypt: Improve some comments
[S390] zcrypt: Fix sparse warning.
[S390] perf_counter: fix vdso detection
[S390] ftrace: drop nmi protection
[S390] compat: fix truncate system call wrapper
[S390] Provide arch specific mdelay implementation.
[S390] Fix enabled udelay for short delays.
[S390] cio: allow setting boxed devices offline
[S390] cio: make not operational handling consistent
[S390] cio: make disconnected handling consistent
[S390] Fix memory leak in /proc/cio_ignore
[S390] cio: channel path memory leak
[S390] module: fix memory leak in s390 module loader
[S390] Enable kmemleak on s390.
[S390] 3270 console build fix
...
Diffstat (limited to 'arch/s390/kernel/vdso.c')
-rw-r--r-- | arch/s390/kernel/vdso.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/arch/s390/kernel/vdso.c b/arch/s390/kernel/vdso.c index 45a3e9a7ae21..adfb32aa6d59 100644 --- a/arch/s390/kernel/vdso.c +++ b/arch/s390/kernel/vdso.c | |||
@@ -247,6 +247,13 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp) | |||
247 | } | 247 | } |
248 | 248 | ||
249 | /* | 249 | /* |
250 | * Put vDSO base into mm struct. We need to do this before calling | ||
251 | * install_special_mapping or the perf counter mmap tracking code | ||
252 | * will fail to recognise it as a vDSO (since arch_vma_name fails). | ||
253 | */ | ||
254 | current->mm->context.vdso_base = vdso_base; | ||
255 | |||
256 | /* | ||
250 | * our vma flags don't have VM_WRITE so by default, the process | 257 | * our vma flags don't have VM_WRITE so by default, the process |
251 | * isn't allowed to write those pages. | 258 | * isn't allowed to write those pages. |
252 | * gdb can break that with ptrace interface, and thus trigger COW | 259 | * gdb can break that with ptrace interface, and thus trigger COW |
@@ -267,14 +274,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp) | |||
267 | VM_ALWAYSDUMP, | 274 | VM_ALWAYSDUMP, |
268 | vdso_pagelist); | 275 | vdso_pagelist); |
269 | if (rc) | 276 | if (rc) |
270 | goto out_up; | 277 | current->mm->context.vdso_base = 0; |
271 | |||
272 | /* Put vDSO base into mm struct */ | ||
273 | current->mm->context.vdso_base = vdso_base; | ||
274 | |||
275 | up_write(&mm->mmap_sem); | ||
276 | return 0; | ||
277 | |||
278 | out_up: | 278 | out_up: |
279 | up_write(&mm->mmap_sem); | 279 | up_write(&mm->mmap_sem); |
280 | return rc; | 280 | return rc; |