Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1478245

Re: [PATCH] qed: add missing header dependencies

From Arnd Bergmann <arnd@arndb.de>
Newsgroups linux.kernel
Subject Re: [PATCH] qed: add missing header dependencies
Date 2016-09-07 14:20 +0200
Message-ID <seJZD-85G-7@gated-at.bofh.it> (permalink)
References <seITU-7oj-11@gated-at.bofh.it> <seJGh-7FE-11@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Wednesday, September 7, 2016 11:37:07 AM CEST Yuval Mintz wrote:
> > We get 4 warnings when building kernel with W=1:
> > drivers/net/ethernet/qlogic/qed/qed_selftest.c:6:5: warning: no previous
> > prototype for 'qed_selftest_memory' [-Wmissing-prototypes]
> > drivers/net/ethernet/qlogic/qed/qed_selftest.c:19:5: warning: no previous
> > prototype for 'qed_selftest_interrupt' [-Wmissing-prototypes]
> > drivers/net/ethernet/qlogic/qed/qed_selftest.c:32:5: warning: no previous
> > prototype for 'qed_selftest_register' [-Wmissing-prototypes]
> > drivers/net/ethernet/qlogic/qed/qed_selftest.c:55:5: warning: no previous
> > prototype for 'qed_selftest_clock' [-Wmissing-prototypes]
> > 
> > In fact, these functions are declared in qed_selftest.h, so this patch add missing
> > header dependencies.
> > 
> > Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org>
> 
> 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?

This rule addresses two problems:

- some functions should be marked static as they are never used outside
  of the file that declares them. Marking them static give the compiler
  better opportunities for optimization and lets you see when a function
  becomes unused, and if there is no external declaration that is often
  an indication that there are no other users.

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

	Arnd

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH] qed: add missing header dependencies Baoyou Xie <baoyou.xie@linaro.org> - 2016-09-07 13:10 +0200
  RE: [PATCH] qed: add missing header dependencies Yuval Mintz <Yuval.Mintz@qlogic.com> - 2016-09-07 14:00 +0200
    Re: [PATCH] qed: add missing header dependencies Arnd Bergmann <arnd@arndb.de> - 2016-09-07 14:20 +0200
      RE: [PATCH] qed: add missing header dependencies Yuval Mintz <Yuval.Mintz@qlogic.com> - 2016-09-07 14:50 +0200
        Re: [PATCH] qed: add missing header dependencies Arnd Bergmann <arnd@arndb.de> - 2016-09-07 15:00 +0200
  Re: [PATCH] qed: add missing header dependencies David Miller <davem@davemloft.net> - 2016-09-08 02:50 +0200

csiph-web