kernel/eka/include/drivers/dma_v1.h
changeset 189 a5496987b1da
parent 132 e4a7b1cbe40c
child 231 75252ea6123b
--- a/kernel/eka/include/drivers/dma_v1.h	Wed Jun 23 12:58:21 2010 +0100
+++ b/kernel/eka/include/drivers/dma_v1.h	Thu Jul 01 17:57:33 2010 +0100
@@ -393,15 +393,16 @@
 		void TFooDmaChannel::QueuedRequestCountChanged()
 			{
 			Kern::MutexWait(*iDmaMutex);
-			if ((iQueuedRequests > 0) && (iPrevQueuedRequests == 0))
+			const TInt queued_now = __e32_atomic_load_acq32(&iQueuedRequests);
+			if ((queued_now > 0) && (iPrevQueuedRequests == 0))
 				{
 				IncreasePowerCount(); // Base port specific
 				}
-			else if ((iQueuedRequests == 0) && (iPrevQueuedRequests > 0))
+			else if ((queued_now == 0) && (iPrevQueuedRequests > 0))
 				{
 				DecreasePowerCount(); // Base port specific
 				}
-			iPrevQueuedRequests = iQueuedRequests;
+			iPrevQueuedRequests = queued_now;
 			Kern::MutexSignal(*iDmaMutex);
 			}