From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751646AbbLZTvh (ORCPT ); Sat, 26 Dec 2015 14:51:37 -0500 Received: from mail-lb0-f174.google.com ([209.85.217.174]:35325 "EHLO mail-lb0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751601AbbLZTve (ORCPT ); Sat, 26 Dec 2015 14:51:34 -0500 Subject: Re: [PATCH 6/7] drivers: net: cpsw: fix error return code To: Julia Lawall References: <1451143726-28195-1-git-send-email-Julia.Lawall@lip6.fr> <1451143726-28195-7-git-send-email-Julia.Lawall@lip6.fr> <567ED019.3000407@cogentembedded.com> <567ED36A.9000701@cogentembedded.com> Cc: netdev@vger.kernel.org, kernel-janitors@vger.kernel.org, linux-kernel@vger.kernel.org From: Sergei Shtylyov Organization: Cogent Embedded Message-ID: <567EEFC2.4080800@cogentembedded.com> Date: Sat, 26 Dec 2015 22:51:30 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <567ED36A.9000701@cogentembedded.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello. On 12/26/2015 08:50 PM, Sergei Shtylyov wrote: >>>> diff --git a/drivers/net/ethernet/ti/cpsw.c >>>> b/drivers/net/ethernet/ti/cpsw.c >>>> index 3409e80..6a76992 100644 >>>> --- a/drivers/net/ethernet/ti/cpsw.c >>>> +++ b/drivers/net/ethernet/ti/cpsw.c >>>> @@ -2448,8 +2448,10 @@ static int cpsw_probe(struct platform_device *pdev) >>>> >>>> /* RX IRQ */ >>>> irq = platform_get_irq(pdev, 1); >>>> - if (irq < 0) >>>> + if (irq < 0) { >>>> + ret = -ENOENT; >>> >>> Why not just propagate an error returned by that function? >> >> OK, I did what was done a few lines before in the same function: >> >> ndev->irq = platform_get_irq(pdev, 1); >> if (ndev->irq < 0) { >> dev_err(priv->dev, "error getting irq resource\n"); >> ret = -ENOENT; >> goto clean_ale_ret; >> } >> >> Maybe they should all be changed? > > Yeah, I'd vote for it. I'm seeing no sense in overriding an actual error. Hm, I decided to check drivers/base/dd.c and I think I maybe know the reason now: -ENXIO, usually returned by platform_get_irq(), is silently "swallowed" by really_probe(); to be precise, -ENODEV and -ENXIO are only reported with pr_debug(), while -ENOENT causes printk(KERN_WARNING, ...)... > [...] > >> julia MBR, Sergei