diff mbox

[-next] ASoC: sun4i-codec: Fix error return code in sun4i_codec_probe()

Message ID 1470836554-11569-1-git-send-email-weiyj.lk@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Wei Yongjun Aug. 10, 2016, 1:42 p.m. UTC
Fix to return error code -ENOMEM instead of 0 when create card
failed, as done elsewhere in this function.

Fixes: 45fb6b6f2aa3 ("ASoC: sunxi: add support for the on-chip
codec on early Allwinner SoCs")
Signed-off-by: Wei Yongjun <weiyj.lk@gmail.com>
---
 sound/soc/sunxi/sun4i-codec.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Chen-Yu Tsai Aug. 10, 2016, 2:04 p.m. UTC | #1
On Wed, Aug 10, 2016 at 9:42 PM, Wei Yongjun <weiyj.lk@gmail.com> wrote:
> Fix to return error code -ENOMEM instead of 0 when create card
> failed, as done elsewhere in this function.
>
> Fixes: 45fb6b6f2aa3 ("ASoC: sunxi: add support for the on-chip
> codec on early Allwinner SoCs")
> Signed-off-by: Wei Yongjun <weiyj.lk@gmail.com>
> ---
>  sound/soc/sunxi/sun4i-codec.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/sound/soc/sunxi/sun4i-codec.c b/sound/soc/sunxi/sun4i-codec.c
> index 0e19c50..e741659 100644
> --- a/sound/soc/sunxi/sun4i-codec.c
> +++ b/sound/soc/sunxi/sun4i-codec.c
> @@ -846,6 +846,7 @@ static int sun4i_codec_probe(struct platform_device *pdev)
>         card = sun4i_codec_create_card(&pdev->dev);
>         if (!card) {
>                 dev_err(&pdev->dev, "Failed to create our card\n");
> +               ret = -ENOMEM;
>                 goto err_unregister_codec;
>         }
>

This works, though it might be better to fix the create_card function and
any custom functions called in there to pass back a proper error value.

Regards
ChenYu
Wei Yongjun Aug. 11, 2016, 2:15 p.m. UTC | #2
Hi

On 08/10/2016 10:04 PM, Chen-Yu Tsai wrote:
> On Wed, Aug 10, 2016 at 9:42 PM, Wei Yongjun <weiyj.lk@gmail.com> wrote:
>> Fix to return error code -ENOMEM instead of 0 when create card
>> failed, as done elsewhere in this function.
>>
>> Fixes: 45fb6b6f2aa3 ("ASoC: sunxi: add support for the on-chip
>> codec on early Allwinner SoCs")
>> Signed-off-by: Wei Yongjun <weiyj.lk@gmail.com>
>> ---
>>  sound/soc/sunxi/sun4i-codec.c | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/sound/soc/sunxi/sun4i-codec.c b/sound/soc/sunxi/sun4i-codec.c
>> index 0e19c50..e741659 100644
>> --- a/sound/soc/sunxi/sun4i-codec.c
>> +++ b/sound/soc/sunxi/sun4i-codec.c
>> @@ -846,6 +846,7 @@ static int sun4i_codec_probe(struct platform_device *pdev)
>>         card = sun4i_codec_create_card(&pdev->dev);
>>         if (!card) {
>>                 dev_err(&pdev->dev, "Failed to create our card\n");
>> +               ret = -ENOMEM;
>>                 goto err_unregister_codec;
>>         }
>>
> This works, though it might be better to fix the create_card function and
> any custom functions called in there to pass back a proper error value.
>
Since sun4i_codec_create_card() can only failed when kmalloc() return NULL, so
still need to change sun4i_codec_create_card()?
Maxime Ripard Aug. 22, 2016, 5:54 a.m. UTC | #3
Hi,

On Thu, Aug 11, 2016 at 10:15:27PM +0800, Wei Yongjun wrote:
> Hi
> 
> On 08/10/2016 10:04 PM, Chen-Yu Tsai wrote:
> > On Wed, Aug 10, 2016 at 9:42 PM, Wei Yongjun <weiyj.lk@gmail.com> wrote:
> >> Fix to return error code -ENOMEM instead of 0 when create card
> >> failed, as done elsewhere in this function.
> >>
> >> Fixes: 45fb6b6f2aa3 ("ASoC: sunxi: add support for the on-chip
> >> codec on early Allwinner SoCs")
> >> Signed-off-by: Wei Yongjun <weiyj.lk@gmail.com>
> >> ---
> >>  sound/soc/sunxi/sun4i-codec.c | 1 +
> >>  1 file changed, 1 insertion(+)
> >>
> >> diff --git a/sound/soc/sunxi/sun4i-codec.c b/sound/soc/sunxi/sun4i-codec.c
> >> index 0e19c50..e741659 100644
> >> --- a/sound/soc/sunxi/sun4i-codec.c
> >> +++ b/sound/soc/sunxi/sun4i-codec.c
> >> @@ -846,6 +846,7 @@ static int sun4i_codec_probe(struct platform_device *pdev)
> >>         card = sun4i_codec_create_card(&pdev->dev);
> >>         if (!card) {
> >>                 dev_err(&pdev->dev, "Failed to create our card\n");
> >> +               ret = -ENOMEM;
> >>                 goto err_unregister_codec;
> >>         }
> >>
> > This works, though it might be better to fix the create_card function and
> > any custom functions called in there to pass back a proper error value.
> >
> Since sun4i_codec_create_card() can only failed when kmalloc() return NULL, so
> still need to change sun4i_codec_create_card()?

Yes, please do. It's better to return whatever the function was
returning. That was, if we add a new error code, we don't have to
rework the code over and over again.

Maxime
diff mbox

Patch

diff --git a/sound/soc/sunxi/sun4i-codec.c b/sound/soc/sunxi/sun4i-codec.c
index 0e19c50..e741659 100644
--- a/sound/soc/sunxi/sun4i-codec.c
+++ b/sound/soc/sunxi/sun4i-codec.c
@@ -846,6 +846,7 @@  static int sun4i_codec_probe(struct platform_device *pdev)
 	card = sun4i_codec_create_card(&pdev->dev);
 	if (!card) {
 		dev_err(&pdev->dev, "Failed to create our card\n");
+		ret = -ENOMEM;
 		goto err_unregister_codec;
 	}