From: Rusty Russell <rusty@rustcorp.com.au>
To: Kai Germaschewski <kai@tp1.ruhr-uni-bochum.de>
Cc: torvalds@transmeta.com,
James Bottomley <James.Bottomley@SteelEye.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: module.c broken in latest snapshot
Date: Thu, 03 Apr 2003 09:43:15 +1000 [thread overview]
Message-ID: <20030403001126.E44C32C292@lists.samba.org> (raw)
In-Reply-To: Your message of "Wed, 02 Apr 2003 11:41:41 CST." <Pine.LNX.4.44.0304021138570.8411-100000@chaos.physics.uiowa.edu>
In message <Pine.LNX.4.44.0304021138570.8411-100000@chaos.physics.uiowa.edu> yo
u write:
> This patch should fix this problem and another, less obvious, one, which
> made symbols exported by modules not work.
Sorry, I didn't test CONFIG_KALLSYMS=y.
This patch looks fine, Linus please apply.
Grr, fucking SMP box still doesn't stay up on 2.5, doing binary search
now ...
Rusty.
--
Anyone who quotes me in their sig is an idiot. -- Rusty Russell.
===== include/linux/module.h 1.57 vs edited =====
--- 1.57/include/linux/module.h Mon Mar 24 19:34:42 2003
+++ edited/include/linux/module.h Wed Apr 2 10:37:00 2003
@@ -183,7 +183,7 @@
/* Exported symbols */
const struct kernel_symbol *syms;
- unsigned int num_ksyms;
+ unsigned int num_syms;
const unsigned long *crcs;
/* GPL-only exported symbols. */
@@ -233,7 +233,7 @@
#ifdef CONFIG_KALLSYMS
/* We keep the symbol and string tables for kallsyms. */
Elf_Sym *symtab;
- unsigned long num_syms;
+ unsigned long num_symtab;
char *strtab;
#endif
===== kernel/module.c 1.72 vs edited =====
--- 1.72/kernel/module.c Mon Mar 24 19:31:40 2003
+++ edited/kernel/module.c Wed Apr 2 10:39:50 2003
@@ -156,7 +156,7 @@
/* Now try modules. */
list_for_each_entry(mod, &modules, list) {
*owner = mod;
- for (i = 0; i < mod->num_ksyms; i++)
+ for (i = 0; i < mod->num_syms; i++)
if (strcmp(mod->syms[i].name, name) == 0) {
*crc = symversion(mod->crcs, i);
return mod->syms[i].value;
@@ -839,12 +839,13 @@
unsigned int versindex,
struct module *mod)
{
- unsigned int i;
- struct kernel_symbol_group *ksg;
+ const unsigned long *crc;
+ struct module *owner;
- if (!__find_symbol("struct_module", &ksg, &i, 1))
+ if (!__find_symbol("struct_module", &owner, &crc, 1))
BUG();
- return check_version(sechdrs, versindex, "struct_module", mod, ksg, i);
+ return check_version(sechdrs, versindex, "struct_module", mod,
+ crc);
}
/* First part is kernel version, which we ignore. */
@@ -1283,7 +1284,8 @@
mod->gpl_crcs = (void *)sechdrs[gplcrcindex].sh_addr;
#ifdef CONFIG_MODVERSIONS
- if ((mod->num_ksyms&&!crcindex) || (mod->num_gpl_syms&&!gplcrcindex)) {
+ if ((mod->num_syms && !crcindex) ||
+ (mod->num_gpl_syms && !gplcrcindex)) {
printk(KERN_WARNING "%s: No versions for exported symbols."
" Tainting kernel.\n", mod->name);
tainted |= TAINT_FORCED_MODULE;
@@ -1309,7 +1311,7 @@
#ifdef CONFIG_KALLSYMS
mod->symtab = (void *)sechdrs[symindex].sh_addr;
- mod->num_syms = sechdrs[symindex].sh_size / sizeof(Elf_Sym);
+ mod->num_symtab = sechdrs[symindex].sh_size / sizeof(Elf_Sym);
mod->strtab = (void *)sechdrs[strindex].sh_addr;
#endif
err = module_finalize(hdr, sechdrs, mod);
@@ -1452,7 +1454,7 @@
/* Scan for closest preceeding symbol, and next symbol. (ELF
starts real symbols at 1). */
- for (i = 1; i < mod->num_syms; i++) {
+ for (i = 1; i < mod->num_symtab; i++) {
if (mod->symtab[i].st_shndx == SHN_UNDEF)
continue;
prev parent reply other threads:[~2003-04-03 0:00 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-04-02 15:48 module.c broken in latest snapshot Brian Gerst
2003-04-02 17:41 ` Kai Germaschewski
2003-04-02 18:52 ` James Bottomley
2003-04-02 23:43 ` Rusty Russell [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=20030403001126.E44C32C292@lists.samba.org \
--to=rusty@rustcorp.com.au \
--cc=James.Bottomley@SteelEye.com \
--cc=kai@tp1.ruhr-uni-bochum.de \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@transmeta.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.