The Linux Kernel Mailing List
 help / color / mirror / Atom feed
From: Greg KH <gregkh@linuxfoundation.org>
To: Marcus Wolf <marcus.wolf@smarthome-wolf.de>
Cc: "Dan Carpenter" <dan.carpenter@oracle.com>,
	devel@driverdev.osuosl.org, linux@Wolf-Entwicklungen.de,
	linux-kernel@vger.kernel.org,
	"Simon Sandström" <simon@nikanor.nu>
Subject: Re: [PATCH v2 06/11] staging: pi433: Split rf69_set_crc_enabled into two functions
Date: Wed, 6 Dec 2017 16:11:11 +0100	[thread overview]
Message-ID: <20171206151111.GA29768@kroah.com> (raw)
In-Reply-To: <a2a41943-2c47-3342-4c12-0867ffe2f38e@smarthome-wolf.de>

On Wed, Dec 06, 2017 at 12:07:20PM +0200, Marcus Wolf wrote:
> 
> 
> Am 06.12.2017 um 11:37 schrieb Dan Carpenter:
> > On Wed, Dec 06, 2017 at 11:05:22AM +0200, Marcus Wolf wrote:
> > > 
> > > 
> > > Am 06.12.2017 um 00:08 schrieb Simon Sandström:
> > > > Splits rf69_set_crc_enabled(dev, enabled) into
> > > > rf69_enable_crc(dev) and rf69_disable_crc(dev).
> > > > 
> > > > Signed-off-by: Simon Sandström <simon@nikanor.nu>
> > > > ---
> > > >    drivers/staging/pi433/pi433_if.c | 22 ++++++++++++++++++++--
> > > >    drivers/staging/pi433/rf69.c     | 18 ++++++------------
> > > >    drivers/staging/pi433/rf69.h     |  4 ++--
> > > >    3 files changed, 28 insertions(+), 16 deletions(-)
> > > > 
> > > > diff --git a/drivers/staging/pi433/pi433_if.c b/drivers/staging/pi433/pi433_if.c
> > > > index 2ae19ac565d1..614eec7dd904 100644
> > > > --- a/drivers/staging/pi433/pi433_if.c
> > > > +++ b/drivers/staging/pi433/pi433_if.c
> > > > @@ -216,7 +216,16 @@ rf69_set_rx_cfg(struct pi433_device *dev, struct pi433_rx_cfg *rx_cfg)
> > > >    			return ret;
> > > >    	}
> > > >    	SET_CHECKED(rf69_set_adressFiltering(dev->spi, rx_cfg->enable_address_filtering));
> > > > -	SET_CHECKED(rf69_set_crc_enable	    (dev->spi, rx_cfg->enable_crc));
> > > > +
> > > > +	if (rx_cfg->enable_crc == OPTION_ON) {
> > > > +		ret = rf69_enable_crc(dev->spi);
> > > > +		if (ret < 0)
> > > > +			return ret;
> > > > +	} else {
> > > > +		ret = rf69_disable_crc(dev->spi);
> > > > +		if (ret < 0)
> > > > +			return ret;
> > > > +	}
> > > 
> > > Why don't you use SET_CHECKED(...)?
> > > 
> > 
> > Marcus, please don't introduce new uses of SET_CHECKED().  It has a
> > hidden return in it which is against kernel style and introduces very
> > predictable and avoidable bugs.  For example, in probe().
> 
> Ah ok.
> 
> Thanks for clarifiytion!
> 
> What a pitty - another bunch of extra lines of code...
> 
> Or is there an other construction, allowing for one line per register
> change? Something like
> 
> 	ret = rf69_set_xyz(...); if (ret) return ret;
> 	ret = rf69_set_abc(...); if (ret) return ret;
> 
> is pretty ugly and voids the style guide...

Just spell it out:
	ret = rf69_set_xyz();
	if (ret)
		goto unwind_xyz;

Almost never do you want to instantly return.  You should clean up from
the error first.

But if you do just want to exit, that's fine too, just return.  That's
the normal way here, don't do funny things in macros (like return from a
function), that way lies madness...

thanks,

greg k-h

  reply	other threads:[~2017-12-06 15:11 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-05 22:08 [PATCH v2 00/11] Fix indentation and CamelCase issue in staging/pi433 Simon Sandström
2017-12-05 22:08 ` [PATCH v2 01/11] staging: pi433: Fix indentation in rf69_enum.h Simon Sandström
2017-12-05 22:08 ` [PATCH v2 02/11] staging: pi433: Capitalize constant definitions Simon Sandström
2017-12-05 22:08 ` [PATCH v2 03/11] staging: pi433: Rename variable in struct pi433_rx_cfg Simon Sandström
2017-12-05 22:08 ` [PATCH v2 04/11] staging: pi433: Rename enum optionOnOff in rf69_enum.h Simon Sandström
2017-12-06  9:46   ` Marcus Wolf
2017-12-06 10:23     ` Dan Carpenter
2017-12-06 10:31       ` Marcus Wolf
2017-12-06 10:44         ` Dan Carpenter
2017-12-06 11:07           ` Marcus Wolf
2017-12-06 19:57           ` Simon Sandström
2017-12-06 22:17             ` Marcus Wolf
2017-12-07  9:41               ` Dan Carpenter
2017-12-05 22:08 ` [PATCH v2 05/11] staging: pi433: Rename enum modShaping " Simon Sandström
2017-12-05 22:08 ` [PATCH v2 06/11] staging: pi433: Split rf69_set_crc_enabled into two functions Simon Sandström
2017-12-06  9:05   ` Marcus Wolf
2017-12-06  9:37     ` Dan Carpenter
2017-12-06 10:07       ` Marcus Wolf
2017-12-06 15:11         ` Greg KH [this message]
2017-12-06 10:36       ` Marcus Wolf
2017-12-06 15:16   ` Greg KH
2017-12-06 20:27     ` Simon Sandström
2017-12-05 22:08 ` [PATCH v2 07/11] staging: pi433: Split rf69_set_sync_enabled " Simon Sandström
2017-12-05 22:08 ` [PATCH v2 08/11] staging: pi433: Remove enum data_mode Simon Sandström
2017-12-06  9:11   ` Marcus Wolf
2017-12-06 12:47     ` Dan Carpenter
2017-12-07  9:47       ` staging: pi433: Plans from Smarthome-Wolf Marcus Wolf
2017-12-05 22:08 ` [PATCH v2 09/11] staging: pi433: Combine all rf69_set_amplifier_x() Simon Sandström
2017-12-06  9:43   ` Marcus Wolf
2017-12-05 22:08 ` [PATCH v2 10/11] staging: pi433: Move enum option_on_off to pi433_if.h Simon Sandström
2017-12-05 22:08 ` [PATCH v2 11/11] staging: pi433: Remove SET_CHECKED usage from pi433_probe Simon Sandström

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=20171206151111.GA29768@kroah.com \
    --to=gregkh@linuxfoundation.org \
    --cc=dan.carpenter@oracle.com \
    --cc=devel@driverdev.osuosl.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@Wolf-Entwicklungen.de \
    --cc=marcus.wolf@smarthome-wolf.de \
    --cc=simon@nikanor.nu \
    /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