mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Rusty Russell <rusty@rustcorp.com.au>
To: "Adam J. Richter" <adam@yggdrasil.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: 2.5.70-bk1[23]: load_module crashes when aborting module load
Date: Tue, 10 Jun 2003 11:39:45 +1000	[thread overview]
Message-ID: <20030610042531.4D63E2C13D@lists.samba.org> (raw)
In-Reply-To: Your message of "Mon, 09 Jun 2003 03:14:49 MST." <200306091014.h59AEnU08591@adam.yggdrasil.com>

In message <200306091014.h59AEnU08591@adam.yggdrasil.com> you write:
> Hi Rusty,
> 
> 	I thought I should report this problem to you now, as I'm
> about to have to explore some code that I'm not too familiar with
> (vfree) as I continue debugging it.  Also note I am running a
> modified kernel/module.c, so it is remotely possible that this problem
> is self-inflicted, but I don't think so.
> 
> 	In 2.5.70-bk1[23], I get a kernel bad memory reference
> when trying load a module with an undefined symbol that is not found.
> The bad memory reference occurs in load_module after the call
> to module_free(mod,mod->module_core), the next time that "mod" is
> dereferenced.   Here is a commented excerpt from load_module
> in kernel/module.c:
> 
>  cleanup:
>         module_unload_free(mod);
>         module_free(mod, mod->module_init);
>  free_core:
>         module_free(mod, mod->module_core);
> 	/* The following "if" statement generates a kernel bad memory
> 	   reference.  --Adam */
>  free_percpu:
>         if (mod->percpu)
>                 percpu_modfree(mod->percpu);
> 
> 	For whatever reason, module->module_core (ee820000) points to
> an address slightly before mod (mod = ee828780, the bad dereference
> is to ee8298a4).  On x86, module_free() is vfree().  I suspect that
> somehow vfree() has gotten confused.

Well, mod is inside module->module_core, so that makes sense: check
the section layout, but usually the .text section is first, then mod
will be near the .data section (turn on debugging in layout_sections
to get the details).

> 	By the way, there also seems to be a bug in the
> 2.5.70-bk12/kernel/module.c changes where mod->percpu is left unitialized
> if a module has no per-cpu data.  I've verified that there really is a
> junk non-zero value in mod->percpu in that case.  However, fixing that
> bug does not eliminate this problem.

Something is badly wrong: look in include/linux/module.h and you'll
see the initialization of __this_module (which becomes mod).  By
leaving the .percpu member uninitialized, it will be initialized to
NULL.

Random guess: did the build system not rebuild your modules properly
when module.h changed?

Puzzled,
Rusty.
--
  Anyone who quotes me in their sig is an idiot. -- Rusty Russell.

  reply	other threads:[~2003-06-10  4:11 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-06-09 10:14 Adam J. Richter
2003-06-10  1:39 ` Rusty Russell [this message]
2003-06-10  8:48   ` Milton Miller
2003-06-11  5:47     ` Rusty Russell
2003-06-11  3:44 Randy.Dunlap
2003-06-11 23:43 Adam J. Richter

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=20030610042531.4D63E2C13D@lists.samba.org \
    --to=rusty@rustcorp.com.au \
    --cc=adam@yggdrasil.com \
    --cc=linux-kernel@vger.kernel.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®