kernel/eka/memmodel/epoc/flexible/mprocess.cpp
branchanywhere
changeset 41 d32f34975bbf
parent 36 538db54a451d
--- 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;