Re: [patch] Fix vdso32 relocation for paddr

From: Jan Kratochvil
Date: Fri Aug 28 2009 - 17:07:37 EST


On Fri, 28 Aug 2009 20:15:34 +0200, Roland McGrath wrote:
> Thanks for heads-up. It's definitely right to CC me on patches that change
> the build/setup vDSO details.

OK, I thought more about {p,u}trace.


> That change seems fine. Or just explicit p_addr = p_vaddr would be fine
> too (and not assume that what the linker produced is consistent, in case
> some old linkers produce stranger results from the vdso linker scripts).

Updated. Verified on x86_64 host it works right for an i386 binary.


Thanks,
Jan


Signed-off-by: Jan Kratochvil <jan.kratochvil@xxxxxxxxxx>

--- linux-2.6.30.x86_64/arch/x86/vdso/vdso32-setup.c-orig 2009-08-26 22:23:08.000000000 +0200
+++ linux-2.6.30.x86_64/arch/x86/vdso/vdso32-setup.c 2009-08-26 22:38:10.000000000 +0200
@@ -172,6 +172,7 @@ static __init void relocate_vdso(Elf32_E
phdr = (void *)ehdr + ehdr->e_phoff;
for (i = 0; i < ehdr->e_phnum; i++) {
phdr[i].p_vaddr += VDSO_ADDR_ADJUST;
+ phdr[i].p_paddr = phdr[i].p_vaddr;

/* relocate dynamic stuff */
if (phdr[i].p_type == PT_DYNAMIC)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/