From 19559d24fc23d18bdabfba839e5198f7f55537d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Sun, 23 Sep 2012 11:16:28 +0200 Subject: [PATCH] Reset controller::active_codec on uninit. * The controller structure is static, so if you closed the device, and the driver failed to initialize correctly (ie. finds no codec) on the second try, it would have crashed accessing an already freed codec. * Not sure why it fails to detect any codecs on second open, yet, though. --- src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp | 1 + 1 file changed, 1 insertion(+) 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 da9408eb11..2c45a21fb0 100644 --- a/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp +++ b/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp @@ -1049,4 +1049,5 @@ hda_hw_uninit(hda_controller* controller) if (controller->codecs[index] != NULL) hda_codec_delete(controller->codecs[index]); } + controller->active_codec = NULL; }