[PATCH] ARM: SAMSUNG: Should check for IS_ERR(clk) instead of NULL
Russell King - ARM Linux
linux at arm.linux.org.uk
Thu Apr 19 05:03:25 EDT 2012
On Thu, Apr 19, 2012 at 10:25:36AM +0200, Sylwester Nawrocki wrote:
> On 04/19/2012 02:12 AM, Kukjin Kim wrote:
> >> --- a/arch/arm/plat-samsung/include/plat/watchdog-reset.h
> >> +++ b/arch/arm/plat-samsung/include/plat/watchdog-reset.h
> >> @@ -25,7 +25,7 @@ static inline void arch_wdt_reset(void)
> >>
> >> __raw_writel(0, S3C2410_WTCON); /* disable watchdog, to be safe */
> >>
> >> - if (s3c2410_wdtclk)
> >> + if (!IS_ERR(s3c2410_wdtclk))
> >
> > Yeah, right. BTW don't we need to check NULL here?
>
> It might make sense to check for NULL as well, but only if it happens
> that a clock entry is ever added to clkdev with null struct clk_lookup:clk
> member.
Not quite the correct answer. The correct answer is:
Drivers have no business interpreting anything but IS_ERR() values from
clk_get() as errors. Everything else they _MUST_ assume is valid for
the rest of the clk API.
The clue: struct clk is an opaque cookie as far as drivers are concerned.
The only interpretation drivers are allowed to make is that IS_ERR()
values indicate an error. Everything else is potentially valid.
More information about the linux-arm-kernel
mailing list