From: James Hogan <james.hogan@imgtec.com>
To: Rusty Russell <rusty@rustcorp.com.au>
Cc: <linux-kernel@vger.kernel.org>,
James Hogan <james.hogan@imgtec.com>,
Michal Marek <mmarek@suse.cz>, Sam Ravnborg <sam@ravnborg.org>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
Jonathan Kliegman <kliegs@chromium.org>
Subject: [PATCH 1/1] module: fix symbol versioning with symbol prefixes
Date: Tue, 12 Mar 2013 15:09:24 +0000 [thread overview]
Message-ID: <1363100964-29982-1-git-send-email-james.hogan@imgtec.com> (raw)
Fix symbol versioning on architectures with symbol prefixes. Although
the build was free from warnings the actual modules still wouldn't load
as the ____versions table contained unprefixed symbol names, which were
being compared against the prefixed symbol names when checking the
symbol versions.
This is fixed by modifying modpost to add the symbol prefix to the
____versions table it outputs (Modules.symvers still contains unprefixed
symbol names). The check_modstruct_version() function is also fixed as
it checks the version of the unprefixed "module_layout" symbol which
would no longer work.
Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Michal Marek <mmarek@suse.cz>
Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Jonathan Kliegman <kliegs@chromium.org>
---
This conflicts with Rusty's "CONFIG_SYMBOL_PREFIX: cleanup" patch.
kernel/module.c | 3 ++-
scripts/mod/modpost.c | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/kernel/module.c b/kernel/module.c
index 0925c9a..e64fcce 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -1212,7 +1212,8 @@ static inline int check_modstruct_version(Elf_Shdr *sechdrs,
if (!find_symbol(MODULE_SYMBOL_PREFIX "module_layout", NULL,
&crc, true, false))
BUG();
- return check_version(sechdrs, versindex, "module_layout", mod, crc,
+ return check_version(sechdrs, versindex,
+ MODULE_SYMBOL_PREFIX "module_layout", mod, crc,
NULL);
}
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index 78b30c1..b454156 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -1934,7 +1934,8 @@ static int add_versions(struct buffer *b, struct module *mod)
s->name, mod->name);
continue;
}
- buf_printf(b, "\t{ %#8x, \"%s\" },\n", s->crc, s->name);
+ buf_printf(b, "\t{ %#8x, \"%s%s\" },\n", s->crc,
+ MODULE_SYMBOL_PREFIX, s->name);
}
buf_printf(b, "};\n");
--
1.8.1.2
next reply other threads:[~2013-03-12 15:09 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-12 15:09 James Hogan [this message]
2013-03-13 23:51 ` Rusty Russell
2013-03-14 9:21 ` James Hogan
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=1363100964-29982-1-git-send-email-james.hogan@imgtec.com \
--to=james.hogan@imgtec.com \
--cc=gregkh@linuxfoundation.org \
--cc=kliegs@chromium.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mmarek@suse.cz \
--cc=rusty@rustcorp.com.au \
--cc=sam@ravnborg.org \
/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
all inboxes | Powered by JetHome®