vdso: use correct offsets to remap vdso and vvar mappings

In the current version, the offsets of remapping vvar and vdso regions
are mixed up.

If vdso is before vvar, vvar has to be mapped with the vdso_size offset.
if vvar is before vdso, vdso has to be mapped with the vvar_size offset.

Signed-off-by: Andrei Vagin <avagin@gmail.com>
This commit is contained in:
Andrei Vagin 2020-02-04 23:13:43 -08:00
parent f1714ccce7
commit 9bc9366c94

View file

@ -119,9 +119,9 @@ int vdso_do_park(struct vdso_maps *rt, unsigned long addr, unsigned long space)
BUG_ON((vdso_size + vvar_size) < space);
if (rt->sym.vdso_before_vvar)
return park_at(rt, addr, addr + vvar_size);
return park_at(rt, addr, addr + vdso_size);
else
return park_at(rt, addr + vdso_size, addr);
return park_at(rt, addr + vvar_size, addr);
}
#ifndef CONFIG_COMPAT