summaryrefslogtreecommitdiffhomepage
path: root/dev/Kernel/HALKit/AMD64
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2025-03-10 05:31:26 +0100
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2025-03-10 05:31:45 +0100
commit5cc390ec5a0f31282c614b2702b60e1c9db3d335 (patch)
tree143db3bad6c4cfd0f3ef93006ae65c9ec0e58dcc /dev/Kernel/HALKit/AMD64
parent7855b98f7cbe83d77f1625f7b5017060b97e5b75 (diff)
AHCI.cc: Clear kACHICommandIssued once Ci is clear.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/Kernel/HALKit/AMD64')
-rw-r--r--dev/Kernel/HALKit/AMD64/Storage/AHCI.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/dev/Kernel/HALKit/AMD64/Storage/AHCI.cc b/dev/Kernel/HALKit/AMD64/Storage/AHCI.cc
index 6650d460..9e1c2326 100644
--- a/dev/Kernel/HALKit/AMD64/Storage/AHCI.cc
+++ b/dev/Kernel/HALKit/AMD64/Storage/AHCI.cc
@@ -158,8 +158,16 @@ STATIC Void drv_std_input_output(UInt64 lba, UInt8* buffer, SizeT sector_sz, Siz
}
kSATA[kSATAIndex]->Ports[kSATAIndex].Ci = (1 << slot);
+
kAHCICommandIssued = YES;
+ while (kSATA[kSATAIndex]->Ports[kSATAIndex].Ci & (1 << slot))
+ {
+ ;
+ }
+
+ kAHCICommandIssued = NO;
+
// check again.
if (kSATA[kSATAIndex]->Is & kHBAErrTaskFile)
{