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
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.
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.
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
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.
"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 ***