All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@linux-foundation.org>
To: Minchan Kim <minchan@kernel.org>
Cc: Randy Dunlap <rdunlap@infradead.org>,
	Linux MM <linux-mm@kvack.org>,
	"linux-next@vger.kernel.org" <linux-next@vger.kernel.org>,
	Stephen Rothwell <sfr@canb.auug.org.au>
Subject: Re: [PATCH] mm: fix build warnings in <linux/compaction.h>
Date: Thu, 9 Jun 2016 16:37:19 -0700	[thread overview]
Message-ID: <20160609163719.5af286badfa9b5314700fece@linux-foundation.org> (raw)
In-Reply-To: <20160609233143.GC29779@bbox>

On Fri, 10 Jun 2016 08:31:43 +0900 Minchan Kim <minchan@kernel.org> wrote:

> Hi Andrew,
> 
> On Thu, Jun 09, 2016 at 03:27:16PM -0700, Andrew Morton wrote:
> > On Thu, 9 Jun 2016 10:06:01 -0700 Randy Dunlap <rdunlap@infradead.org> wrote:
> > 
> > > From: Randy Dunlap <rdunlap@infradead.org>
> > > 
> > > Fix build warnings when struct node is not defined:
> > > 
> > > In file included from ../include/linux/balloon_compaction.h:48:0,
> > >                  from ../mm/balloon_compaction.c:11:
> > > ../include/linux/compaction.h:237:51: warning: 'struct node' declared inside parameter list [enabled by default]
> > >  static inline int compaction_register_node(struct node *node)
> > > ../include/linux/compaction.h:237:51: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
> > > ../include/linux/compaction.h:242:54: warning: 'struct node' declared inside parameter list [enabled by default]
> > >  static inline void compaction_unregister_node(struct node *node)
> > > 
> > > ...
> > >
> > > --- linux-next-20160609.orig/include/linux/compaction.h
> > > +++ linux-next-20160609/include/linux/compaction.h
> > > @@ -233,6 +233,7 @@ extern int compaction_register_node(stru
> > >  extern void compaction_unregister_node(struct node *node);
> > >  
> > >  #else
> > > +struct node;
> > >  
> > >  static inline int compaction_register_node(struct node *node)
> > >  {
> > 
> > Well compaction.h has no #includes at all and obviously depends on its
> > including file(s) to bring in the definitions which it needs.
> > 
> > So if we want to keep that (odd) model then we should fix
> > mm-balloon-use-general-non-lru-movable-page-feature.patch thusly:
> 
> How about fixing such odd model in this chance?
> Otherwise, every non-lru page migration driver should include
> both compaction.h and node.h which is weired to me. :(
> 
> I think there are two ways.
> 
> 1. compaction.h include node.h directly so user of compaction.h don't
> need to take care about node.h
> 
> 2. Randy's fix
> 
> I looked up who use compaction_[un]register_node and found it's used
> only drivers/base/node.c which already include node.h so no problem.
> 
> 1) I believe it's rare those functions to be needed by other files.
> 2) Those functions works if CONFIG_NUMA as well as CONFIG_COMPACTION
> which is rare configuration for many not-server system.

If we're going to convert compaction.h to be standalone then it will
need to include a whole bunch of things - what's special about node.h?

> So, I prefer Randy's fix.

Doesn't matter much.  But note that Randy's patch declared struct node
at line 233.  It should be sone at approximatley line 1, to prevent
future duplicated declarations.

WARNING: multiple messages have this Message-ID (diff)
From: Andrew Morton <akpm@linux-foundation.org>
To: Minchan Kim <minchan@kernel.org>
Cc: Randy Dunlap <rdunlap@infradead.org>,
	Linux MM <linux-mm@kvack.org>,
	"linux-next@vger.kernel.org" <linux-next@vger.kernel.org>,
	Stephen Rothwell <sfr@canb.auug.org.au>
Subject: Re: [PATCH] mm: fix build warnings in <linux/compaction.h>
Date: Thu, 9 Jun 2016 16:37:19 -0700	[thread overview]
Message-ID: <20160609163719.5af286badfa9b5314700fece@linux-foundation.org> (raw)
In-Reply-To: <20160609233143.GC29779@bbox>

On Fri, 10 Jun 2016 08:31:43 +0900 Minchan Kim <minchan@kernel.org> wrote:

> Hi Andrew,
> 
> On Thu, Jun 09, 2016 at 03:27:16PM -0700, Andrew Morton wrote:
> > On Thu, 9 Jun 2016 10:06:01 -0700 Randy Dunlap <rdunlap@infradead.org> wrote:
> > 
> > > From: Randy Dunlap <rdunlap@infradead.org>
> > > 
> > > Fix build warnings when struct node is not defined:
> > > 
> > > In file included from ../include/linux/balloon_compaction.h:48:0,
> > >                  from ../mm/balloon_compaction.c:11:
> > > ../include/linux/compaction.h:237:51: warning: 'struct node' declared inside parameter list [enabled by default]
> > >  static inline int compaction_register_node(struct node *node)
> > > ../include/linux/compaction.h:237:51: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
> > > ../include/linux/compaction.h:242:54: warning: 'struct node' declared inside parameter list [enabled by default]
> > >  static inline void compaction_unregister_node(struct node *node)
> > > 
> > > ...
> > >
> > > --- linux-next-20160609.orig/include/linux/compaction.h
> > > +++ linux-next-20160609/include/linux/compaction.h
> > > @@ -233,6 +233,7 @@ extern int compaction_register_node(stru
> > >  extern void compaction_unregister_node(struct node *node);
> > >  
> > >  #else
> > > +struct node;
> > >  
> > >  static inline int compaction_register_node(struct node *node)
> > >  {
> > 
> > Well compaction.h has no #includes at all and obviously depends on its
> > including file(s) to bring in the definitions which it needs.
> > 
> > So if we want to keep that (odd) model then we should fix
> > mm-balloon-use-general-non-lru-movable-page-feature.patch thusly:
> 
> How about fixing such odd model in this chance?
> Otherwise, every non-lru page migration driver should include
> both compaction.h and node.h which is weired to me. :(
> 
> I think there are two ways.
> 
> 1. compaction.h include node.h directly so user of compaction.h don't
> need to take care about node.h
> 
> 2. Randy's fix
> 
> I looked up who use compaction_[un]register_node and found it's used
> only drivers/base/node.c which already include node.h so no problem.
> 
> 1) I believe it's rare those functions to be needed by other files.
> 2) Those functions works if CONFIG_NUMA as well as CONFIG_COMPACTION
> which is rare configuration for many not-server system.

If we're going to convert compaction.h to be standalone then it will
need to include a whole bunch of things - what's special about node.h?

> So, I prefer Randy's fix.

Doesn't matter much.  But note that Randy's patch declared struct node
at line 233.  It should be sone at approximatley line 1, to prevent
future duplicated declarations.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2016-06-09 23:37 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-09 17:06 [PATCH] mm: fix build warnings in <linux/compaction.h> Randy Dunlap
2016-06-09 17:06 ` Randy Dunlap
2016-06-09 22:27 ` Andrew Morton
2016-06-09 23:31   ` Minchan Kim
2016-06-09 23:31     ` Minchan Kim
2016-06-09 23:37     ` Andrew Morton [this message]
2016-06-09 23:37       ` Andrew Morton
2016-06-09 23:51       ` Minchan Kim
2016-06-09 23:51         ` Minchan Kim
2016-06-10  0:33         ` Minchan Kim
2016-06-10  0:33           ` Minchan Kim

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=20160609163719.5af286badfa9b5314700fece@linux-foundation.org \
    --to=akpm@linux-foundation.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-next@vger.kernel.org \
    --cc=minchan@kernel.org \
    --cc=rdunlap@infradead.org \
    --cc=sfr@canb.auug.org.au \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.