All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
To: Mateusz Gorski <mateusz.gorski@linux.intel.com>,
	alsa-devel@alsa-project.org
Cc: cezary.rojewski@intel.com, broonie@kernel.org, tiwai@suse.com
Subject: Re: [PATCH] ASoC: Intel: skl_hda_dsp_generic: Fix NULLptr dereference in autosuspend delay
Date: Wed, 22 Jul 2020 13:24:19 -0500	[thread overview]
Message-ID: <2674621e-1546-3048-3ba2-f8fe1265d6e1@linux.intel.com> (raw)
In-Reply-To: <20200722173524.30161-1-mateusz.gorski@linux.intel.com>



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.

> 
> Fixes: 5bf73b1b1dec ("ASoC: intel/skl/hda - fix oops on systems without i915 audio codec")
> Signed-off-by: Mateusz Gorski <mateusz.gorski@linux.intel.com>
> ---
>   sound/soc/intel/boards/skl_hda_dsp_generic.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/sound/soc/intel/boards/skl_hda_dsp_generic.c b/sound/soc/intel/boards/skl_hda_dsp_generic.c
> index ca4900036ead..bc50eda297ab 100644
> --- a/sound/soc/intel/boards/skl_hda_dsp_generic.c
> +++ b/sound/soc/intel/boards/skl_hda_dsp_generic.c
> @@ -181,7 +181,7 @@ static void skl_set_hda_codec_autosuspend_delay(struct snd_soc_card *card)
>   	struct snd_soc_dai *dai;
>   
>   	for_each_card_rtds(card, rtd) {
> -		if (!strstr(rtd->dai_link->codecs->name, "ehdaudio"))
> +		if (!strstr(rtd->dai_link->codecs->name, "ehdaudio0D0"))
>   			continue;
>   		dai = asoc_rtd_to_codec(rtd, 0);
>   		hda_pvt = snd_soc_component_get_drvdata(dai->component);
> 

  reply	other threads:[~2020-07-22 18:25 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-22 17:35 [PATCH] ASoC: Intel: skl_hda_dsp_generic: Fix NULLptr dereference in autosuspend delay Mateusz Gorski
2020-07-22 18:24 ` Pierre-Louis Bossart [this message]
2020-07-22 18:59   ` Cezary Rojewski
2020-07-22 19:04     ` Pierre-Louis Bossart
2020-08-12 13:48       ` Kai Vehmanen
2020-08-17 14:32         ` Gorski, Mateusz
2020-08-17 16:35           ` Kai Vehmanen
2020-08-19 12:15 ` Mark Brown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2674621e-1546-3048-3ba2-f8fe1265d6e1@linux.intel.com \
    --to=pierre-louis.bossart@linux.intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=cezary.rojewski@intel.com \
    --cc=mateusz.gorski@linux.intel.com \
    --cc=tiwai@suse.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.