All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@oracle.com>
To: atull <atull@opensource.altera.com>
Cc: mark.rutland@arm.com, linux-doc@vger.kernel.org,
	linus.walleij@linaro.org, pantelis.antoniou@konsulko.com,
	hpa@zytor.com, s.trumtrar@pengutronix.de,
	devel@driverdev.osuosl.org, sameo@linux.intel.com,
	nico@linaro.org, iws@ovro.caltech.edu, michal.simek@xilinx.com,
	kyle.teske@ni.com, jgunthorpe@obsidianresearch.com,
	grant.likely@linaro.org, davidb@codeaurora.org, rubini@gnudd.com,
	cesarb@cesarb.net, devicetree@vger.kernel.org,
	jason@lakedaemon.net, pawel.moll@arm.com,
	ijc+devicetree@hellion.org.uk, galak@codeaurora.org,
	broonie@kernel.org, philip@balister.org,
	Petr Cvek <petr.cvek@tul.cz>,
	akpm@linux-foundation.org, monstr@monstr.eu,
	Pavel Machek <pavel@denx.de>,
	gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org,
	balbi@ti.com, davem@davemloft.net, robh+dt@kernel.org,
	rob@landley.net, Josh Cartwright <joshc@ni.com>,
	dinguyen@opensource.altera.com, delicious.quinoa@gma
Subject: Re: [PATCH v11 3/4] add FPGA manager core
Date: Fri, 25 Sep 2015 13:00:36 +0300	[thread overview]
Message-ID: <20150925100036.GM4953@mwanda> (raw)
In-Reply-To: <alpine.DEB.2.02.1509241526380.5173@linuxheads99>

On Thu, Sep 24, 2015 at 03:47:26PM -0500, atull wrote:
> Interesting.  The amount of code bloat here compiles down to about two
> machine instructions (in two places).  Actually a little more since I should
> be using IS_ERR_OR_NULL.  But the main question is whether I should do
> it at all.
> 

They kernel already has too many bogus checks for IS_ERR().  It's a very
common bug to check for IS_ERR() when you should be checking for NULL.

-	foo = some_allocator();
+	foo = kmalloc();
	if (IS_ERR(foo))
		goto fail;

I have a static checker for "warn: 'foo' isn't an ERR_PTR" but I haven't
published it because too much code has impossible checks.

> The behaviour I should drive here is that the user will do their own error
> checking.  After they get a pointer to a FPGA manager using
> of_fpga_mgr_get(), they should check it and not assume that
> fpga_mgr_firmware_load() will do it for them, i.e.
> 
> 	mgr = of_fpga_mgr_get(mgr_node);
> 	if (IS_ERR(mgr))
> 		return PTR_ERR(mgr);
> 	fpga_mgr_firmware_load(mgr, flags, path);
> 

I don't understand completely how of_fpga_mgr_get() ever returns NULL.
A lot of the of_ functions return ERR_PTRs if OF_ is compiled in but
they return NULL if it's not.  I think this is so people can build with
COMPILE_TEST so we get more coverage with static analysis?

> I could take out these NULL pointer checks and it won't hurt anything unless
> someone is just using the functions badly, in which case: kablooey.

Linux devs are very good about doing error checking.  An early kablooey
is what we want for people who don't.

Also if you provide a sanity check then Markus Elfring will remove all
the error checking in the callers.  Don't do it.

regards,
dan carpenter

WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: atull <atull@opensource.altera.com>
Cc: mark.rutland@arm.com, linux-doc@vger.kernel.org,
	linus.walleij@linaro.org, pantelis.antoniou@konsulko.com,
	hpa@zytor.com, s.trumtrar@pengutronix.de,
	devel@driverdev.osuosl.org, sameo@linux.intel.com,
	nico@linaro.org, iws@ovro.caltech.edu, michal.simek@xilinx.com,
	kyle.teske@ni.com, jgunthorpe@obsidianresearch.com,
	grant.likely@linaro.org, davidb@codeaurora.org, rubini@gnudd.com,
	cesarb@cesarb.net, devicetree@vger.kernel.org,
	jason@lakedaemon.net, pawel.moll@arm.com,
	ijc+devicetree@hellion.org.uk, Josh Cartwright <joshc@ni.com>,
	broonie@kernel.org, gregkh@linuxfoundation.org,
	philip@balister.org, Petr Cvek <petr.cvek@tul.cz>,
	dinguyen@opensource.altera.com, monstr@monstr.eu,
	Pavel Machek <pavel@denx.de>,
	linux-kernel@vger.kernel.org, balbi@ti.com,
	delicious.quinoa@gmail.com, robh+dt@kernel.org, rob@landley.net,
	galak@codeaurora.org, akpm@linux-foundation.org,
	davem@davemloft.net, m.chehab@samsung.com
Subject: Re: [PATCH v11 3/4] add FPGA manager core
Date: Fri, 25 Sep 2015 13:00:36 +0300	[thread overview]
Message-ID: <20150925100036.GM4953@mwanda> (raw)
In-Reply-To: <alpine.DEB.2.02.1509241526380.5173@linuxheads99>

On Thu, Sep 24, 2015 at 03:47:26PM -0500, atull wrote:
> Interesting.  The amount of code bloat here compiles down to about two
> machine instructions (in two places).  Actually a little more since I should
> be using IS_ERR_OR_NULL.  But the main question is whether I should do
> it at all.
> 

They kernel already has too many bogus checks for IS_ERR().  It's a very
common bug to check for IS_ERR() when you should be checking for NULL.

