All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hans de Goede <hdegoede@redhat.com>
To: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>,
	Jing Xiangfeng <jingxiangfeng@huawei.com>,
	cezary.rojewski@intel.com, liam.r.girdwood@linux.intel.com,
	yang.jie@linux.intel.com, broonie@kernel.org, perex@perex.cz,
	tiwai@suse.com, kuninori.morimoto.gx@renesas.com,
	paul@crapouillou.net
Cc: alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] ASoC: Intel: bytcht_es8316: Add missed put_device()
Date: Tue, 14 Jul 2020 21:29:33 +0200	[thread overview]
Message-ID: <0405e05d-3f46-dba4-6558-7cf09fa3abe4@redhat.com> (raw)
In-Reply-To: <48bdc22e-a0fc-0402-a003-1d0736107e8a@linux.intel.com>

Hi,

On 7/14/20 5:32 PM, Pierre-Louis Bossart wrote:
> 
> 
> On 7/14/20 8:33 AM, Hans de Goede wrote:
>> Hi,
>>
>> On 7/14/20 10:09 AM, Jing Xiangfeng wrote:
>>> snd_byt_cht_es8316_mc_probe() misses to call put_device() in an error
>>> path. Add the missed function call to fix it.
>>>
>>> Fixes: ba49cf6f8e4a ("ASoC: Intel: bytcht_es8316: Add quirk for inverted jack detect")
>>> Signed-off-by: Jing Xiangfeng <jingxiangfeng@huawei.com>
>>
>> Patch looks good to me:
>>
>> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
> 
> Actually the existing code looks quite odd to me:
> 
> if (cnt) {
>      ret = device_add_properties(codec_dev, props);
>      if (ret)
>          return ret;
> }
> 
> devm_acpi_dev_add_driver_gpios(codec_dev, byt_cht_es8316_gpios);
> priv->speaker_en_gpio =
>      gpiod_get_index(codec_dev, "speaker-enable", 0,
>              /* see comment in byt_cht_es8316_resume */
>              GPIOD_OUT_LOW | GPIOD_FLAGS_BIT_NONEXCLUSIVE);
> put_device(codec_dev);
> 
> if the first branch is not taken the put_device() will not be balanced.

The get_device() does not come from the device_add_properties, it comes
from the earlier:

codec_dev = bus_find_device_by_name(&i2c_bus_type, NULL, codec_name);

call.

Regards,

Hans



> 
> Shouldn't this be:
> 
> if (cnt) {
>      ret = device_add_properties(codec_dev, props);
>      put_device(codec_dev);
>      if (ret)
>          return ret;
> }
> 
> devm_acpi_dev_add_driver_gpios(codec_dev, byt_cht_es8316_gpios);
> priv->speaker_en_gpio =
>      gpiod_get_index(codec_dev, "speaker-enable", 0,
>              /* see comment in byt_cht_es8316_resume */
>              GPIOD_OUT_LOW | GPIOD_FLAGS_BIT_NONEXCLUSIVE);
> /* removed put_device(codec_dev); */
> 
>>
>> Regards,
>>
>> Hans
>>
>>
>>> ---
>>>   sound/soc/intel/boards/bytcht_es8316.c | 4 +++-
>>>   1 file changed, 3 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/sound/soc/intel/boards/bytcht_es8316.c b/sound/soc/intel/boards/bytcht_es8316.c
>>> index 9e5fc9430628..ecbc58e8a37f 100644
>>> --- a/sound/soc/intel/boards/bytcht_es8316.c
>>> +++ b/sound/soc/intel/boards/bytcht_es8316.c
>>> @@ -543,8 +543,10 @@ static int snd_byt_cht_es8316_mc_probe(struct platform_device *pdev)
>>>       if (cnt) {
>>>           ret = device_add_properties(codec_dev, props);
>>> -        if (ret)
>>> +        if (ret) {
>>> +            put_device(codec_dev);
>>>               return ret;
>>> +        }
>>>       }
>>>       devm_acpi_dev_add_driver_gpios(codec_dev, byt_cht_es8316_gpios);
>>>
>>
> 


  reply	other threads:[~2020-07-14 19:30 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-14  8:09 [PATCH] ASoC: Intel: bytcht_es8316: Add missed put_device() Jing Xiangfeng
2020-07-14  8:09 ` Jing Xiangfeng
2020-07-14 13:33 ` Hans de Goede
2020-07-14 15:32   ` Pierre-Louis Bossart
2020-07-14 19:29     ` Hans de Goede [this message]
2020-07-16 16:48       ` Pierre-Louis Bossart
2020-07-16 23:57 ` 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=0405e05d-3f46-dba4-6558-7cf09fa3abe4@redhat.com \
    --to=hdegoede@redhat.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=cezary.rojewski@intel.com \
    --cc=jingxiangfeng@huawei.com \
    --cc=kuninori.morimoto.gx@renesas.com \
    --cc=liam.r.girdwood@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=paul@crapouillou.net \
    --cc=perex@perex.cz \
    --cc=pierre-louis.bossart@linux.intel.com \
    --cc=tiwai@suse.com \
    --cc=yang.jie@linux.intel.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.