alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ASoC: Intel: Skylake: Check the kcontrol against NULL
@ 2020-12-10 12:14 Lukasz Majczak
  2020-12-10 15:55 ` Gorski, Mateusz
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Lukasz Majczak @ 2020-12-10 12:14 UTC (permalink / raw)
  To: Pierre-Louis Bossart, Liam Girdwood, Mateusz Gorski
  Cc: alsa-devel, Guenter Roeck, Radoslaw Biernacki, linux-kernel,
	stable, Marcin Wojtas, Lukasz Majczak, Alex Levin

There is no check for the kcontrol against NULL and in some cases
it causes kernel to crash.

Fixes: 2d744ecf2b984 ("ASoC: Intel: Skylake: Automatic DMIC format configuration according to information from NHLT")
Cc: <stable@vger.kernel.org> # 5.4+
Signed-off-by: Lukasz Majczak <lma@semihalf.com>
---
 sound/soc/intel/skylake/skl-topology.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/sound/soc/intel/skylake/skl-topology.c b/sound/soc/intel/skylake/skl-topology.c
index ae466cd592922..c9abbe4ff0ba3 100644
--- a/sound/soc/intel/skylake/skl-topology.c
+++ b/sound/soc/intel/skylake/skl-topology.c
@@ -3618,12 +3618,18 @@ static void skl_tplg_complete(struct snd_soc_component *component)
 	int i;
 
 	list_for_each_entry(dobj, &component->dobj_list, list) {
-		struct snd_kcontrol *kcontrol = dobj->control.kcontrol;
-		struct soc_enum *se =
-			(struct soc_enum *)kcontrol->private_value;
-		char **texts = dobj->control.dtexts;
+		struct snd_kcontrol *kcontrol;
+		struct soc_enum *se;
+		char **texts;
 		char chan_text[4];
 
+		kcontrol = dobj->control.kcontrol;
+		if(!kcontrol)
+			continue;
+
+		se = (struct soc_enum *)kcontrol->private_value;
+		texts = dobj->control.dtexts;
+
 		if (dobj->type != SND_SOC_DOBJ_ENUM ||
 		    dobj->control.kcontrol->put !=
 		    skl_tplg_multi_config_set_dmic)

base-commit: 69fe63aa100220c8fd1f451dd54dd0895df1441d
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH] ASoC: Intel: Skylake: Check the kcontrol against NULL
  2020-12-10 12:14 [PATCH] ASoC: Intel: Skylake: Check the kcontrol against NULL Lukasz Majczak
@ 2020-12-10 15:55 ` Gorski, Mateusz
  2020-12-10 16:01   ` Guenter Roeck
  2020-12-11 15:42 ` Amadeusz Sławiński
  2020-12-17 13:04 ` [PATCH v2] " Lukasz Majczak
  2 siblings, 1 reply; 10+ messages in thread
From: Gorski, Mateusz @ 2020-12-10 15:55 UTC (permalink / raw)
  To: Lukasz Majczak, Pierre-Louis Bossart, Liam Girdwood
  Cc: alsa-devel, Guenter Roeck, Radoslaw Biernacki, linux-kernel,
	stable, Marcin Wojtas, Alex Levin


> There is no check for the kcontrol against NULL and in some cases
> it causes kernel to crash.
>
> Fixes: 2d744ecf2b984 ("ASoC: Intel: Skylake: Automatic DMIC format configuration according to information from NHLT")
> Cc: <stable@vger.kernel.org> # 5.4+
> Signed-off-by: Lukasz Majczak <lma@semihalf.com>
> ---
>   sound/soc/intel/skylake/skl-topology.c | 14 ++++++++++----
>   1 file changed, 10 insertions(+), 4 deletions(-)
>
> diff --git a/sound/soc/intel/skylake/skl-topology.c b/sound/soc/intel/skylake/skl-topology.c
> index ae466cd592922..c9abbe4ff0ba3 100644
> --- a/sound/soc/intel/skylake/skl-topology.c
> +++ b/sound/soc/intel/skylake/skl-topology.c
> @@ -3618,12 +3618,18 @@ static void skl_tplg_complete(struct snd_soc_component *component)
>   	int i;
>   
>   	list_for_each_entry(dobj, &component->dobj_list, list) {
> -		struct snd_kcontrol *kcontrol = dobj->control.kcontrol;
> -		struct soc_enum *se =
> -			(struct soc_enum *)kcontrol->private_value;
> -		char **texts = dobj->control.dtexts;
> +		struct snd_kcontrol *kcontrol;
> +		struct soc_enum *se;
> +		char **texts;
>   		char chan_text[4];
>   
> +		kcontrol = dobj->control.kcontrol;
> +		if(!kcontrol)
> +			continue;
> +
> +		se = (struct soc_enum *)kcontrol->private_value;
> +		texts = dobj->control.dtexts;
> +
>   		if (dobj->type != SND_SOC_DOBJ_ENUM ||
>   		    dobj->control.kcontrol->put !=
>   		    skl_tplg_multi_config_set_dmic)
>
> base-commit: 69fe63aa100220c8fd1f451dd54dd0895df1441d


Thanks for pointing out and fixing this. This check was obviously 
missing there. I did a quick verification on few of our platforms, 
encountered no issues, so:

     Reviewed-by: Mateusz Gorski <mateusz.gorski@linux.intel.com>


Also, could you please:

- describe the affected configuration (used machine driver or audio card 
name, device name),
- share full dmesg logs from one of said crashes,
- copy the output of "amixer -c0 controls" command executed on affected 
device.

These would be useful information for us to further improve our 
validation and help us with debugging.


Thanks,

Mateusz



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] ASoC: Intel: Skylake: Check the kcontrol against NULL
  2020-12-10 15:55 ` Gorski, Mateusz
