Re: [PATCH] qed: add missing header dependencies

From: Arnd Bergmann
Date: Wed Sep 07 2016 - 08:58:00 EST


On Wednesday, September 7, 2016 12:31:03 PM CEST Yuval Mintz wrote:
> > > While I obviously have no strong objection for including
> > > qed_selftest.h from qed_selftest.c, I'm not sure I understand which C
> > > standard dictates this requirement.
> > > Why should a function definition [not call] be preceded by a prototype?
> >
> > - When a function is defined in one file and used in another, you want
> > both files to include the same header that has the declaration to
> > ensure that the types are identical. There are cases where the
> > prototype is changed after the fact in an incompatible way, causing
> > silent data corruption on some configurations but maybe not on others.
>
> O.k., motivation is clear.
> But this really isn't enforced by the ansi-c standard, right?

No, ansi-c doesn't enforce this, and even the regular kernel build
flags don't enable the warning in question, we only get it when
either building with "make C=1" using sparse, or "make W=1" to
enable extra warnings from gcc.

The warning is however really useful, and I hope that we go through
all drivers in the kernel and eliminate these warnings in order
to turn them on by default for all drivers.

> Acked-by: Yuval Mintz <Yuval.Mintz@xxxxxxxxxx>

Thanks,

Arnd