- When handling CD READ_CAPACITY requests in AtapiInterrupt__, fully rewind the DataBuffer instead of relying on the last read length. Fixes crash on first stage boot in KVM.
CORE-11286 #resolve
CORE-11296

svn path=/trunk/; revision=71371
This commit is contained in:
Thomas Faber
2016-05-22 10:25:24 +00:00
parent 02fde17b6f
commit 0a56cd3a03
@@ -5923,13 +5923,13 @@ continue_read_drq:
// for that also.
if (srb->Cdb[0] == SCSIOP_READ_CAPACITY) {
AtaReq->DataBuffer -= wordCount;
AtaReq->DataBuffer -= AtaReq->WordsTransfered;
if (AtaReq->DataBuffer[0] == 0x00) {
*((ULONG *) &(AtaReq->DataBuffer[0])) = 0xFFFFFF7F;
}
*((ULONG *) &(AtaReq->DataBuffer[2])) = 0x00080000;
AtaReq->DataBuffer += wordCount;
AtaReq->DataBuffer += AtaReq->WordsTransfered;
}
#ifndef UNIATA_INIT_CHANGERS
else