@ 2020-12-10 16:01   ` Guenter Roeck
  0 siblings, 0 replies; 10+ messages in thread
From: Guenter Roeck @ 2020-12-10 16:01 UTC (permalink / raw)
  To: Gorski, Mateusz
  Cc: ALSA development, Radoslaw Biernacki, Pierre-Louis Bossart,
	# v4 . 10+,
	linux-kernel, Liam Girdwood, Marcin Wojtas, Lukasz Majczak,
	Alex Levin

On Thu, Dec 10, 2020 at 7:55 AM Gorski, Mateusz <
mateusz.gorski@linux.intel.com> wrote:

>
> > There is no check for the kcontrol against NULL and in some cases
> > it causes kernel to crash.
> >
> > Fixes: 2d744ecf2b984 ("ASoC: Intel: Skylake: Automatic DMIC format
> configuration according to information from NHLT")
> > Cc: <stable@vger.kernel.org> # 5.4+
> > Signed-off-by: Lukasz Majczak <lma@semihalf.com>
> > ---
> >   sound/soc/intel/skylake/skl-topology.c | 14 ++++++++++----
> >   1 file changed, 10 insertions(+), 4 deletions(-)
> >
> > diff --git a/sound/soc/intel/skylake/skl-topology.c
> b/sound/soc/intel/skylake/skl-topology.c
> > index ae466cd592922..c9abbe4ff0ba3 100644
> > --- a/sound/soc/intel/skylake/skl-topology.c
> > +++ b/sound/soc/intel/skylake/skl-topology.c
> > @@ -3618,12 +3618,18 @@ static void skl_tplg_complete(struct
> snd_soc_component *component)
> >       int i;
> >
> >       list_for_each_entry(dobj, &component->dobj_list, list) {
> > -             struct snd_kcontrol *kcontrol = dobj->control.kcontrol;
> > -             struct soc_enum *se =
> > -                     (struct soc_enum *)kcontrol->private_value;
> > -             char **texts = dobj->control.dtexts;
> > +             struct snd_kcontrol *kcontrol;
> > +             struct soc_enum *se;
> > +             char **texts;
> >               char chan_text[4];
> >
> > +             kcontrol = dobj->control.kcontrol;
> > +             if(!kcontrol)
> > +                     continue;
> > +
> > +             se = (struct soc_enum *)kcontrol->private_value;
> > +             texts = dobj->control.dtexts;
> > +
> >               if (dobj->type != SND_SOC_DOBJ_ENUM ||
> >                   dobj->control.kcontrol->put !=
> >                   skl_tplg_multi_config_set_dmic)
> >
> > base-commit: 69fe63aa100220c8fd1f451dd54dd0895df1441d
>
>
> Thanks for pointing out and fixing this. This check was obviously
> missing there. I did a quick verification on few of our platforms,
> encountered no issues, so:
>
>      Reviewed-by: Mateusz Gorski <mateusz.gorski@linux.intel.com>
>
>
> Also, could you please:
>
> - describe the affected configuration (used machine driver or audio card
> name, device name),
>

Primarily Google Pixelbook. However, this can happen whenever
dobj->type != SND_SOC_DOBJ_ENUM. For many of those other types,
kcontrol is not set. It is pure luck that the problem is not seen
everywhere,
and it seems to be compiler dependent. [Some compilers or compiler
versions only assign se when needed, ie after the if() statement].

Guenter


> - share full dmesg logs from one of said crashes,
> - copy the output of "amixer -c0 controls" command executed on affected
> device.
>
> These would be useful information for us to further improve our
> validation and help us with debugging.
>
>
> Thanks,
>
> Mateusz
>
>
>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] ASoC: Intel: Skylake: Check the kcontrol against NULL
  2020-12-10 12:14 [PATCH] ASoC: Intel: Skylake: Check the kcontrol against NULL Lukasz Majczak
  2020-12-10 15:55 ` Gorski, Mateusz
