[PATCH] ASoC: Intel: skl_hda_dsp_generic: Fix NULLptr dereference in autosuspend delay
Cezary Rojewski
cezary.rojewski at intel.com
Wed Jul 22 20:59:05 CEST 2020
On 2020-07-22 8:24 PM, Pierre-Louis Bossart wrote:
>
>
> On 7/22/20 12:35 PM, Mateusz Gorski wrote:
>> Different modules for HDMI codec are used depending on the
>> "hda_codec_use_common_hdmi" option being enabled or not. Driver private
>> context for both of them is different.
>> This leads to null-pointer dereference error when driver tries to set
>> autosuspend delay for HDMI codec while the option is off (hdac_hdmi
>> module is used for HDMI).
>>
>> Change the string in conditional statement to "ehdaudio0D0" to ensure
>> that only the HDAudio codec is handled by this function.
>
> I am not sure this is correct.
>
> I may be wrong, but my understanding is the following:
>
> Before 5bf73b1b1dec, the driver would use the first dailink of the card,
> and in the case of devices without an HDaudio codec (e.g. Up2 board) it
> would set the auto suspend delay using that first dailink. See the code
> in skl_hda_fill_card_info(), it reorders the dailinks when HDaudio
> codecs are not present so if you test for 'edhaudio00' you no longer
> allow for this HDMI-only case to be handled with autosuspend.
>
> Kai would need to review this, so this will have to wait I am afraid.
>
So, for_each_card_rtds needs to be context aware (hdmi type). Right now,
introduced _autosuspend_delay is causing kernel panics.
More information about the Alsa-devel
mailing list