diff --git a/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp b/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp index 72c6fa9609..22212c1f18 100644 --- a/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp +++ b/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp @@ -1313,6 +1313,9 @@ hda_hw_uninit(hda_controller* controller) // Disable interrupts, and remove interrupt handler controller->Write32(HDAC_INTR_CONTROL, 0); + remove_io_interrupt_handler(controller->irq, + (interrupt_handler)hda_interrupt_handler, controller); + if (controller->msi) { // Disable MSI gPCIx86Module->disable_msi(controller->pci_info.bus, @@ -1321,9 +1324,6 @@ hda_hw_uninit(hda_controller* controller) controller->pci_info.device, controller->pci_info.function); } - remove_io_interrupt_handler(controller->irq, - (interrupt_handler)hda_interrupt_handler, controller); - // Delete corb/rirb area if (controller->corb_rirb_pos_area >= 0) { delete_area(controller->corb_rirb_pos_area);