@ 2020-12-11 15:42 ` Amadeusz Sławiński
  2020-12-17 13:04 ` [PATCH v2] " Lukasz Majczak
  2 siblings, 0 replies; 10+ messages in thread
From: Amadeusz Sławiński @ 2020-12-11 15:42 UTC (permalink / raw)
  To: Lukasz Majczak, Pierre-Louis Bossart, Liam Girdwood, Mateusz Gorski
  Cc: alsa-devel, Guenter Roeck, Radoslaw Biernacki, linux-kernel,
	stable, Marcin Wojtas, Alex Levin

On 12/10/2020 1:14 PM, Lukasz Majczak wrote:
> +		kcontrol = dobj->control.kcontrol;
> +		if(!kcontrol)
> +			continue;

Small nitpick, there should be space between if and opening parenthesis 
as recommended by coding style.

Thanks,
Amadeusz

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2] ASoC: Intel: Skylake: Check the kcontrol against NULL
  2020-12-10 12:14 [PATCH] ASoC: Intel: Skylake: Check the kcontrol against NULL Lukasz Majczak
  2020-12-10 15:55 ` Gorski, Mateusz
  2020-12-11 15:42 ` Amadeusz Sławiński
@ 2020-12-17 13:04 ` Lukasz Majczak
  2021-01-12 11:34   ` Łukasz Majczak
  2 siblings, 1 reply; 10+ messages in thread
From: Lukasz Majczak @ 2020-12-17 13:04 UTC (permalink / raw)
  To: Pierre-Louis Bossart, Liam Girdwood, Mateusz Gorski
  Cc: alsa-devel, Guenter Roeck, Radoslaw Biernacki, linux-kernel,
	stable, Marcin Wojtas, Lukasz Majczak, Alex Levin

There is no check for the kcontrol against NULL and in some cases
it causes kernel to crash.

Fixes: 2d744ecf2b984 ("ASoC: Intel: Skylake: Automatic DMIC format configuration according to information from NHLT")
Cc: <stable@vger.kernel.org> # 5.4+
Signed-off-by: Lukasz Majczak <lma@semihalf.com>
Reviewed-by: Mateusz Gorski <mateusz.gorski@linux.intel.com>
---
 sound/soc/intel/skylake/skl-topology.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)
 v1 -> v2: fixed coding style

