diff options
Diffstat (limited to 'kernel/vm/shadow.c')
-rw-r--r-- | kernel/vm/shadow.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/vm/shadow.c b/kernel/vm/shadow.c index 2f875d6..3194c5b 100644 --- a/kernel/vm/shadow.c +++ b/kernel/vm/shadow.c @@ -90,7 +90,9 @@ mobj_t *shadow_create(mobj_t *shadowed) } // init the other fields mobj_ref(so->shadowed); + mobj_lock(so->bottom_mobj); mobj_ref(so->bottom_mobj); + mobj_unlock(so->bottom_mobj); // init and lock the shadow object mobj_init(&so->mobj, MOBJ_SHADOW, &shadow_mobj_ops); @@ -118,6 +120,8 @@ void shadow_collapse(mobj_t *o) { // NOT_YET_IMPLEMENTED("VM: shadow_collapse"); + return; + mobj_shadow_t *so = MOBJ_TO_SO(o); mobj_t *next = so->shadowed; while(next && next->mo_type==MOBJ_SHADOW) |