public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Corey Minyard <minyard@acm.org>
To: Khalid Aziz <khalid_aziz@hp.com>
Cc: LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] ipmi_msghandler module load failure
Date: Fri, 16 Jul 2004 21:09:45 -0500	[thread overview]
Message-ID: <40F88A69.4080003@acm.org> (raw)
In-Reply-To: <1089995643.5015.47.camel@lyra.fc.hp.com>

So they've added enforcement so that non-init code cannot call init 
code.  The call as it was is actually safe, there is a variable that 
will  only cause it to be called if it has not been called yet (there 
are possible reasons to do this when the driver is compiled into the 
kernel) and it always gets called at init time. The the enforcement is 
probably a good thing, though.  The patch looks ok.

-Corey

Khalid Aziz wrote:

>Corey,
>
>On a 2.6.7 kernel, when I try to modprobe ipmi_msghandler, it fails to
>load with following message:
>
>FATAL: Error inserting ipmi_msghandler (/lib/modules/2.6.7/kernel/drivers/char/ipmi/ipmi_msghandler.ko): Invalid module format
>
>And there is an error message in dmesg:
>
>ipmi_msghandler: init symbol 0xa000000200058080 used in module code at a000000200031b32
>
>What I have been able to determine is that ipmi_msghandler.c defines
>ipmi_init_msghandler() as the module_init() routine and then it also
>calls ipmi_init_msghandler() diretcly from couple of other places. This
>does not seem to be okay in 2.6.7 kernel. I was able to fix this by
>defining a new module_init routine which in turn calls
>ipmi_init_msghandler(). I also removed __init from
>ipmi_init_msghandler() since it gets called from ipmi_open() on an open
>of the ipmi device file. So I would think we want to keep
>ipmi_init_msghandler() around even after initialization. Here is the
>patch. Please apply if it looks good:
>
>--- linux-2.6.7/drivers/char/ipmi/ipmi_msghandler.c	2004-06-15 23:19:36.000000000 -0600
>+++ linux-2.6.7.new/drivers/char/ipmi/ipmi_msghandler.c	2004-07-16 10:28:52.000000000 -0600
>@@ -3072,7 +3072,7 @@
> 	200   /* priority: INT_MAX >= x >= 0 */
> };
> 
>-static __init int ipmi_init_msghandler(void)
>+static int ipmi_init_msghandler(void)
> {
> 	int i;
> 
>@@ -3107,6 +3107,11 @@
> 	return 0;
> }
> 
>+static __init int ipmi_init_msghandler_mod(void)
>+{
>+	ipmi_init_msghandler();
>+}
>+
> static __exit void cleanup_ipmi(void)
> {
> 	int count;
>@@ -3143,7 +3148,7 @@
> }
> module_exit(cleanup_ipmi);
> 
>-module_init(ipmi_init_msghandler);
>+module_init(ipmi_init_msghandler_mod);
> MODULE_LICENSE("GPL");
> 
> EXPORT_SYMBOL(ipmi_alloc_recv_msg);
>
>  
>



      reply	other threads:[~2004-07-17  2:09 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-07-16 16:34 [PATCH] ipmi_msghandler module load failure Khalid Aziz
2004-07-17  2:09 ` Corey Minyard [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=40F88A69.4080003@acm.org \
    --to=minyard@acm.org \
    --cc=khalid_aziz@hp.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