diff --git a/kernel/src/arch/x86_64/disk/ATA.cpp b/kernel/src/arch/x86_64/disk/ATA.cpp index ecb69ce9..a0026c3f 100644 --- a/kernel/src/arch/x86_64/disk/ATA.cpp +++ b/kernel/src/arch/x86_64/disk/ATA.cpp @@ -65,9 +65,12 @@ namespace ATA if (command_new != command_old) PCI::write16(m_device.address, PCI::Command, command_new); - if (!m_primary_channel.initialize()) return false; + bool success = false; - return m_secondary_channel.initialize(); + if (m_primary_channel.initialize()) success = true; + if (m_secondary_channel.initialize()) success = true; + + return success; } void Controller::irq_handler(Registers* regs)