Bug 15632 - sd_mod cannot be loaded: unresolved symbols
sd_mod cannot be loaded: unresolved symbols
Status: CLOSED DUPLICATE of bug 19862
Product: Red Hat Linux
Classification: Retired
Component: kernel (Show other bugs)
i386 Linux
high Severity medium
: ---
: ---
Assigned To: Arjan van de Ven
Depends On:
  Show dependency treegraph
Reported: 2000-08-07 08:52 EDT by Bernhard Ege
Modified: 2008-05-01 11:37 EDT (History)
0 users

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2001-02-21 12:27:14 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Bernhard Ege 2000-08-07 08:52:54 EDT
Running kernel 2.2.16-17 and having enabled SCSI (sd_mod, sg, scsi_mod,
ppa, sym53c416 modules present) sd_mod fails to load with this message:

modprobe sd_mod
/lib/modules/2.2.16-17/scsi/sd_mod.o: unresolved symbol req_finished_io
/lib/modules/2.2.16-17/scsi/sd_mod.o: unresolved symbol
/lib/modules/2.2.16-17/scsi/sd_mod.o: insmod
/lib/modules/2.2.16-17/scsi/sd_mod.o failed
/lib/modules/2.2.16-17/scsi/sd_mod.o: insmod sd_mod failed

depmod -a
depmod: *** Unresolved symbols in /lib/modules/2.2.16-17/scsi/sd_mod.o

I made removed all modules from disc from earlier kernels, to be sure the
correct sd_mod would load, but it fails.

System.map is in place in /boot and contains req_finished_io (c0177788 T
req_finished_io) but not blkelv_ioctl_R40cc2807.

I am not sure what info to provide (standard kernel 2.2.16 loads this
module with no problems, doesn't require req_finished_io and the other
symbol is just called blkelv_ioctl).

I dont know how to get any closer than this.


Bernhard Ege
Comment 1 Michael K. Johnson 2000-08-07 23:12:51 EDT
I think I know what it is, and I think that it was fixed
in some test kernels I built a few days ago.  Please check
and see if the kernels at
fix the problem for you.
Comment 2 Bernhard Ege 2000-08-08 05:57:40 EDT
I have downloaded the source, installed it, edited the SPEC file to only build
the normal kernel, changed kernel-2.2.16-i386.config with my own (which compiles
sd as a module), did a rpm -bc SPECS/kernel-2.2.spec and compiling proceeded
until here:

kgcc -D__KERNEL__ -I/usr/src/redhat/BUILD/linux/include -Wall
-Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe
-fno-strength-reduce -m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2
-DCPU=686 -DMODULE   -c -o sd.o sd.c
{standard input}: Assembler messages:
{standard input}:9: Warning: Ignoring changed section attributes for .modinfo
sd.c: In function `cleanup_module':
sd.c:1835: `major_gendisks' undeclared (first use in this function)
sd.c:1835: (Each undeclared identifier is reported only once
sd.c:1835: for each function it appears in.)
make[2]: *** [sd.o] Error 1
make[2]: Leaving directory `/usr/src/redhat/BUILD/linux/drivers/scsi'
make[1]: *** [_modsubdir_scsi] Error 2
make[1]: Leaving directory `/usr/src/redhat/BUILD/linux/drivers'
make: *** [_mod_drivers] Error 2
Bad exit status from /var/tmp/rpm-tmp.94723 (%build)

This is the same bug as 15233. I fixed it, did a "make bzImage" and "make
modules". I then checked the sd_mod.o module and it did not require the 
blkelv_ioctl_R40cc2807 symbol anymore, just blkelv_ioctl. It still requires the
req_finished_io. Both symbol are defined in the new System.map file. I will now
install and reboot and let you know if it loads ok.
Comment 3 Bernhard Ege 2000-08-08 06:16:53 EDT
Nope, it doesn't load. Here is the log:

modprobe sd_mod
/lib/modules/2.2.16-17.1/scsi/sd_mod.o: unresolved symbol req_finished_io
/lib/modules/2.2.16-17.1/scsi/sd_mod.o: insmod
/lib/modules/2.2.16-17.1/scsi/sd_mod.o failed
/lib/modules/2.2.16-17.1/scsi/sd_mod.o: insmod sd_mod failed

The blkelv_ioctl problem has gone, but req_finished_io is still missing. It does
exist in System.map, but not in /proc/ksyms, even though it does exist in
vmlinux (I am using arch/i386/boot/bzImage). These are my SCSI config lines:


As far as I can tell, req_finished_io is defined in drivers/block/ll_rw_blk.c
(.o) but is not shared. nm -s on drivers/block/block.a shows req_finished_io to
be defined in ll_rw_blk.o.

Is this enough info?


Bernhard Ege
Comment 4 Terry Griffin 2001-02-20 00:47:07 EST
Still broken in 2.2.17-14. Needs only a one-line fix to export the symbol. (How
hard can it be?) See also bug #19862.
Comment 5 Arjan van de Ven 2001-02-21 12:34:36 EST
"req_finished_io" is a duplicate of bug 19862 and will be fixed in the
next 2.2 kernel build if/when we make one available.

*** This bug has been marked as a duplicate of 19862 ***

Note You need to log in before you can comment on or make changes to this bug.