[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