x86-32, vdso: Fix vDSO build error due to missing align_vdso_addr()
Relying on static functions used just once to get inlined (and subsequently have dead code paths eliminated) is wrong: Compilers are free to decide whether they do this, regardless of optimization level. With this not happening for vdso_addr() (observed with gcc 4.1.x), an unresolved reference to align_vdso_addr() causes the build to fail. [ hpa: vdso_addr() is never actually used on x86-32, as calculate_addr in map_vdso() is always false. It ought to be possible to clean this up further, but this fixes the immediate problem. ] Signed-off-by: Jan Beulich <jbeulich@suse.com> Link: http://lkml.kernel.org/r/53B5863B02000078000204D5@mail.emea.novell.com Acked-by: Andy Lutomirski <luto@amacapital.net> Tested-by: Boris Ostrovsky <boris.ostrovsky@oracle.com> Tested-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
This commit is contained in:
parent
9f88b906b4
commit
d093601be5
1 changed files with 4 additions and 0 deletions
|
@ -62,6 +62,9 @@ struct linux_binprm;
|
||||||
Only used for the 64-bit and x32 vdsos. */
|
Only used for the 64-bit and x32 vdsos. */
|
||||||
static unsigned long vdso_addr(unsigned long start, unsigned len)
|
static unsigned long vdso_addr(unsigned long start, unsigned len)
|
||||||
{
|
{
|
||||||
|
#ifdef CONFIG_X86_32
|
||||||
|
return 0;
|
||||||
|
#else
|
||||||
unsigned long addr, end;
|
unsigned long addr, end;
|
||||||
unsigned offset;
|
unsigned offset;
|
||||||
end = (start + PMD_SIZE - 1) & PMD_MASK;
|
end = (start + PMD_SIZE - 1) & PMD_MASK;
|
||||||
|
@ -83,6 +86,7 @@ static unsigned long vdso_addr(unsigned long start, unsigned len)
|
||||||
addr = align_vdso_addr(addr);
|
addr = align_vdso_addr(addr);
|
||||||
|
|
||||||
return addr;
|
return addr;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static int map_vdso(const struct vdso_image *image, bool calculate_addr)
|
static int map_vdso(const struct vdso_image *image, bool calculate_addr)
|
||||||
|
|
Loading…
Add table
Reference in a new issue