public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Peter Chen <peter.chen@nxp.com>
To: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Pawel Laszczak <pawell@cadence.com>,
	"balbi@kernel.org" <balbi@kernel.org>,
	"gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>,
	"linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"rogerq@ti.com" <rogerq@ti.com>,
	"heikki.krogerus@linux.intel.com"
	<heikki.krogerus@linux.intel.com>,
	"colin.king@canonical.com" <colin.king@canonical.com>,
	"jpawar@cadence.com" <jpawar@cadence.com>,
	"ben.dooks@codethink.co.uk" <ben.dooks@codethink.co.uk>,
	"kurahul@cadence.com" <kurahul@cadence.com>,
	"sparmar@cadence.com" <sparmar@cadence.com>
Subject: Re: [PATCH 2/9] usb: cdns3: Improvement: removed not needed variables initialization
Date: Wed, 8 Jul 2020 06:53:43 +0000	[thread overview]
Message-ID: <20200708065352.GB18440@b29397-desktop> (raw)
In-Reply-To: <20200707101633.GV2571@kadam>

On 20-07-07 13:16:33, Dan Carpenter wrote:
> On Tue, Jul 07, 2020 at 06:23:32AM +0000, Peter Chen wrote:
> > On 20-07-01 08:19:57, Pawel Laszczak wrote:
> > > Patch remove some variables initialization from core.c and drd.c
> > > file.
> > > 
> > > Signed-off-by: Pawel Laszczak <pawell@cadence.com>
> > > ---
> > >  drivers/usb/cdns3/core.c |  4 ++--
> > >  drivers/usb/cdns3/drd.c  | 19 +++++++++----------
> > >  2 files changed, 11 insertions(+), 12 deletions(-)
> > > 
> > > diff --git a/drivers/usb/cdns3/core.c b/drivers/usb/cdns3/core.c
> > > index eaafa6bd2a50..c3dac945f63d 100644
> > > --- a/drivers/usb/cdns3/core.c
> > > +++ b/drivers/usb/cdns3/core.c
> > > @@ -86,7 +86,7 @@ static int cdns3_core_init_role(struct cdns3 *cdns)
> > >  	struct device *dev = cdns->dev;
> > >  	enum usb_dr_mode best_dr_mode;
> > >  	enum usb_dr_mode dr_mode;
> > > -	int ret = 0;
> > > +	int ret;
> > >  
> > >  	dr_mode = usb_get_dr_mode(dev);
> > >  	cdns->role = USB_ROLE_NONE;
> > > @@ -177,7 +177,7 @@ static int cdns3_core_init_role(struct cdns3 *cdns)
> > >  		goto err;
> > >  	}
> > >  
> > > -	return ret;
> > > +	return 0;
> > >  err:
> > >  	cdns3_exit_roles(cdns);
> > >  	return ret;
> > > diff --git a/drivers/usb/cdns3/drd.c b/drivers/usb/cdns3/drd.c
> > > index 58089841ed52..4939a568d8a2 100644
> > > --- a/drivers/usb/cdns3/drd.c
> > > +++ b/drivers/usb/cdns3/drd.c
> > > @@ -29,7 +29,6 @@
> > >   */
> > >  int cdns3_set_mode(struct cdns3 *cdns, enum usb_dr_mode mode)
> > >  {
> > > -	int ret = 0;
> > >  	u32 reg;
> > >  
> > >  	switch (mode) {
> > > @@ -61,7 +60,7 @@ int cdns3_set_mode(struct cdns3 *cdns, enum usb_dr_mode mode)
> > >  		return -EINVAL;
> > >  	}
> > >  
> > > -	return ret;
> > > +	return 0;
> > >  }
> > >  
> > >  int cdns3_get_id(struct cdns3 *cdns)
> > > @@ -134,11 +133,11 @@ static void cdns3_otg_enable_irq(struct cdns3 *cdns)
> > >  int cdns3_drd_switch_host(struct cdns3 *cdns, int on)
> > >  {
> > >  	int ret, val;
> > > -	u32 reg = OTGCMD_OTG_DIS;
> > >  
> > >  	/* switch OTG core */
> > >  	if (on) {
> > > -		writel(OTGCMD_HOST_BUS_REQ | reg, &cdns->otg_regs->cmd);
> > > +		writel(OTGCMD_HOST_BUS_REQ | OTGCMD_OTG_DIS,
> > > +		       &cdns->otg_regs->cmd);
> > >  
> > >  		dev_dbg(cdns->dev, "Waiting till Host mode is turned on\n");
> > >  		ret = readl_poll_timeout_atomic(&cdns->otg_regs->sts, val,
> > > @@ -212,7 +211,7 @@ int cdns3_drd_switch_gadget(struct cdns3 *cdns, int on)
> > >   */
> > >  static int cdns3_init_otg_mode(struct cdns3 *cdns)
> > >  {
> > > -	int ret = 0;
> > > +	int ret;
> > >  
> > >  	cdns3_otg_disable_irq(cdns);
> > >  	/* clear all interrupts */
> > > @@ -223,7 +222,8 @@ static int cdns3_init_otg_mode(struct cdns3 *cdns)
> > >  		return ret;
> > >  
> > >  	cdns3_otg_enable_irq(cdns);
> > > -	return ret;
> > > +
> > > +	return 0;
> > >  }
> > >  
> > >  /**
> > > @@ -234,7 +234,7 @@ static int cdns3_init_otg_mode(struct cdns3 *cdns)
> > >   */
> > >  int cdns3_drd_update_mode(struct cdns3 *cdns)
> > >  {
> > > -	int ret = 0;
> > > +	int ret;
> > >  
> > >  	switch (cdns->dr_mode) {
> > >  	case USB_DR_MODE_PERIPHERAL:
> > > @@ -307,8 +307,8 @@ static irqreturn_t cdns3_drd_irq(int irq, void *data)
> > >  int cdns3_drd_init(struct cdns3 *cdns)
> > >  {
> > >  	void __iomem *regs;
> > > -	int ret = 0;
> > >  	u32 state;
> > > +	int ret;
> > >  
> > >  	regs = devm_ioremap_resource(cdns->dev, &cdns->otg_res);
> > >  	if (IS_ERR(regs))
> > > @@ -359,7 +359,6 @@ int cdns3_drd_init(struct cdns3 *cdns)
> > >  					cdns3_drd_thread_irq,
> > >  					IRQF_SHARED,
> > >  					dev_name(cdns->dev), cdns);
> > > -
> > >  	if (ret) {
> > >  		dev_err(cdns->dev, "couldn't get otg_irq\n");
> > >  		return ret;
> > > @@ -371,7 +370,7 @@ int cdns3_drd_init(struct cdns3 *cdns)
> > >  		return -ENODEV;
> > >  	}
> > >  
> > > -	return ret;
> > > +	return 0;
> > 
> > Is this necessary?
> > 
> 
> "return ret;" is not immediately clear like a "return 0;".  I review a
> lot of return values so it's really important that the code is clear.
> I'm looking for places which return both postives and negatives.  These
> should always be documented but the majority are not.
> 
> Also another thing is that when people do:
> 
> 	ret = some_function();
> 	if (!ret)
> 		return ret;
> 
> I review all of those because a bug that we sometimes see is that the
> if statement is reversed and the ! should be removed.  A third thing is
> that people sometimes do silly things with the last if statement in the
> function.
> 
> 	ret = one();
> 	if (ret)
> 		return ret;
> 
> 	ret = two();
> 	if (ret)
> 		goto free_one;
> 
> 	ret = three();
> 	if (!ret)
> 		return ret;   // <-- UGH!!!!
> 
> 	free(two);
> free_one:
> 	free(one);
> 
> Please look for this and tell people to not write code like that.  It's
> always better to do failure handling instead of success handling.
> 

Thanks for your clarify.

-- 

Thanks,
Peter Chen

  reply	other threads:[~2020-07-08  6:53 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-01  6:19 [PATCH 0/9] usb: cdns3: Improvements for cdns3 DRD code Pawel Laszczak
2020-07-01  6:19 ` [PATCH 1/9] usb: cdns3: Improvement: removed cdns3_get_current_role_driver function Pawel Laszczak
2020-07-07  6:20   ` Peter Chen
2020-07-01  6:19 ` [PATCH 2/9] usb: cdns3: Improvement: removed not needed variables initialization Pawel Laszczak
2020-07-07  6:23   ` Peter Chen
2020-07-07 10:16     ` Dan Carpenter
2020-07-08  6:53       ` Peter Chen [this message]
2020-07-08 14:18     ` Pawel Laszczak
2020-07-01  6:19 ` [PATCH 3/9] usb: cnds3: Improvement: deleted != Pawel Laszczak
2020-07-07  6:24   ` Peter Chen
2020-07-01  6:19 ` [PATCH 4/9] usb: cdns3: Improvement: return IRQ_NONE explicitly Pawel Laszczak
2020-07-01  6:20 ` [PATCH 5/9] usb: cdns3: Improvement: changed return type from int to bool Pawel Laszczak
2020-07-01  6:20 ` [PATCH 6/9] usb: cdns3: Added CDNS3_ID_PERIPHERAL and CDNS3_ID_HOST Pawel Laszczak
2020-07-07  6:30   ` Peter Chen
2020-07-07 10:21     ` Dan Carpenter
2020-07-01  6:20 ` [PATCH 7/9] usb: cdns3: Improvement: removed 'goto not_otg' Pawel Laszczak
2020-07-07  6:33   ` Peter Chen
2020-07-01  6:20 ` [PATCH 8/9] usb: cdns3: Improvement: removed overwriting some error code Pawel Laszczak
2020-07-07  6:38   ` Peter Chen
2020-07-01  6:20 ` [PATCH 9/9] usb: cdns3: Impovement: simplify *switch_gadet and *switch_host Pawel Laszczak
2020-07-07  6:41   ` Peter Chen
2020-07-07  6:18 ` [PATCH 0/9] usb: cdns3: Improvements for cdns3 DRD code Peter Chen

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=20200708065352.GB18440@b29397-desktop \
    --to=peter.chen@nxp.com \
    --cc=balbi@kernel.org \
    --cc=ben.dooks@codethink.co.uk \
    --cc=colin.king@canonical.com \
    --cc=dan.carpenter@oracle.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=heikki.krogerus@linux.intel.com \
    --cc=jpawar@cadence.com \
    --cc=kurahul@cadence.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=pawell@cadence.com \
    --cc=rogerq@ti.com \
    --cc=sparmar@cadence.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox