Bug 15632 - sd_mod cannot be loaded: unresolved symbols
Summary: sd_mod cannot be loaded: unresolved symbols
Keywords:
Status: CLOSED DUPLICATE of bug 19862
Alias: None
Product: Red Hat Linux
Classification: Retired
Component: kernel
Version: 7.0
Hardware: i386
OS: Linux
high
medium
Target Milestone: ---
Assignee: Arjan van de Ven
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2000-08-07 12:52 UTC by Bernhard Ege
Modified: 2008-05-01 15:37 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2001-02-21 17:27:14 UTC
Embargoed:


Attachments (Terms of Use)

Description Bernhard Ege 2000-08-07 12:52:54 UTC
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
blkelv_ioctl_R40cc2807
/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.

regards,

Bernhard Ege

Comment 1 Michael K. Johnson 2000-08-08 03:12:51 UTC
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
ftp://people.redhat.com/johnsonm/testkernels/
fix the problem for you.

Comment 2 Bernhard Ege 2000-08-08 09:57:40 UTC
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 10:16:53 UTC
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:

CONFIG_SCSI=m
CONFIG_BLK_DEV_SD=m
CONFIG_CHR_DEV_SG=m
CONFIG_SCSI_MULTI_LUN=y
CONFIG_SCSI_CONSTANTS=y
CONFIG_SCSI_PPA=m
CONFIG_SCSI_IZIP_EPP16=y
CONFIG_SCSI_SYM53C416=m

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?

regards,

Bernhard Ege


Comment 4 Terry Griffin 2001-02-20 05:47:07 UTC
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 17:34:36 UTC
"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.