From: Sam Ravnborg <sam@ravnborg.org>
To: "Randy.Dunlap" <rdunlap@xenotime.net>
Cc: linux-scsi@vger.kernel.org
Subject: Re: section mismatches (scsi e.g.)
Date: Fri, 14 Apr 2006 23:21:26 +0200 [thread overview]
Message-ID: <20060414212126.GA12482@mars.ravnborg.org> (raw)
In-Reply-To: <20060414122520.d1d1a46e.rdunlap@xenotime.net>
On Fri, Apr 14, 2006 at 12:25:20PM -0700, Randy.Dunlap wrote:
> On Fri, 14 Apr 2006 18:52:10 +0200 Sam Ravnborg wrote:
>
> > On Fri, Apr 14, 2006 at 09:29:11AM -0700, Randy.Dunlap wrote:
> > > Hi Sam,
> > >
> > > I was looking at these warnings (on 2.6.17-rc1-git8):
> > >
> [snip]
>
> > Darren Jenkins already pointed this pattern out but somehow I lost
> > the patch (not applied).
> > It is here:
>
> OK, I applied the patch. Now please consider these (that I doubt):
>
> WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x0)
> WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x8)
> WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x10)
> WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x18)
> WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x20)
> WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x28)
> WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x30)
> WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x38)
> WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x40)
> WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x48)
> WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x50)
> WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x58)
> WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x60)
> WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x68)
> WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x70)
> WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x78)
>
> Any ideas?
For .init.text the following was explained:
* Identify sections from which references to a .init section is OK.
*
* Unfortunately references to read only data that referenced .init
* sections had to be excluded. Almost all of these are false
* positives, they are created by gcc. The downside of excluding
* rodata
* is that there really are some user references from rodata to
* init code, e.g. drivers/video/vgacon.c:
So ignoring .rodata in exit_section_ref_ok() seems to be the solution
here.
So we end up with following patch.
Sam
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index 7e8079a..93a043e 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -492,7 +492,7 @@ static int strrcmp(const char *s, const
* These functions may often be marked __init and we do not want to
* warn here.
* the pattern is identified by:
- * tosec = .init.text | .exit.text
+ * tosec = .init.text | .exit.text | .init.data
* fromsec = .data
* atsym = *_driver, *_ops, *_probe, *probe_one
**/
@@ -522,7 +522,8 @@ static int secref_whitelist(const char *
/* Check for pattern 2 */
if ((strcmp(tosec, ".init.text") != 0) &&
- (strcmp(tosec, ".exit.text") != 0))
+ (strcmp(tosec, ".exit.text") != 0) &&
+ (strcmp(tosec, ".init.data") != 0))
f2 = 0;
if (strcmp(fromsec, ".data") != 0)
f2 = 0;
@@ -820,6 +821,7 @@ static int exit_section(const char *name
* For our future {in}sanity, add a comment that this is the ppc .opd
* section, not the ia64 .opd section.
* ia64 .opd should not point to discarded sections.
+ * [.rodata] like for .init.text we ignore .rodata references -same reason
**/
static int exit_section_ref_ok(const char *name)
{
@@ -829,6 +831,7 @@ static int exit_section_ref_ok(const cha
".exit.text",
".exit.data",
".init.text",
+ ".rodata",
".opd", /* See comment [OPD] */
".toc1", /* used by ppc64 */
".altinstructions",
prev parent reply other threads:[~2006-04-14 21:21 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-04-14 16:29 section mismatches (scsi e.g.) Randy.Dunlap
2006-04-14 16:50 ` James Bottomley
2006-04-14 16:53 ` Sam Ravnborg
2006-04-14 16:52 ` Sam Ravnborg
2006-04-14 18:27 ` Randy.Dunlap
2006-04-14 19:25 ` Randy.Dunlap
2006-04-14 21:21 ` Sam Ravnborg [this message]
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=20060414212126.GA12482@mars.ravnborg.org \
--to=sam@ravnborg.org \
--cc=linux-scsi@vger.kernel.org \
--cc=rdunlap@xenotime.net \
/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