Suggestion, just as a test - can the array (hda_widget_get_associations) be
padded to a large enough size to prevent the over-write? That would confirm the
cause.
From: Adrien Destugues <pulkomandy@xxxxxxxxxxxxx>
To: haiku-development@xxxxxxxxxxxxx
Sent: Sunday, June 25, 2017 2:11 AM
Subject: [haiku-development] Re: Intel HDA driver issues
On Sun, Jun 25, 2017 at 05:39:44AM +0000, Jessica Hamilton wrote:
I've been tracing the hda driver to find out why I've had to blacklist it
on my macbook air with the x86_64 build, and have finally traced it to a
problem with the cookie passed into multi_audio_control, where
hda_audio_group->multi has a mangled pointer.
The top 32 bits of the pointer are 0yFFFFFF00 instead of 0xFFFFFFFF like
all other pointers.
I've found as a workaround to fix up the high 32 bits of the address allows
the driver to run successfully.
There is only one place where the address is set, in hda_codec.cpp:1279.
Adding tracing here, and the pointer is valid.
I have no idea how this is happening, as other pointers don't appear to be
affected at all.