diff --git a/sound/soc/intel/skylake/skl-topology.c b/sound/soc/intel/skylake/skl-topology.c
index ae466cd592922..8f0bfda7096a9 100644
--- a/sound/soc/intel/skylake/skl-topology.c
+++ b/sound/soc/intel/skylake/skl-topology.c
@@ -3618,12 +3618,18 @@ static void skl_tplg_complete(struct snd_soc_component *component)
 	int i;
 
 	list_for_each_entry(dobj, &component->dobj_list, list) {
-		struct snd_kcontrol *kcontrol = dobj->control.kcontrol;
-		struct soc_enum *se =
-			(struct soc_enum *)kcontrol->private_value;
-		char **texts = dobj->control.dtexts;
+		struct snd_kcontrol *kcontrol;
+		struct soc_enum *se;
+		char **texts;
 		char chan_text[4];
 
+		kcontrol = dobj->control.kcontrol;
+		if (!kcontrol)
+			continue;
+
+		se = (struct soc_enum *)kcontrol->private_value;
+		texts = dobj->control.dtexts;
+
 		if (dobj->type != SND_SOC_DOBJ_ENUM ||
 		    dobj->control.kcontrol->put !=
 		    skl_tplg_multi_config_set_dmic)
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH v2] ASoC: Intel: Skylake: Check the kcontrol against NULL
  2020-12-17 13:04 ` [PATCH v2] " Lukasz Majczak
@ 2021-01-12 11:34   ` Łukasz Majczak
  2021-01-20 15:49     ` Łukasz Majczak
  0 siblings, 1 reply; 10+ messages in thread
From: Łukasz Majczak @ 2021-01-12 11:34 UTC (permalink / raw)
  To: Pierre-Louis Bossart, Liam Girdwood, Mateusz Gorski
  Cc: alsa-devel, Guenter Roeck, Radoslaw Biernacki, linux-kernel,
	stable, Marcin Wojtas, Alex Levin

Hi,

This is just a kind reminder. Is there anything more required to
upstream this patch?

Best regards,
Lukasz


czw., 17 gru 2020 o 14:06 Lukasz Majczak <lma@semihalf.com> napisał(a):
>
> There is no check for the kcontrol against NULL and in some cases
> it causes kernel to crash.
>
> Fixes: 2d744ecf2b984 ("ASoC: Intel: Skylake: Automatic DMIC format configuration according to information from NHLT")
> Cc: <stable@vger.kernel.org> # 5.4+
> Signed-off-by: Lukasz Majczak <lma@semihalf.com>
> Reviewed-by: Mateusz Gorski <mateusz.gorski@linux.intel.com>
> ---
>  sound/soc/intel/skylake/skl-topology.c | 14 ++++++++++----
>  1 file changed, 10 insertions(+), 4 deletions(-)
>  v1 -> v2: fixed coding style
>
> diff --git a/sound/soc/intel/skylake/skl-topology.c b/sound/soc/intel/skylake/skl-topology.c
> index ae466cd592922..8f0bfda7096a9 100644
> --- a/sound/soc/intel/skylake/skl-topology.c
> +++ b/sound/soc/intel/skylake/skl-topology.c
> @@ -3618,12 +3618,18 @@ static void skl_tplg_complete(struct snd_soc_component *component)
>         int i;
>
>         list_for_each_entry(dobj, &component->dobj_list, list) {
> -               struct snd_kcontrol *kcontrol = dobj->control.kcontrol;
> -               struct soc_enum *se =
> -                       (struct soc_enum *)kcontrol->private_value;
> -               char **texts = dobj->control.dtexts;
> +               struct snd_kcontrol *kcontrol;
> +               struct soc_enum *se;
> +               char **texts;
>                 char chan_text[4];
>
> +               kcontrol = dobj->control.kcontrol;
> +               if (!kcontrol)
> +                       continue;
> +
> +               se = (struct soc_enum *)kcontrol->private_value;
> +               texts = dobj->control.dtexts;
> +
>                 if (dobj->type != SND_SOC_DOBJ_ENUM ||
>                     dobj->control.kcontrol->put !=
>                     skl_tplg_multi_config_set_dmic)
> --
> 2.25.1
>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2] ASoC: Intel: Skylake: Check the kcontrol against NULL
  2021-01-12 11:34   ` Łukasz Majczak
