Netdev List
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: Yuval Mintz <Yuval.Mintz@qlogic.com>
Cc: Baoyou Xie <baoyou.xie@linaro.org>,
	netdev <netdev@vger.kernel.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	"xie.baoyou@zte.com.cn" <xie.baoyou@zte.com.cn>,
	Ariel Elior <Ariel.Elior@qlogic.com>
Subject: Re: [PATCH] qed: add missing header dependencies
Date: Wed, 07 Sep 2016 14:17:41 +0200	[thread overview]
Message-ID: <4989831.9c6WyUak3s@wuerfel> (raw)
In-Reply-To: <DM5PR11MB1723D8845DD64E2634DBC41D97F80@DM5PR11MB1723.namprd11.prod.outlook.com>

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

  reply	other threads:[~2016-09-07 12:17 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-07 11:07 [PATCH] qed: add missing header dependencies Baoyou Xie
2016-09-07 11:37 ` Yuval Mintz
2016-09-07 12:17   ` Arnd Bergmann [this message]
2016-09-07 12:31     ` Yuval Mintz
2016-09-07 12:52       ` Arnd Bergmann
2016-09-08  0:41 ` David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4989831.9c6WyUak3s@wuerfel \
    --to=arnd@arndb.de \
    --cc=Ariel.Elior@qlogic.com \
    --cc=Yuval.Mintz@qlogic.com \
    --cc=baoyou.xie@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=xie.baoyou@zte.com.cn \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox