--- zzzz-none-000/linux-2.6.19.2/mm/rmap.c 2007-01-10 19:10:37.000000000 +0000 +++ davinci-8020-5505/linux-2.6.19.2/mm/rmap.c 2007-01-19 15:11:30.000000000 +0000 @@ -99,6 +99,19 @@ vma->anon_vma = anon_vma; list_add_tail(&vma->anon_vma_node, &anon_vma->head); allocated = NULL; + +#ifdef CONFIG_PAX_SEGMEXEC + if (vma->vm_flags & VM_MIRROR) { + struct vm_area_struct *vma_m; + + vma_m = find_vma(vma->vm_mm, vma->vm_start + vma->vm_mirror); + BUG_ON(!vma_m || vma_m->vm_start != vma->vm_start + vma->vm_mirror); + BUG_ON(vma_m->anon_vma || vma->vm_pgoff != vma_m->vm_pgoff); + vma_m->anon_vma = anon_vma; + __anon_vma_link(vma_m); + } +#endif + } spin_unlock(&mm->page_table_lock);