2.5.72 module loading issue

From: yiding_wang@agilent.com
Date: Tue Jul 22 2003 - 17:27:24 EST


I am still struggling on the fc driver module working on new 2.5.72/2.6 kernel and wish someone can shed some lights here.

The driver is working great for 2.4.x Linux and is modified to reflect all SCSI layer change in 2.5.72. I have RH9.0 and installed 2.5.72 on the same system. Driver compiled under 2.5.72 OK. The module utilities are upgraded to 0.9.13-pre.

Now first problem I have is to module loading fails on "insmod mymodule.o". Message:
 
"No module found in object"
"Error inserting 'mymodule.o': -1 Invalid module format"

By checking the trace, following are the failed part:
... ...
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=49530, ...}) = 0
... ...
brk(0) = 0x804a000
brk(0x804b000) = 0x804b000
brk(0) = 0x804b000
create_module(umovestr: Input/output error 0, 0) = -1 ENOSYS (Function not implemented)
open("mymodule.o", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=345047, ...}) = 0
mmap2(NULL, 345047, PROT_READ, MAP_SHARED, 3, 0) = 0x40017000
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv - something is wrong here
init_module("ELF", 0x543d7No module found in object) = -1 ENOEXEC (Exec format error)) = -1 ENOEXEC (Exec format error)
... ...
exit_group(1) = ?

Noticed that kernel build module has *.mod.c file created, I tried to include those part in but the result is the same.

This is a SCSI HBA driver and init_module() is not required (ref. to qlogic, adaptec and buslogic drivers).

Also I tried to load kernel build driver module BusLogic.o and qla1280.o with "insmod", it gives error almost the same except the message are different.
"BusLogic: no version message, tainting kernel"
"Error inserting 'BusLogic.o': -1 No such device

In init_module call, it has init_module("ELF". 0x1a5b4BusLogic" no version magic, tainting kernel.) = -1 ENODEV (No such device).

It looks like something is missing from migrating my driver module from 2.4.x to 2.5.x.

What is new requirement for module building and loading with "insmod" on 2.5.72 compare with the requirement in 2.4.x?

Many thanks!

Eddie

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



This archive was generated by hypermail 2b29 : Wed Jul 23 2003 - 22:00:48 EST