From 0a56cd3a03f2ca8f33af2a21e7ba98d8e8ca4536 Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Sun, 22 May 2016 10:25:24 +0000 Subject: [PATCH] [UNIATA] - 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 --- reactos/drivers/storage/ide/uniata/id_ata.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reactos/drivers/storage/ide/uniata/id_ata.cpp b/reactos/drivers/storage/ide/uniata/id_ata.cpp index d7a354bc519..719148e88f1 100644 --- a/reactos/drivers/storage/ide/uniata/id_ata.cpp +++ b/reactos/drivers/storage/ide/uniata/id_ata.cpp @@ -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