From 497180a6505f6291238add2146f46c0efdac7283 Mon Sep 17 00:00:00 2001 From: Jelle Raaijmakers Date: Sat, 27 Nov 2021 13:48:45 +0100 Subject: [PATCH] Kernel: Ignore AC97 non-completion interrupts Fixes #11094 --- Kernel/Devices/Audio/AC97.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Kernel/Devices/Audio/AC97.cpp b/Kernel/Devices/Audio/AC97.cpp index b730cd5a51..bcf59642d3 100644 --- a/Kernel/Devices/Audio/AC97.cpp +++ b/Kernel/Devices/Audio/AC97.cpp @@ -69,9 +69,12 @@ bool AC97::handle_irq(RegisterState const&) bool is_completion_interrupt = (pcm_out_status & AudioStatusRegisterFlag::BufferCompletionInterruptStatus) > 0; bool is_fifo_error = (pcm_out_status & AudioStatusRegisterFlag::FIFOError) > 0; - VERIFY(is_completion_interrupt); VERIFY(!is_fifo_error); + // If there is no buffer completion, we're not going to do anything + if (!is_completion_interrupt) + return false; + // On interrupt, we need to reset PCM interrupt flags by setting their bits pcm_out_status = AudioStatusRegisterFlag::LastValidBufferCompletionInterrupt | AudioStatusRegisterFlag::BufferCompletionInterruptStatus @@ -84,7 +87,6 @@ bool AC97::handle_irq(RegisterState const&) } else { m_irq_queue.wake_all(); } - return true; }