From: Marcin Slusarz <marcin.slusarz@gmail.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Johannes Weiner <hannes@saeurebad.de>,
Sean MacLennan <smaclennan@pikatech.com>,
linux-kernel@vger.kernel.org, Sam Ravnborg <sam@ravnborg.org>
Subject: Re: [PATCH] Section mismatch contig_page_data and bootmem_node_data
Date: Fri, 22 Aug 2008 15:05:08 +0200 [thread overview]
Message-ID: <20080822130503.GA10776@joi> (raw)
In-Reply-To: <20080821231551.b0bafc5f.akpm@linux-foundation.org>
On Thu, Aug 21, 2008 at 11:15:51PM -0700, Andrew Morton wrote:
> On Thu, 21 Aug 2008 22:10:23 +0200 Marcin Slusarz <marcin.slusarz@gmail.com> wrote:
>
> > From: Marcin Slusarz <marcin.slusarz@gmail.com>
> > Subject: [PATCH] bootmem: don't embed bootmem_data in pglist_data
> >
> > Replace direct pointer from struct pglist_data to struct bootmem_data
> > with index into bootmem_node_data.
> >
> > As bootmem_node_data are discarded after bootup this change allows
> > more fine-grained analysis of access to bootmem data - every access
> > to bootmem_node_data from non-__init function will now emit section
> > mismatch warning.
> >
> > This patch fixes following section mismatch warning:
> > WARNING: vmlinux.o(.data+0x1f5c0): Section mismatch in reference from the variable contig_page_data to the variable .init.data:bootmem_node_data
> > The variable contig_page_data references
> > the variable __initdata bootmem_node_data
> > If the reference is valid then annotate the
> > variable with __init* (see linux/init.h) or name the variable:
> > *driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,
> >
> > Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
> > Cc: Johannes Weiner <hannes@saeurebad.de>
> > ---
> > arch/alpha/mm/numa.c | 5 +++--
> > arch/arm/mm/discontig.c | 32 ++++++++++++++++----------------
> > arch/arm/plat-omap/fb.c | 2 +-
> > arch/avr32/mm/init.c | 5 +++--
> > arch/ia64/mm/discontig.c | 5 ++---
> > arch/ia64/mm/init.c | 2 +-
> > arch/m32r/mm/discontig.c | 6 +++---
> > arch/m32r/mm/init.c | 4 ++--
> > arch/m68k/mm/init.c | 2 +-
> > arch/mips/sgi-ip27/ip27-memory.c | 2 +-
> > arch/mn10300/mm/init.c | 9 ++++-----
> > arch/parisc/mm/init.c | 2 +-
> > arch/powerpc/mm/numa.c | 2 +-
> > arch/sh/mm/init.c | 5 +++--
> > arch/sh/mm/numa.c | 4 ++--
> > arch/sparc64/mm/init.c | 2 +-
> > arch/x86/mm/discontig_32.c | 2 +-
> > arch/x86/mm/numa_64.c | 2 +-
> > include/linux/mmzone.h | 4 +++-
> > mm/bootmem.c | 30 +++++++++++++++++++-----------
> > mm/page_alloc.c | 2 +-
> > 21 files changed, 70 insertions(+), 59 deletions(-)
>
> erp. Can we go with Sean's obviously-safe one-liner for now, fix this
> up properly in 2.6.28?
I think my one-liner (below) is better. :)
> Plus... replacing a direct pointer with an index which requires a
> subscripting operation each time it is used just to fix a section
> warning is a bit sad.
If we could mark only one field in structure as __initdata as an
inidication of valid use only from __init section...
---
From: Marcin Slusarz <marcin.slusarz@gmail.com>
Subject: [PATCH] mm/bootmem: silence section mismatch warning - contig_page_data/bootmem_node_data
WARNING: vmlinux.o(.data+0x1f5c0): Section mismatch in reference from the variable contig_page_data to the variable .init.data:bootmem_node_data
The variable contig_page_data references
the variable __initdata bootmem_node_data
If the reference is valid then annotate the
variable with __init* (see linux/init.h) or name the variable:
*driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,
Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Cc: Johannes Weiner <hannes@saeurebad.de>
---
mm/page_alloc.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index af982f7..969433a 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -4064,7 +4064,7 @@ void __init set_dma_reserve(unsigned long new_dma_reserve)
}
#ifndef CONFIG_NEED_MULTIPLE_NODES
-struct pglist_data contig_page_data = { .bdata = &bootmem_node_data[0] };
+struct pglist_data __refdata contig_page_data = { .bdata = &bootmem_node_data[0] };
EXPORT_SYMBOL(contig_page_data);
#endif
--
1.5.4.5
next prev parent reply other threads:[~2008-08-22 13:05 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-20 17:55 [PATCH] Section mismatch contig_page_data and bootmem_node_data Sean MacLennan
2008-08-20 19:05 ` Marcin Slusarz
[not found] ` <20080820151531.38fc1071@lappy.seanm.ca>
[not found] ` <87myj74azn.fsf@skyscraper.fehenstaub.lan>
2008-08-21 0:08 ` Marcin Slusarz
2008-08-21 7:06 ` Johannes Weiner
2008-08-21 20:10 ` Marcin Slusarz
2008-08-22 6:15 ` Andrew Morton
2008-08-22 13:05 ` Marcin Slusarz [this message]
2008-08-20 21:53 ` Johannes Weiner
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=20080822130503.GA10776@joi \
--to=marcin.slusarz@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=hannes@saeurebad.de \
--cc=linux-kernel@vger.kernel.org \
--cc=sam@ravnborg.org \
--cc=smaclennan@pikatech.com \
/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.