summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc
diff options
context:
space:
mode:
authorAmlal <amlal@nekernel.org>2025-04-27 13:35:09 +0200
committerAmlal <amlal@nekernel.org>2025-04-27 13:35:09 +0200
commit780263dedaa289dd707af387529674ef63804b60 (patch)
tree570b7bb0eb547fef0cc3eb1731ea403d26324b1a /dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc
parente5efb02ff49e7a5a0083acc5f4b1af5fbb73b518 (diff)
StorageKit: made DMA.h stronger and more resilient.
Signed-off-by: Amlal <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc')
-rw-r--r--dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc b/dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc
index a28fa0ab..722baf57 100644
--- a/dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc
+++ b/dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc
@@ -220,10 +220,14 @@ STATIC Void drv_std_input_output_ahci(UInt64 lba, UInt8* buffer, SizeT sector_sz
if (kSATAHba->Is & kHBAErrTaskFile) {
kout << "AHCI Task File Error during I/O.\r";
+
+ rtl_dma_free(size_buffer);
err_global_get() = kErrorDiskIsCorrupted;
return;
} else {
rt_copy_memory(ptr, buffer, size_buffer);
+ rtl_dma_free(size_buffer);
+
err_global_get() = kErrorSuccess;
}
}