Displaying 9 results from an estimated 9 matches for "pt_dynamic".
2007 Mar 05
7
[PATCH 2/10] linux 2.6.18: COMPAT_VDSO
...< sizeof(Elf32_Phdr));
+ for (i = 0; i < ehdr->e_phnum; ++i) {
+ Elf32_Phdr *phdr = (void *)((unsigned long)ehdr + ehdr->e_phoff + i * ehdr->e_phentsize);
+
+ phdr->p_vaddr += new_base - old_base;
+ switch(phdr->p_type) {
+ case PT_LOAD:
+ case PT_NOTE:
+ break;
+ case PT_DYNAMIC: {
+ Elf32_Dyn *dyn = (void *)(phdr->p_vaddr - new_base + (unsigned long)ehdr);
+ unsigned j;
+
+ for(j = 0; dyn[j].d_tag != DT_NULL; ++j) {
+ switch(dyn[j].d_tag) {
+ case DT_HASH:
+ case DT_STRTAB:
+ case DT_SYMTAB:
+ case 0x6ffffff0: /* DT_VERSYM */
+ case 0x6...
2007 Mar 05
7
[PATCH 2/10] linux 2.6.18: COMPAT_VDSO
...< sizeof(Elf32_Phdr));
+ for (i = 0; i < ehdr->e_phnum; ++i) {
+ Elf32_Phdr *phdr = (void *)((unsigned long)ehdr + ehdr->e_phoff + i * ehdr->e_phentsize);
+
+ phdr->p_vaddr += new_base - old_base;
+ switch(phdr->p_type) {
+ case PT_LOAD:
+ case PT_NOTE:
+ break;
+ case PT_DYNAMIC: {
+ Elf32_Dyn *dyn = (void *)(phdr->p_vaddr - new_base + (unsigned long)ehdr);
+ unsigned j;
+
+ for(j = 0; dyn[j].d_tag != DT_NULL; ++j) {
+ switch(dyn[j].d_tag) {
+ case DT_HASH:
+ case DT_STRTAB:
+ case DT_SYMTAB:
+ case 0x6ffffff0: /* DT_VERSYM */
+ case 0x6...
2007 Mar 05
7
[PATCH 2/10] linux 2.6.18: COMPAT_VDSO
...< sizeof(Elf32_Phdr));
+ for (i = 0; i < ehdr->e_phnum; ++i) {
+ Elf32_Phdr *phdr = (void *)((unsigned long)ehdr + ehdr->e_phoff + i * ehdr->e_phentsize);
+
+ phdr->p_vaddr += new_base - old_base;
+ switch(phdr->p_type) {
+ case PT_LOAD:
+ case PT_NOTE:
+ break;
+ case PT_DYNAMIC: {
+ Elf32_Dyn *dyn = (void *)(phdr->p_vaddr - new_base + (unsigned long)ehdr);
+ unsigned j;
+
+ for(j = 0; dyn[j].d_tag != DT_NULL; ++j) {
+ switch(dyn[j].d_tag) {
+ case DT_HASH:
+ case DT_STRTAB:
+ case DT_SYMTAB:
+ case 0x6ffffff0: /* DT_VERSYM */
+ case 0x6...
2007 Apr 18
2
[RFC, PATCH] Fixup COMPAT_VDSO to work with CONFIG_PARAVIRT
Paravirt-ops guests which move the fixmap also end up moving the syscall =
VDSO. This fails if it is prelinked at a fixed address, which is why =
COMPAT_VDSO is broken under CONFIG_VMI (and also under CONFIG_XEN). =
Several options are available to try to address this. Jan had cooked up =
a patch for Xen that used build magic to find the parts of the VDSO that =
need relocation. I
2007 Apr 18
2
[RFC, PATCH] Fixup COMPAT_VDSO to work with CONFIG_PARAVIRT
Paravirt-ops guests which move the fixmap also end up moving the syscall =
VDSO. This fails if it is prelinked at a fixed address, which is why =
COMPAT_VDSO is broken under CONFIG_VMI (and also under CONFIG_XEN). =
Several options are available to try to address this. Jan had cooked up =
a patch for Xen that used build magic to find the parts of the VDSO that =
need relocation. I
2007 Apr 18
4
[patch 0/2] Updates to compat VDSOs
Hi Andi,
Here's a couple of patches to fix up COMPAT_VDSO:
The first is a straightforward implementation of Jan's original idea
of relocating the VDSO to match its mapped location. Unlike Jan and
Zach's version, I changed it to relocate based on the phdrs rather than
the sections; the result is pleasantly compact.
The second patch takes advantage of the fact that all the
2007 Apr 18
4
[patch 0/2] Updates to compat VDSOs
Hi Andi,
Here's a couple of patches to fix up COMPAT_VDSO:
The first is a straightforward implementation of Jan's original idea
of relocating the VDSO to match its mapped location. Unlike Jan and
Zach's version, I changed it to relocate based on the phdrs rather than
the sections; the result is pleasantly compact.
The second patch takes advantage of the fact that all the
2007 Apr 18
4
[patch 0/4] Clean up asm/bugs.h, identify_cpu() and update COMPAT_VDSO
Hi Andi,
Four patches:
- clean up asm/bugs.h, by moving all the C code into its own C file
- split identify_cpu() into boot and secondary variants, so that
boot-time setup functions can be marked __init
- repost of the COMPAT_VDSO patches with a bit more robustness from
unknown DT_tags, and functions marked __init, since all this is
boot-time only setup.
Thanks,
J
--
2007 Apr 18
4
[patch 0/4] Clean up asm/bugs.h, identify_cpu() and update COMPAT_VDSO
Hi Andi,
Four patches:
- clean up asm/bugs.h, by moving all the C code into its own C file
- split identify_cpu() into boot and secondary variants, so that
boot-time setup functions can be marked __init
- repost of the COMPAT_VDSO patches with a bit more robustness from
unknown DT_tags, and functions marked __init, since all this is
boot-time only setup.
Thanks,
J
--