[PATCH] ipmi_msghandler module load failure

From: Khalid Aziz
Date: Fri Jul 16 2004 - 11:35:09 EST


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);

--
Khalid

====================================================================
Khalid Aziz Linux and Open Source Lab
(970)898-9214 Hewlett-Packard
khalid_aziz@xxxxxx Fort Collins, CO

"The Linux kernel is subject to relentless development"
- Alessandro Rubini


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/