-	foo = some_allocator();
+	foo = kmalloc();
	if (IS_ERR(foo))
		goto fail;

I have a static checker for "warn: 'foo' isn't an ERR_PTR" but I haven't
published it because too much code has impossible checks.

> The behaviour I should drive here is that the user will do their own error
> checking.  After they get a pointer to a FPGA manager using
> of_fpga_mgr_get(), they should check it and not assume that
> fpga_mgr_firmware_load() will do it for them, i.e.
> 
> 	mgr = of_fpga_mgr_get(mgr_node);
> 	if (IS_ERR(mgr))
> 		return PTR_ERR(mgr);
> 	fpga_mgr_firmware_load(mgr, flags, path);
> 

I don't understand completely how of_fpga_mgr_get() ever returns NULL.
A lot of the of_ functions return ERR_PTRs if OF_ is compiled in but
they return NULL if it's not.  I think this is so people can build with
COMPILE_TEST so we get more coverage with static analysis?

> I could take out these NULL pointer checks and it won't hurt anything unless
> someone is just using the functions badly, in which case: kablooey.

Linux devs are very good about doing error checking.  An early kablooey
is what we want for people who don't.

Also if you provide a sanity check then Markus Elfring will remove all
the error checking in the callers.  Don't do it.

regards,
dan carpenter


  parent reply	other threads:[~2015-09-25 10:00 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-22 15:21 [PATCH v11 0/4] FPGA Manager Framework atull
2015-09-22 15:21 ` atull
2015-09-22 15:21 ` [PATCH v11 1/4] usage documentation for FPGA manager core atull
2015-09-22 15:21   ` atull
2015-09-23  0:50   ` Moritz Fischer
2015-09-23  0:50     ` Moritz Fischer
2015-09-22 15:21 ` [PATCH v11 2/4] fpga manager: add sysfs interface document atull
2015-09-22 15:21   ` atull
     [not found]   ` <1442935271-10375-3-git-send-email-atull-yzvPICuk2ABMcg4IHK0kFoH6Mc4MB0Vx@public.gmane.org>
2015-09-23  0:52     ` Moritz Fischer
2015-09-23  0:52       ` Moritz Fischer
2015-09-22 15:21 ` [PATCH v11 3/4] add FPGA manager core atull
2015-09-22 15:21   ` atull
     [not found]   ` <1442935271-10375-4-git-send-email-atull-yzvPICuk2ABMcg4IHK0kFoH6Mc4MB0Vx@public.gmane.org>
2015-09-22 22:29     ` Josh Cartwright
2015-09-22 22:29       ` Josh Cartwright
2015-09-23 13:23       ` Pavel Machek
2015-09-23 13:23         ` Pavel Machek
2015-09-23 14:11         ` Dan Carpenter
2015-09-23 14:11           ` Dan Carpenter
2015-09-23 16:15           ` atull
2015-09-23 16:15             ` atull
2015-09-24  7:49             ` Dan Carpenter
2015-09-24  7:49               ` Dan Carpenter
2015-09-24 20:47               ` atull
2015-09-24 20:47                 ` atull
2015-09-24 21:13                 ` Pavel Machek
2015-09-24 21:13                   ` Pavel Machek
2015-09-25 10:00                 ` Dan Carpenter [this message]
2015-09-25 10:00                   ` Dan Carpenter
2015-09-23 17:10       ` atull
2015-09-23 17:10         ` atull
2015-09-23 23:03         ` Josh Cartwright
2015-09-23 23:03           ` Josh Cartwright
2015-09-24 20:24           ` atull
2015-09-24 20:24             ` atull
2015-09-22 15:21 ` [PATCH v11 4/4] fpga manager: add driver for socfpga fpga manager atull
2015-09-22 15:21   ` atull
2015-09-22 22:47   ` Josh Cartwright
2015-09-22 22:47     ` Josh Cartwright
  -- strict thread matches above, loose matches on Subject: below --
2015-10-07 15:36 [PATCH v11 0/4] FPGA Manager Framework atull
2015-10-07 15:36 ` [PATCH v11 3/4] add FPGA manager core atull

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=20150925100036.GM4953@mwanda \
    --to=dan.carpenter@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=atull@opensource.altera.com \
    --cc=balbi@ti.com \
    --cc=broonie@kernel.org \
    --cc=cesarb@cesarb.net \
    --cc=davem@davemloft.net \
    --cc=davidb@codeaurora.org \
    --cc=delicious.quinoa@gma \
    --cc=devel@driverdev.osuosl.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dinguyen@opensource.altera.com \
    --cc=galak@codeaurora.org \
    --cc=grant.likely@linaro.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=hpa@zytor.com \
    --cc=ijc+devicetree@hellion.org.uk \
    --cc=iws@ovro.caltech.edu \
    --cc=jason@lakedaemon.net \
    --cc=jgunthorpe@obsidianresearch.com \
    --cc=joshc@ni.com \
    --cc=kyle.teske@ni.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=michal.simek@xilinx.com \
    --cc=monstr@monstr.eu \
    --cc=nico@linaro.org \
    --cc=pantelis.antoniou@konsulko.com \
    --cc=pavel@denx.de \
    --cc=pawel.moll@arm.com \
    --cc=petr.cvek@tul.cz \
    --cc=philip@balister.org \
    --cc=rob@landley.net \
    --cc=robh+dt@kernel.org \
    --cc=rubini@gnudd.com \
    --cc=s.trumtrar@pengutronix.de \
    --cc=sameo@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.