id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc,blockedby,blocking,platform 5118,Haiku panics on HDA sound card,flaggy,korli,"= Specification = I have a lenovo r61i laptop. The sound card is an intel hda, according to linux, the codec is Conexant CX20549 (Venice). The sound card works flawlessly on linux. Haiku revision: 34626 (compiled with gcc 4) = Error message = PANIC: vm_page_fault_unhandled page fault in kernel space at 0x0, ip 0x800dd4db The backtrace is in the figure attached to this ticket. = Experimentation = I changed the code of the function `multi_audio_control` (src/add-ons/kernel/drivers/audio/hda/hda_multi_audio.cpp) to always return `B_ERROR` and the system was able to boot. Except for no sound, the system seemed to be working well. I thought the error could be in one of those `user_memcpy`, so I kept adding `return B_ERROR` further down the code. Eventually I removed the `return` from (line 1035) {{{ return user_memcpy(originalChannels, channels, sizeof(multi_channel_info) * description.request_channel_count); }}} and added {{{return B_ERROR}}} right after it. The system was able to boot. If I would change `B_ERROR` to `B_OK`, then the same kernel panic would come up again. I'm out of ideas of what could it be. It seems to be something wrong with `multi_audio_control` (or at least there's where things break badly), but at the same time, the error seems to happen only when the function returns. I may be missing something, being a C programmer with little experience in C++. Does C++ calls something on the function's data after the return?",bug,closed,normal,Unscheduled,Drivers/Audio/HDA,R1/Development,invalid,,,,,x86