Re: [PATCH RFT 3/3] ARM: tegra: dts: seaboard: enable keyboard

From: Russell King - ARM Linux
Date: Fri Jan 11 2013 - 18:36:26 EST


On Fri, Jan 11, 2013 at 04:27:07PM -0700, Stephen Warren wrote:
> On 01/11/2013 04:24 PM, Russell King - ARM Linux wrote:
> > On Fri, Jan 11, 2013 at 04:09:59PM -0700, Stephen Warren wrote:
> >> On 01/11/2013 06:33 AM, Laxman Dewangan wrote:
> >>> kbc->clk = clk_get(&pdev->dev, NULL);
> >>> if (IS_ERR(kbc->clk)) {
> >>> dev_err(&pdev->dev, "failed to get keyboard clock\n");
> >>> err = PTR_ERR(kbc->clk);
> >>> goto err_iounmap;
> >>> }
> >>
> >> Should that check be if (!kbc-clk) instead? Or does the common clock
> >> framework require if (IS_ERR_OR_NULL(kbc->clk)); hopefully not since
> >> IS_ERR_OR_NULL shouldn't be used any more.
> >
> > /**
> > * clk_get - lookup and obtain a reference to a clock producer.
> > * @dev: device for clock "consumer"
> > * @id: clock consumer ID
> > *
> > * Returns a struct clk corresponding to the clock producer, or
> > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > * valid IS_ERR() condition containing errno. ...
> > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >
> > Or, put another way:
> >
> > If (!IS_ERR(clk))
> > The_Clock_Is_Valid();
> > Else
> > The_Clock_Is_Invalid();
> > The_Error = PTR_ERR(clk);
>
> OK, but that doesn't appear to be what happened in practice.

It's what I've been saying each time I see an abuse, the problem is
people don't care to read the documentation provided let alone
understand the interfaces.

That's precisely why IS_ERR_OR_NULL() is to be removed. One less
thing for someone to throw a dart at as a selection method to use.
Or maybe roll a dice. Or whatever way they do seem to choose.
(Whatever that is, it's not based on any sound engineering practice
I can make out.)
--
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/