linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: grant.likely@secretlab.ca (Grant Likely)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] irqdomain: Initialize number of IRQs for simple domains
Date: Fri, 6 Jan 2012 14:34:22 -0700	[thread overview]
Message-ID: <20120106213422.GF7457@ponder.secretlab.ca> (raw)
In-Reply-To: <20120106162016.GB5593@avionic-0098.mockup.avionic-design.de>

On Fri, Jan 06, 2012 at 05:20:16PM +0100, Thierry Reding wrote:
> * Grant Likely wrote:
> > Hi Thierry,
> > 
> > On Fri, Jan 6, 2012 at 7:28 AM, Thierry Reding
> > <thierry.reding@avionic-design.de> wrote:
> > > The irq_domain_add() function needs the number of interrupts in the
> > > domain to properly initialize them. In addition the allocated domain
> > > is now returned by the irq_domain_{add,generate}_simple() helpers.
> > 
> > The commit text should also include the justification for renaming
> > irq_domain_create_simple() -> irq_domain_add_simple()
> 
> Actually the commit only fixes up the comment. The function has always been
> called irq_domain_add_simple().
> 
> For reference, this was introduced in commit 7e71330.

Hahaha.  Oops, you're right.  :-)

> 
> > > ? ? ? ?domain = kzalloc(sizeof(*domain), GFP_KERNEL);
> > > - ? ? ? if (!domain) {
> > > - ? ? ? ? ? ? ? WARN_ON(1);
> > > - ? ? ? ? ? ? ? return;
> > > - ? ? ? }
> > > + ? ? ? if (!domain)
> > > + ? ? ? ? ? ? ? return ERR_PTR(-ENOMEM);
> > 
> > Don't use the ERR_PTR() pattern (it's a horrible pattern IMHO).
> 
> Returning NULL here is probably okay. Can the ERR_PTR stay in
> irq_domain_generate_simple(), though? It has two error conditions and
> handling both by returning NULL may not be what we want.

No.  ERR_PTR is a horrible pattern because you cannot tell by looking
at a prototype that returns a pointer whether or not the correct
failure test is "if (!ptr)" or "if (IS_ERR(ptr))".  Unless it is
absolutely critical for an error code to be returned (which isn't the
case here) I will not accept new code that uses ERR_PTR().

In this case, if irq_domain_add_simple() fails, then something is very
wrong.  I'd much rather the routine complain loudly regardless of the
error condition.

Actually, looking again at irq_domain_generate_simple() it should
probably succeed even if it cannot find a matching node since an
irq_domain does more than just device tree translation.  Although,
irq_domain_generate_simple() is a stop-gap solution that will
eventually be removed.

g.

  reply	other threads:[~2012-01-06 21:34 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-06 14:28 [PATCH] irqdomain: Initialize number of IRQs for simple domains Thierry Reding
2012-01-06 14:36 ` Nicolas Ferre
2012-01-06 15:04 ` Grant Likely
2012-01-06 16:20   ` Thierry Reding
2012-01-06 21:34     ` Grant Likely [this message]
2012-01-07 11:40       ` Thierry Reding
2012-01-06 16:07 ` David Brown
2012-01-06 16:12   ` Thierry Reding
2012-01-06 16:26   ` Rob Herring
2012-01-06 18:52     ` David Brown
2012-01-06 16:58 ` Cousson, Benoit
2012-01-09  9:03   ` Thierry Reding
2012-01-07  5:58 ` Shawn Guo
2012-01-07 11:47   ` Thierry Reding

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=20120106213422.GF7457@ponder.secretlab.ca \
    --to=grant.likely@secretlab.ca \
    --cc=linux-arm-kernel@lists.infradead.org \
    /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;
as well as URLs for NNTP newsgroup(s).