Index: NVDataMgmt.c =================================================================== diff -u -r2b93f51db0c3b12e8ae98eb4ba566c331108abca -r14ed4a9910a870644292d72af84c6c4e62bde348 --- NVDataMgmt.c (.../NVDataMgmt.c) (revision 2b93f51db0c3b12e8ae98eb4ba566c331108abca) +++ NVDataMgmt.c (.../NVDataMgmt.c) (revision 14ed4a9910a870644292d72af84c6c4e62bde348) @@ -1449,14 +1449,16 @@ { queueCount++; queueRearIndex = INC_WRAP( queueRearIndex, 0, QUEUE_MAX_SIZE - 1 ); + + jobQueue [ myAddIndex ].memoryOperation = ops; + jobQueue [ myAddIndex ].memoryLocation = location; + jobQueue [ myAddIndex ].startAddress = (U32*)startAddress; + jobQueue [ myAddIndex ].length = length; + jobQueue [ myAddIndex ].externalAddress = extAddress; } _enable_IRQ(); - jobQueue [ myAddIndex ].memoryOperation = ops; - jobQueue [ myAddIndex ].memoryLocation = location; - jobQueue [ myAddIndex ].startAddress = (U32*)startAddress; - jobQueue [ myAddIndex ].length = length; - jobQueue [ myAddIndex ].externalAddress = extAddress; + if ( extAddress == 0 ) { memcpy ( jobQueue [ myAddIndex ].buffer, data, length );