--- a/kernel/eka/include/drivers/dma_v2.h Wed Jun 23 12:58:21 2010 +0100
+++ b/kernel/eka/include/drivers/dma_v2.h Thu Jul 01 17:57:33 2010 +0100
@@ -1232,15 +1232,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);
}