diff -r 04a1b74efd48 -r d32f34975bbf kernel/eka/memmodel/epoc/flexible/mprocess.cpp --- a/kernel/eka/memmodel/epoc/flexible/mprocess.cpp Mon Feb 01 19:40:00 2010 +0100 +++ b/kernel/eka/memmodel/epoc/flexible/mprocess.cpp Mon Feb 01 19:49:38 2010 +0100 @@ -56,6 +56,7 @@ DProcess::Destruct(); } + TInt DMemModelProcess::TryOpenOsAsid() { if (__e32_atomic_tas_ord32(&iOsAsidRefCount, 1, 1, 0)) @@ -65,6 +66,7 @@ return KErrDied; } + void DMemModelProcess::CloseOsAsid() { if (__e32_atomic_tas_ord32(&iOsAsidRefCount, 1, -1, 0) == 1) @@ -73,6 +75,7 @@ } } + void DMemModelProcess::AsyncCloseOsAsid() { if (__e32_atomic_tas_ord32(&iOsAsidRefCount, 1, -1, 0) == 1) @@ -81,6 +84,7 @@ } } + TInt DMemModelProcess::NewChunk(DChunk*& aChunk, SChunkCreateInfo& aInfo, TLinAddr& aRunAddr) { aChunk=NULL; @@ -941,7 +945,9 @@ if(aFlags&KCheckLocalAddress) MM::ValidateLocalIpcAddress(dest,alias_size,ETrue); + UNLOCK_USER_MEMORY(); memcpy( (TAny*)dest, (const TAny*)alias_src, alias_size); + LOCK_USER_MEMORY(); src+=alias_size; dest+=alias_size; @@ -1018,7 +1024,9 @@ if(aFlags&KCheckLocalAddress) MM::ValidateLocalIpcAddress(src,alias_size,EFalse); + UNLOCK_USER_MEMORY(); memcpy( (TAny*)alias_dest, (const TAny*)src, alias_size); + LOCK_USER_MEMORY(); src+=alias_size; dest+=alias_size;