On Wed, Oct 17, 2012 at 08:13:01PM +0100, Russell King - ARM Linux wrote:
> On Wed, Oct 17, 2012 at 08:00:00PM +0900, Kukjin Kim wrote:
> > > +static int samsung_usbphy_get_refclk_freq(struct samsung_usbphy *sphy)
> > > +{
> > > + struct clk *ref_clk;
> > > + int refclk_freq = 0;
> > > +
> > > + ref_clk = clk_get(sphy->dev, "xusbxti");
> > > + if (IS_ERR(ref_clk)) {
> > 
> > IS_ERR_OR_NULL(ref_clk)?
> 
> For the N'th time, NO.  IS_ERR is correct here.
> 
> > > +         dev_err(sphy->dev, "Failed to get reference clock\n");
> > > +         return PTR_ERR(ref_clk);
> 
> Look, it's the ABI.  Not only that but it's also TOTALLY AND UTTERLY WRONG
> to use IS_ERR_OR_NULL(foo) and then follow it with return PTR_ERR(foo).
> You end up returning ZERO.
> 
> Stop telling people to use IS_ERR_OR_NULL without properly thinking about
> it first.  Virtually every single one of these done this way is a BUG.
> 
> Are we clear on this?

Wouldn't be much easier to define PTR_ERR() to return -Esomething when
its argument is NULL?

This would end the whole issue of "should I use IS_ERR*/PTR_ERR or look into
the pointer myself?" story.  One could simply always use IS_ERR*/PTR_ERR
and have the right thing done in whatever case.

Regards,
Domenico
--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to