We map a VMA for the 32-bit vDSO even when it's disabled, which is stupid. For the 32-bit kernel it's the vdso_enabled boot parameter/sysctl and for the 64-bit kernel it's the vdso32 boot parameter/syscall32 sysctl. When it's disabled, we don't pass AT_SYSINFO_EHDR so processes don't use the vDSO for anything, but we still map it. For the non-compat vDSO, this means we're always putting an extra VMA somewhere, maybe lousing up the control of the address space the user was hoping for. Honor the setting by doing nothing in arch_setup_additional_pages. Signed-off-by: Roland McGrath <roland@redhat.com> --- arch/x86/vdso/vdso32-setup.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/arch/x86/vdso/vdso32-setup.c b/arch/x86/vdso/vdso32-setup.c index 348f134..f7e78d8 100644 --- a/arch/x86/vdso/vdso32-setup.c +++ b/arch/x86/vdso/vdso32-setup.c @@ -325,6 +325,9 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int exstack) int ret = 0; bool compat; + if (vdso_enabled == VDSO_DISABLED) + return 0; + down_write(&mm->mmap_sem); /* Test compat mode once here, in case someone --
| Ryan Hope | reiser4 for 2.6.27-rc1 |
| Bart Van Assche | Integration of SCST in the mainstream Linux kernel |
| Pierre Ossman | [RFC][PATCH] cpuidle: avoid singing capacitors |
| Rafael J. Wysocki | 2.6.26-rc9-git12: Reported regressions from 2.6.25 |
git: | |
| Marius Storm-Olsen | Stats in Git |
| Jakub Narebski | [PATCH] gitweb: Use File::Find::find in git_get_projects_list |
| Johannes Schindelin | [PATCH 01/15] Mark strings for translation. |
| Linus Torvalds | Re: git and larger trees, not so fast? |
| Richard Stallman | Real men don't attack straw men |
| Steven Surdock | Problems with second ipsec(ctl) tunnel |
| GVG GVG | ssh_exchange_identification: Connection closed by remote host |
| Bertram Scharpf | First install: Grub doesn't find partitions |
| Jim Winstead Jr. | Re: Root Disk/Book Disk Compatibility |
| Stephen Pierce | SLS |
| Les Andrzejewski | X386/WD90C31/SUMSUNG SYNC MASTER 4 |
| Sander van Malssen | uemacs |
