diff options
author | Luke <luke.wilde@live.co.uk> | 2021-03-18 05:36:13 +0000 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2021-03-18 07:52:15 +0100 |
commit | 3507397fed91a7539c9fc553665a7cbbb3617430 (patch) | |
tree | 97ca0585bf05c38107023f334a6bac373270a458 /Kernel/Storage | |
parent | cf9ce0d8578083fcbecf88b05008a6b27ba0d0dc (diff) | |
download | serenity-3507397fed91a7539c9fc553665a7cbbb3617430.zip |
Kernel/Storage: Recover from fatal AHCI error on TFES, HBDS and HBFS
These errors are classed as fatal, so we need to recover from them.
Found while trying to debug AHCI boot on VMware Player,
where I got TFES.
From the spec: "Fatal errors (signified by the setting of PxIS.HBFS,
PxIS.HBDS, PxIS.IFS, or PxIS.TFES) will cause the HBA to enter
the ERR:Fatal state"
We were already recovering from IFS.
Diffstat (limited to 'Kernel/Storage')
-rw-r--r-- | Kernel/Storage/AHCIPort.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/Kernel/Storage/AHCIPort.cpp b/Kernel/Storage/AHCIPort.cpp index 9431c25a11..3dd8dcbbe0 100644 --- a/Kernel/Storage/AHCIPort.cpp +++ b/Kernel/Storage/AHCIPort.cpp @@ -104,7 +104,7 @@ void AHCIPort::handle_interrupt() reset(); return; } - if (m_interrupt_status.is_set(AHCI::PortInterruptFlag::IF)) { + if (m_interrupt_status.is_set(AHCI::PortInterruptFlag::IF) || m_interrupt_status.is_set(AHCI::PortInterruptFlag::TFE) || m_interrupt_status.is_set(AHCI::PortInterruptFlag::HBD) || m_interrupt_status.is_set(AHCI::PortInterruptFlag::HBF)) { recover_from_fatal_error(); } m_interrupt_status.clear(); |