[USBEHCI][USBOHCI]

- Touch the virtual address of DMA buffers before calling MmGetPhysicalAddress on them. This ensures page directories are correctly set up for the current process context, and fixes random DMA operation failures ("MM:MmGetPhysicalAddressFailed"). This is not a hack -- using MmGetPhysicalAddress for DMA in the first place is.
CORE-9224 #resolve

svn path=/trunk/; revision=74408
This commit is contained in:
Thomas Faber 2017-04-26 10:53:32 +00:00
parent 43e13595cf
commit 1bb6977402
2 changed files with 4 additions and 2 deletions

View file

@ -615,8 +615,9 @@ CUSBRequest::InitDescriptor(
do
{
//
// get address
// get address (HACK)
//
*(volatile char *)TransferBuffer;
Address = MmGetPhysicalAddress(TransferBuffer);
//

View file

@ -784,8 +784,9 @@ CUSBRequest::BuildIsochronousEndpoint(
}
//
// get physical page
// get physical page (HACK)
//
*(volatile char *)TransferBuffer;
Page = MmGetPhysicalAddress(Buffer).LowPart;
//