diff options
Diffstat (limited to 'dev/Kernel')
| -rw-r--r-- | dev/Kernel/HALKit/AMD64/Storage/AHCI.cc | 8 | ||||
| -rw-r--r-- | dev/Kernel/src/PEFCodeMgr.cc | 2 |
2 files changed, 8 insertions, 2 deletions
diff --git a/dev/Kernel/HALKit/AMD64/Storage/AHCI.cc b/dev/Kernel/HALKit/AMD64/Storage/AHCI.cc index bb37fd11..e1f48503 100644 --- a/dev/Kernel/HALKit/AMD64/Storage/AHCI.cc +++ b/dev/Kernel/HALKit/AMD64/Storage/AHCI.cc @@ -179,10 +179,16 @@ STATIC Void drv_std_input_output(UInt64 lba, UInt8* buffer, SizeT sector_sz, Siz kSATAHba->Ports[kSATAIndex].Ci = (1 << slot); - while (1) + while (YES) { if ((kSATAHba->Ports[kSATAIndex].Ci & (1 << slot)) == 0) break; + + if (kSATAHba->Is & kHBAErrTaskFile) + { + err_global_get() = kErrorDiskIsCorrupted; + return; + } } // Check IS again. diff --git a/dev/Kernel/src/PEFCodeMgr.cc b/dev/Kernel/src/PEFCodeMgr.cc index e39e72ca..426a1e26 100644 --- a/dev/Kernel/src/PEFCodeMgr.cc +++ b/dev/Kernel/src/PEFCodeMgr.cc @@ -166,7 +166,7 @@ namespace NeOS for (SizeT index = 0; index < container->Count; ++index) { if (KStringBuilder::Equals(container_header->Name, - error_or_symbol.Leak().Leak().CData())) + error_or_symbol.Leak().Leak().CData())) { if (container_header->Kind == kind) { |
