diff -NurpP linux-2.6.22.6-vs2.3.0.24.3/kernel/fork.c linux-2.6.22.6-vs2.3.0.24.5/kernel/fork.c --- linux-2.6.22.6-vs2.3.0.24.3/kernel/fork.c 2007-09-20 19:33:22 +0200 +++ linux-2.6.22.6-vs2.3.0.24.5/kernel/fork.c 2007-09-29 19:48:50 +0200 @@ -336,7 +336,7 @@ static inline void mm_free_pgd(struct mm #include -static struct mm_struct * mm_init(struct mm_struct * mm) +static struct mm_struct * mm_init(struct mm_struct * mm, struct vx_info *vxi) { atomic_set(&mm->mm_users, 1); atomic_set(&mm->mm_count, 1); @@ -354,7 +354,7 @@ static struct mm_struct * mm_init(struct if (likely(!mm_alloc_pgd(mm))) { mm->def_flags = 0; - set_vx_info(&mm->mm_vx_info, current->vx_info); + set_vx_info(&mm->mm_vx_info, vxi); return mm; } free_mm(mm); @@ -364,7 +364,7 @@ static struct mm_struct * mm_init(struct mm = allocate_mm(); if (mm) { memset(mm, 0, sizeof(*mm)); - mm = mm_init(mm); + mm = mm_init(mm, current->vx_info); } return mm; } @@ -507,7 +507,7 @@ static struct mm_struct *dup_mm(struct t mm->token_priority = 0; mm->last_interval = 0; - if (!mm_init(mm)) + if (!mm_init(mm, oldmm->mm_vx_info)) goto fail_nomem; if (init_new_context(tsk, mm))