Re: [PATCH v3] drivers/pinctrl: grab default handles from devicecore

From: Russell King - ARM Linux
Date: Fri Jan 18 2013 - 15:13:07 EST


On Fri, Jan 18, 2013 at 04:08:48PM +0100, Linus Walleij wrote:
> - Abstain from using IS_ERR_OR_NULL() in the driver core,
> Russell recently sent a patch to remove it. Handle the
> NULL case explicitly even though it's a bogus case.

Hmmmmmmmm... I assume you're talking about this:

> + p = create_pinctrl(dev);
> + if (p && !IS_ERR(p))
> + kref_init(&p->users);
> + return p;

which is... interesting. In mainline currently, the version I see there
never returns NULL - it either returns an err pointer or a real pointer.

Next thing though is...

create_pinctrl adds the struct pinctrl onto the global list, and then you
intialize it here, which is an interesting sequence. It's safe at the
moment because everything here is operating under a mutex, but it's a
little obscure.

Is there a reason not to initialize p->users inside create_pinctrl() ?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/