@ 2021-01-20 15:49     ` Łukasz Majczak
  2021-01-20 16:33       ` Pierre-Louis Bossart
  0 siblings, 1 reply; 10+ messages in thread
From: Łukasz Majczak @ 2021-01-20 15:49 UTC (permalink / raw)
  To: Pierre-Louis Bossart
  Cc: alsa-devel, Guenter Roeck, Radoslaw Biernacki, linux-kernel,
	stable, Liam Girdwood, Mateusz Gorski, Marcin Wojtas, Alex Levin

Hi Pierre,

Is there anything more to do to get the ACK for this patch?

Best regards,
Lukasz

wt., 12 sty 2021 o 12:34 Łukasz Majczak <lma@semihalf.com> napisał(a):
>
> Hi,
>
> This is just a kind reminder. Is there anything more required to
> upstream this patch?
>
> Best regards,
> Lukasz
>
>
> czw., 17 gru 2020 o 14:06 Lukasz Majczak <lma@semihalf.com> napisał(a):
> >
> > There is no check for the kcontrol against NULL and in some cases
> > it causes kernel to crash.
> >
> > Fixes: 2d744ecf2b984 ("ASoC: Intel: Skylake: Automatic DMIC format configuration according to information from NHLT")
> > Cc: <stable@vger.kernel.org> # 5.4+
> > Signed-off-by: Lukasz Majczak <lma@semihalf.com>
> > Reviewed-by: Mateusz Gorski <mateusz.gorski@linux.intel.com>
> > ---
> >  sound/soc/intel/skylake/skl-topology.c | 14 ++++++++++----
> >  1 file changed, 10 insertions(+), 4 deletions(-)
> >  v1 -> v2: fixed coding style
> >
> > diff --git a/sound/soc/intel/skylake/skl-topology.c b/sound/soc/intel/skylake/skl-topology.c
> > index ae466cd592922..8f0bfda7096a9 100644
> > --- a/sound/soc/intel/skylake/skl-topology.c
> > +++ b/sound/soc/intel/skylake/skl-topology.c
> > @@ -3618,12 +3618,18 @@ static void skl_tplg_complete(struct snd_soc_component *component)
> >         int i;
> >
> >         list_for_each_entry(dobj, &component->dobj_list, list) {
> > -               struct snd_kcontrol *kcontrol = dobj->control.kcontrol;
> > -               struct soc_enum *se =
> > -                       (struct soc_enum *)kcontrol->private_value;
> > -               char **texts = dobj->control.dtexts;
> > +               struct snd_kcontrol *kcontrol;
> > +               struct soc_enum *se;
> > +               char **texts;
> >                 char chan_text[4];
> >
> > +               kcontrol = dobj->control.kcontrol;
> > +               if (!kcontrol)
> > +                       continue;
> > +
> > +               se = (struct soc_enum *)kcontrol->private_value;
> > +               texts = dobj->control.dtexts;
> > +
> >                 if (dobj->type != SND_SOC_DOBJ_ENUM ||
> >                     dobj->control.kcontrol->put !=
> >                     skl_tplg_multi_config_set_dmic)
> > --
> > 2.25.1
> >

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2] ASoC: Intel: Skylake: Check the kcontrol against NULL
  2021-01-20 15:49     ` Łukasz Majczak
@ 2021-01-20 16:33       ` Pierre-Louis Bossart
  2021-01-20 16:41         ` Rojewski, Cezary
  0 siblings, 1 reply; 10+ messages in thread
From: Pierre-Louis Bossart @ 2021-01-20 16:33 UTC (permalink / raw)
  To: Łukasz Majczak
  Cc: alsa-devel, Guenter Roeck, Rojewski, Cezary, Radoslaw Biernacki,
	linux-kernel, stable, Amadeusz Sławiński,
	Liam Girdwood, Mateusz Gorski, Marcin Wojtas, Alex Levin



On 1/20/21 9:49 AM, Łukasz Majczak wrote:
> Hi Pierre,
> 
> Is there anything more to do to get the ACK for this patch?

Adding Cezary and Amadeusz for feedback, I can't pretend having any sort 
of knowledge on the Skylake driver internals and topology usage.

> Best regards,
> Lukasz
> 
> wt., 12 sty 2021 o 12:34 Łukasz Majczak <lma@semihalf.com> napisał(a):
>>
>> Hi,
>>
>> This is just a kind reminder. Is there anything more required to
>> upstream this patch?
>>
>> Best regards,
>> Lukasz
>>
>>
>> czw., 17 gru 2020 o 14:06 Lukasz Majczak <lma@semihalf.com> napisał(a):
>>>
>>> There is no check for the kcontrol against NULL and in some cases
>>> it causes kernel to crash.
>>>
>>> Fixes: 2d744ecf2b984 ("ASoC: Intel: Skylake: Automatic DMIC format configuration according to information from NHLT")
>>> Cc: <stable@vger.kernel.org> # 5.4+
>>> Signed-off-by: Lukasz Majczak <lma@semihalf.com>
>>> Reviewed-by: Mateusz Gorski <mateusz.gorski@linux.intel.com>
>>> ---
>>>   sound/soc/intel/skylake/skl-topology.c | 14 ++++++++++----
>>>   1 file changed, 10 insertions(+), 4 deletions(-)
>>>   v1 -> v2: fixed coding style
>>>
>>> diff --git a/sound/soc/intel/skylake/skl-topology.c b/sound/soc/intel/skylake/skl-topology.c
>>> index ae466cd592922..8f0bfda7096a9 100644
>>> --- a/sound/soc/intel/skylake/skl-topology.c
>>> +++ b/sound/soc/intel/skylake/skl-topology.c
>>> @@ -3618,12 +3618,18 @@ static void skl_tplg_complete(struct snd_soc_component *component)
>>>          int i;
>>>
>>>          list_for_each_entry(dobj, &component->dobj_list, list) {
>>> -               struct snd_kcontrol *kcontrol = dobj->control.kcontrol;
>>> -               struct soc_enum *se =
>>> -                       (struct soc_enum *)kcontrol->private_value;
>>> -               char **texts = dobj->control.dtexts;
>>> +               struct snd_kcontrol *kcontrol;
>>> +               struct soc_enum *se;
>>> +               char **texts;
>>>                  char chan_text[4];
>>>
>>> +               kcontrol = dobj->control.kcontrol;
>>> +               if (!kcontrol)
>>> +                       continue;
>>> +
>>> +               se = (struct soc_enum *)kcontrol->private_value;
>>> +               texts = dobj->control.dtexts;
>>> +
>>>                  if (dobj->type != SND_SOC_DOBJ_ENUM ||
>>>                      dobj->control.kcontrol->put !=
>>>                      skl_tplg_multi_config_set_dmic)
>>> --
>>> 2.25.1
>>>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: [PATCH v2] ASoC: Intel: Skylake: Check the kcontrol against NULL
  2021-01-20 16:33       ` Pierre-Louis Bossart
