Re: [v4l-dvb-maintainer] [PATCH 3/3] V4L: cinergyT2, remove badusage of ERESTARTSYS

From: Mauro Carvalho Chehab
Date: Wed Oct 10 2007 - 12:18:18 EST



Em Qua, 2007-10-10 Ãs 11:59 -0400, Alan Cox escreveu:
> On Wed, Oct 10, 2007 at 12:35:41PM -0300, Mauro Carvalho Chehab wrote:
> > Em Qua, 2007-10-10 Ãs 00:18 -0400, Michael Krufky escreveu:
> > >
> > > Is this illegal as per kernel codingstyle?
> >
> > Yes, it is. CodingStyle states:
>
> <rant>
> No.. "Illegal" means prohibited by law. Its merely wrong 8)
> </rant>

LOL

> > The proper fix is just to replace the offended code by this:
> >
> > err=foo();
> > if (error)
> > goto error;
>
> Lots of code uses
>
> if ((err = foo()) < 0)
>
> so I would'y worry too much. The split one however clearer and also
> safer.

Yes, this is not a severe CodingStyle violation. Still, the above code
is better than the used one.

Since, on your example, it is clear that the programmer wanted to test
if the value is less than zero.

The code:

if ( (err=foo()) )

should also indicate an operator mistake of using =, instead of ==.

Probably, source code analyzers like Coverity will complain about the
above.

If not violating CodingStyle, I would rather prefer to code this as:
if ( !(err=foo() )
or, even better, using:
if ( (err=foo()) != 0)

clearly indicating that it is tested if the value is not zero.

Even being a quite simple issue, I would prefer if Jiri can fix it.

--
Cheers,
Mauro

-
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/