@ 2021-01-20 16:41         ` Rojewski, Cezary
  2021-01-20 16:45           ` Rojewski, Cezary
  0 siblings, 1 reply; 10+ messages in thread
From: Rojewski, Cezary @ 2021-01-20 16:41 UTC (permalink / raw)
  To: Pierre-Louis Bossart, Łukasz Majczak
  Cc: alsa-devel, Guenter Roeck, Radoslaw Biernacki, linux-kernel,
	stable, Amadeusz Sławiński, Liam Girdwood,
	Mateusz Gorski, Marcin Wojtas, Alex Levin

On 2021-01-20 5:33 PM, Pierre-Louis Bossart wrote:
> On 1/20/21 9:49 AM, Łukasz Majczak wrote:
>> Hi Pierre,
>>
>> Is there anything more to do to get the ACK for this patch?
> 
> Adding Cezary and Amadeusz for feedback, I can't pretend having any sort 
> of knowledge on the Skylake driver internals and topology usage.
> 

Thanks for the CC, Pierre.

...

>>>>
>>>> diff --git a/sound/soc/intel/skylake/skl-topology.c 
>>>> b/sound/soc/intel/skylake/skl-topology.c
>>>> index ae466cd592922..8f0bfda7096a9 100644
>>>> --- a/sound/soc/intel/skylake/skl-topology.c
>>>> +++ b/sound/soc/intel/skylake/skl-topology.c
>>>> @@ -3618,12 +3618,18 @@ static void skl_tplg_complete(struct 
>>>> snd_soc_component *component)
>>>>          int i;
>>>>
>>>>          list_for_each_entry(dobj, &component->dobj_list, list) {
>>>> -               struct snd_kcontrol *kcontrol = dobj->control.kcontrol;
>>>> -               struct soc_enum *se =
>>>> -                       (struct soc_enum *)kcontrol->private_value;
>>>> -               char **texts = dobj->control.dtexts;
>>>> +               struct snd_kcontrol *kcontrol;
>>>> +               struct soc_enum *se;
>>>> +               char **texts;
>>>>                  char chan_text[4];
>>>>
>>>> +               kcontrol = dobj->control.kcontrol;
>>>> +               if (!kcontrol)
>>>> +                       continue;
>>>> +
>>>> +               se = (struct soc_enum *)kcontrol->private_value;
>>>> +               texts = dobj->control.dtexts;
>>>> +
>>>>                  if (dobj->type != SND_SOC_DOBJ_ENUM ||
>>>>                      dobj->control.kcontrol->put !=
>>>>                      skl_tplg_multi_config_set_dmic)

Just checked the history behind this. And must say, I liked Ricardo's
version better. Except for the "= {};" bit which Mark already pointed
out - it should be a separate fix - it's simply more optional

e.g.: 'kcontrol' gets assigned yet 'if' above is not updated accordingly:
s/dobj->control.kcontrol->put/kcontrol->put

Czarek


^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: [PATCH v2] ASoC: Intel: Skylake: Check the kcontrol against NULL
  2021-01-20 16:41         ` Rojewski, Cezary
@ 2021-01-20 16:45           ` Rojewski, Cezary
  0 siblings, 0 replies; 10+ messages in thread
From: Rojewski, Cezary @ 2021-01-20 16:45 UTC (permalink / raw)
  To: Pierre-Louis Bossart, Łukasz Majczak
  Cc: alsa-devel, Guenter Roeck, Radoslaw Biernacki, linux-kernel,
	stable, Amadeusz Sławiński, Liam Girdwood,
	Mateusz Gorski, Marcin Wojtas, Alex Levin

On 2021-01-20 5:41 PM, Rojewski, Cezary wrote:
> 
> Just checked the history behind this. And must say, I liked Ricardo's
> version better. Except for the "= {};" bit which Mark already pointed
> out - it should be a separate fix - it's simply more optional

Meant to say: optimal.


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2021-01-20 16:46 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-10 12:14 [PATCH] ASoC: Intel: Skylake: Check the kcontrol against NULL Lukasz Majczak
2020-12-10 15:55 ` Gorski, Mateusz
2020-12-10 16:01   ` Guenter Roeck
2020-12-11 15:42 ` Amadeusz Sławiński
2020-12-17 13:04 ` [PATCH v2] " Lukasz Majczak
2021-01-12 11:34   ` Łukasz Majczak
2021-01-20 15:49     ` Łukasz Majczak
2021-01-20 16:33       ` Pierre-Louis Bossart
2021-01-20 16:41         ` Rojewski, Cezary
2021-01-20 16:45           ` Rojewski, Cezary

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).