* sparc: cannot load any modules with 2.6.17-rc3
@ 2006-05-05 11:35 ` Martin Habets
0 siblings, 0 replies; 12+ messages in thread
From: Martin Habets @ 2006-05-05 11:35 UTC (permalink / raw)
To: sparclinux, linux-kernel
When I try to boot 2.6.17-rc3 on my SS20 I get this error for every
module it tries to load:
module crc32: Unknown relocation: 17
This worked okay on 2.6.16-rc2. Is anyone looking into this problem yet?
It's comming from a new type R_SPARC_PC22 in the ELF header. Any idea
what could be causing this? Is it intentional or a bug?
I've attached my dmesg output and the config. Please CC me as I'm not
subscribed to linux-kernel.
Thanks,
Martin
-------------------------
PROMLIB: Sun Boot Prom Version 3 Revision 2
Linux version 2.6.17-rc3-mph3 (opendev@palantir9) (gcc version 3.4.4 20050314 (prerelease) (Debian 3.4.3-13)) #7 Tue May 2 23:55:47 BST 2006
ARCH: SUN4M
TYPE: Sun4m SparcStation10/20
Ethernet address: 8:0:20:7c:37:74
Boot time fixup v1.6. 4/Mar/98 Jakub Jelinek (jj@ultra.linux.cz). Patching kernel for srmmu[TI Viking]/iommu
31MB HIGHMEM available.
On node 0 totalpages: 15659
DMA zone: 7656 pages, LIFO batch:0
HighMem zone: 8003 pages, LIFO batch:0
Power off control detected.
Built 1 zonelists
Kernel command line: root=/dev/sdb5
PID hash table entries: 128 (order: 7, 512 bytes)
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
Memory: 56440k/64780k available (1424k kernel code, 8340k reserved, 472k data, 100k init, 32012k highmem)
Calibrating delay loop... 49.86 BogoMIPS (lpj=249344)
Mount-cache hash table entries: 512
NET: Registered protocol family 16
SCSI subsystem initialized
IOMMU: impl 1 vers 3 table 0xf0880000[262144 B] map [65536 b]
sbus0: Clock 25.0 MHz
dma0: Revision 2
dma1: Revision 2
ioremap: done with statics, switching to malloc
dma2: ESC Revision 1
highmem bounce pool size: 64 pages
Initializing Cryptographic API
io scheduler noop registered
io scheduler deadline registered (default)
SunZilog: 2 chips.
zs2 at 0xfd015004 (irq = 44) is a SunZilog
zs3 at 0xfd015000 (irq = 44) is a SunZilog
ttyS0 at MMIO 0x0 (irq = 44) is a SunZilog
Console: ttyS0 (SunZilog zs0)
ttyS1 at MMIO 0x0 (irq = 44) is a SunZilog
esp0: IRQ 36 SCSI ID 7 Clk 40MHz CCYC=25000 CCF=8 TOut 167 NCR53C9XF(espfast)
esp1: IRQ 53 SCSI ID 7 Clk 40MHz CCYC=25000 CCF=8 TOut 167 NCR53C9XF(espfast)
ESP: Total of 2 ESP hosts found, 2 actually in use.
scsi0 : Sparc ESP100A-FAST
Vendor: SEAGATE Model: ST39173W SUN9.0G Rev: 7063
Type: Direct-Access ANSI SCSI revision: 02
Vendor: SEAGATE Model: ST32550W SUN2.1G Rev: 0416
Type: Direct-Access ANSI SCSI revision: 02
scsi1 : Sparc ESP236-FAST
Vendor: Quantum Model: DLT4000 Rev: DA97
Type: Sequential-Access ANSI SCSI revision: 02
esp0: target 1 [period 100ns offset 15 10.00MHz FAST SCSI-II]
SCSI device sda: 17689267 512-byte hdwr sectors (9057 MB)
sda: Write Protect is off
sda: Mode Sense: cf 00 10 08
SCSI device sda: drive cache: write through w/ FUA
SCSI device sda: 17689267 512-byte hdwr sectors (9057 MB)
sda: Write Protect is off
sda: Mode Sense: cf 00 10 08
SCSI device sda: drive cache: write through w/ FUA
sda: sda1 sda2 sda3 sda4 sda5 sda6 sda7 sda8
sd 0:0:1:0: Attached scsi disk sda
esp0: target 3 [period 100ns offset 15 10.00MHz FAST SCSI-II]
SCSI device sdb: 4194995 512-byte hdwr sectors (2148 MB)
sdb: Write Protect is off
sdb: Mode Sense: ab 00 10 08
SCSI device sdb: drive cache: write through w/ FUA
SCSI device sdb: 4194995 512-byte hdwr sectors (2148 MB)
sdb: Write Protect is off
sdb: Mode Sense: ab 00 10 08
SCSI device sdb: drive cache: write through w/ FUA
sdb: sdb1 sdb2 sdb3 sdb4 sdb5
sd 0:0:3:0: Attached scsi disk sdb
NET: Registered protocol family 2
IP route cache hash table entries: 512 (order: -1, 2048 bytes)
TCP established hash table entries: 2048 (order: 1, 8192 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 2048 bind 1024)
TCP reno registered
TCP bic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
kjournald starting. Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
VFS: Mounted root (ext3 filesystem) readonly.
Freeing unused kernel memory: 100k freed
Adding 124632k swap on /dev/sdb2. Priority:-1 extents:1 across:124632k
EXT3-fs warning: maximal mount count reached, running e2fsck is recommended
EXT3 FS on sdb5, internal journal
module crc32: Unknown relocation: 17
sunlance: Unknown symbol crc32_le
module soundcore: Unknown relocation: 17
snd: Unknown symbol sound_class
module openpromfs: Unknown relocation: 17
kjournald starting. Commit interval 5 seconds
EXT3-fs warning: maximal mount count reached, running e2fsck is recommended
EXT3 FS on sdb1, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
kjournald starting. Commit interval 5 seconds
EXT3-fs warning: maximal mount count reached, running e2fsck is recommended
EXT3 FS on sda7, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
palantir9:~# modprobe st
module st: Unknown relocation: 17
FATAL: Error inserting st (/lib/modules/2.6.17-rc3-mph3/kernel/drivers/scsi/st.ko): Invalid module format
-------------------------
CONFIG_MMU=y
CONFIG_HIGHMEM=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION="-mph3"
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSCTL=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_UID16=y
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SHMEM=y
CONFIG_BASE_SMALL=0
CONFIG_SLOB=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_KMOD=y
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_DEFAULT_DEADLINE=y
CONFIG_DEFAULT_IOSCHED="deadline"
CONFIG_SPARC=y
CONFIG_SPARC32=y
CONFIG_SBUS=y
CONFIG_SBUSCHAR=y
CONFIG_SERIAL_CONSOLE=y
CONFIG_SUN_AUXIO=y
CONFIG_SUN_IO=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_GENERIC_FIND_NEXT_BIT=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_SUN_PM=y
CONFIG_SUN_OPENPROMFS=m
CONFIG_SPARC_LED=m
CONFIG_BINFMT_ELF=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_XFRM=y
CONFIG_XFRM_USER=m
CONFIG_NET_KEY=m
CONFIG_INET=y
CONFIG_IP_FIB_HASH=y
CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_INET_XFRM_TUNNEL=m
CONFIG_INET_TUNNEL=m
CONFIG_INET_DIAG=m
CONFIG_INET_TCP_DIAG=m
CONFIG_TCP_CONG_BIC=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_RAM=m
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_SCSI=y
CONFIG_SCSI_PROC_FS=y
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_ST=m
CONFIG_BLK_DEV_SR=m
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_CHR_DEV_SG=m
CONFIG_CHR_DEV_SCH=m
CONFIG_SCSI_CONSTANTS=y
CONFIG_SCSI_LOGGING=y
CONFIG_SCSI_SPI_ATTRS=m
CONFIG_SCSI_ISCSI_ATTRS=m
CONFIG_ISCSI_TCP=m
CONFIG_SCSI_QLOGICPTI=m
CONFIG_SCSI_SUNESP=y
CONFIG_NETDEVICES=y
CONFIG_NET_ETHERNET=y
CONFIG_MII=m
CONFIG_SUNLANCE=m
CONFIG_SERIO=y
CONFIG_SERIO_SERPORT=m
CONFIG_SERIO_RAW=m
CONFIG_SERIAL_SUNCORE=y
CONFIG_SERIAL_SUNZILOG=y
CONFIG_SERIAL_SUNZILOG_CONSOLE=y
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_UNIX98_PTYS=y
CONFIG_SOUND=m
CONFIG_SND=m
CONFIG_SND_TIMER=m
CONFIG_SND_PCM=m
CONFIG_SND_SUN_AMD7930=m
CONFIG_SND_SUN_CS4231=m
CONFIG_SND_SUN_DBRI=m
CONFIG_RTC_LIB=m
CONFIG_RTC_CLASS=m
CONFIG_RTC_INTF_SYSFS=m
CONFIG_RTC_INTF_PROC=m
CONFIG_RTC_INTF_DEV=m
CONFIG_SUN_OPENPROMIO=m
CONFIG_SUN_MOSTEK_RTC=m
CONFIG_UNIX98_PTY_COUNT=64
CONFIG_EXT3_FS=y
CONFIG_JBD=y
CONFIG_MINIX_FS=m
CONFIG_ISO9660_FS=m
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
CONFIG_ZISOFS_FS=m
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
CONFIG_RAMFS=y
CONFIG_CRAMFS=m
CONFIG_UFS_FS=m
CONFIG_NFS_FS=m
CONFIG_NFS_V3=y
CONFIG_LOCKD=m
CONFIG_LOCKD_V4=y
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=m
CONFIG_PARTITION_ADVANCED=y
CONFIG_MSDOS_PARTITION=y
CONFIG_BSD_DISKLABEL=y
CONFIG_MINIX_SUBPARTITION=y
CONFIG_SUN_PARTITION=y
CONFIG_NLS=m
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_KERNEL=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_DEBUG_MUTEXES=y
CONFIG_DEBUG_SPINLOCK_SLEEP=y
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_UNWIND_INFO=y
CONFIG_FORCED_INLINING=y
CONFIG_CRYPTO=y
CONFIG_CRYPTO_HMAC=y
CONFIG_CRYPTO_NULL=m
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=m
CONFIG_CRYPTO_SHA1=m
CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_CRC32C=m
CONFIG_CRC_CCITT=m
CONFIG_CRC32=m
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=m
CONFIG_ZLIB_DEFLATE=m
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: sparc: cannot load any modules with 2.6.17-rc3
2006-05-05 11:35 ` Martin Habets
@ 2006-05-06 0:34 ` David S. Miller
-1 siblings, 0 replies; 12+ messages in thread
From: David S. Miller @ 2006-05-06 0:34 UTC (permalink / raw)
To: errandir_news; +Cc: sparclinux, linux-kernel
From: Martin Habets <errandir_news@mph.eclipse.co.uk>
Date: Fri, 5 May 2006 12:35:14 +0100
> When I try to boot 2.6.17-rc3 on my SS20 I get this error for every
> module it tries to load:
> module crc32: Unknown relocation: 17
>
> This worked okay on 2.6.16-rc2. Is anyone looking into this problem yet?
> It's comming from a new type R_SPARC_PC22 in the ELF header. Any idea
> what could be causing this? Is it intentional or a bug?
>
> I've attached my dmesg output and the config. Please CC me as I'm not
> subscribed to linux-kernel.
I don't see how that type of relocation can be emitted.
Can you send me one of the smaller of the *.ko files that
have this problem? Thanks.
I can add the relocation handling to the Sparc module support,
but I don't think it should be necessary in the first place
and looking at a sample module with the problem will help me
figure this out.
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: sparc: cannot load any modules with 2.6.17-rc3
@ 2006-05-06 0:34 ` David S. Miller
0 siblings, 0 replies; 12+ messages in thread
From: David S. Miller @ 2006-05-06 0:34 UTC (permalink / raw)
To: errandir_news; +Cc: sparclinux, linux-kernel
From: Martin Habets <errandir_news@mph.eclipse.co.uk>
Date: Fri, 5 May 2006 12:35:14 +0100
> When I try to boot 2.6.17-rc3 on my SS20 I get this error for every
> module it tries to load:
> module crc32: Unknown relocation: 17
>
> This worked okay on 2.6.16-rc2. Is anyone looking into this problem yet?
> It's comming from a new type R_SPARC_PC22 in the ELF header. Any idea
> what could be causing this? Is it intentional or a bug?
>
> I've attached my dmesg output and the config. Please CC me as I'm not
> subscribed to linux-kernel.
I don't see how that type of relocation can be emitted.
Can you send me one of the smaller of the *.ko files that
have this problem? Thanks.
I can add the relocation handling to the Sparc module support,
but I don't think it should be necessary in the first place
and looking at a sample module with the problem will help me
figure this out.
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: sparc: cannot load any modules with 2.6.17-rc3
2006-05-05 11:35 ` Martin Habets
(?)
(?)
@ 2006-05-06 9:12 ` Martin Habets
-1 siblings, 0 replies; 12+ messages in thread
From: Martin Habets @ 2006-05-06 9:12 UTC (permalink / raw)
To: sparclinux
Hi Dave,
I thought you were too busy with Niagara? so I figured the LKML was
the best way to go.
On Fri, May 05, 2006 at 05:34:49PM -0700, David S. Miller wrote:
> From: Martin Habets <errandir_news@mph.eclipse.co.uk>
> Date: Fri, 5 May 2006 12:35:14 +0100
>
> > When I try to boot 2.6.17-rc3 on my SS20 I get this error for every
> > module it tries to load:
> > module crc32: Unknown relocation: 17
> >
> > This worked okay on 2.6.16-rc2. Is anyone looking into this problem yet?
> > It's comming from a new type R_SPARC_PC22 in the ELF header. Any idea
> > what could be causing this? Is it intentional or a bug?
> >
> > I've attached my dmesg output and the config. Please CC me as I'm not
> > subscribed to linux-kernel.
>
> I don't see how that type of relocation can be emitted.
> Can you send me one of the smaller of the *.ko files that
> have this problem? Thanks.
I've put crc32.ko and crc32.o at http://www.mph.eclipse.co.uk/pub/linux/
> I can add the relocation handling to the Sparc module support,
> but I don't think it should be necessary in the first place
> and looking at a sample module with the problem will help me
> figure this out.
I'm puzzled as well why this is happening. Must be something in the
kernel code, as I'm still building 2.6.16-rc2 fine on the same machine.
Below I've attached a verbose build output of this module.
Thanks,
--
Martin
----------------------------------------
Script started on Sat 06 May 2006 09:54:39 BST
^[]0;opendev@palantir9: /home/opendev/dev/linux/2.6.17-rc3\aopendev@palantir9:~/dev/linux/2.6.17-rc3$ make V=1 lib/crc32.ko
rm -f .kernelrelease
echo 2.6.17-rc3-mph3 > .kernelrelease
if test ! /home/opendev/src/linux/2.6.17-rc3 -ef /home/opendev/src/linux/2.6.17-rc3; then \
/bin/sh /home/opendev/src/linux/2.6.17-rc3/scripts/mkmakefile \
/home/opendev/src/linux/2.6.17-rc3 /home/opendev/src/linux/2.6.17-rc3 2 6 \
> /home/opendev/src/linux/2.6.17-rc3/Makefile; \
echo ' GEN /home/opendev/src/linux/2.6.17-rc3/Makefile'; \
fi
set -e; echo ' CHK include/linux/version.h'; mkdir -p include/linux/; if [ `echo -n "2.6.17-rc3-mph3" | wc -c ` -gt 64 ]; then echo '"2.6.17-rc3-mph3" exceeds 64 characters' >&2; exit 1; fi; (echo \#define UTS_RELEASE \"2.6.17-rc3-mph3\"; echo \#define LINUX_VERSION_CODE `expr 2 \\* 65536 + 6 \\* 256 + 17`; echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))'; ) < /home/opendev/src/linux/2.6.17-rc3/Makefile > include/linux/version.h.tmp; if [ -r include/linux/version.h ] && cmp -s include/linux/version.h include/linux/version.h.tmp; then rm -f include/linux/version.h.tmp; else echo ' UPD include/linux/version.h'; mv -f include/linux/version.h.tmp include/linux/version.h; fi
CHK include/linux/version.h
make -f scripts/Makefile.build obj=scripts/basic
make -f scripts/Makefile.build obj=.
mkdir -p arch/sparc/kernel/
make -f scripts/Makefile.build obj=scripts
make -f scripts/Makefile.build obj=scripts/mod
make KBUILD_MODULES=1 \
-f scripts/Makefile.build obj=lib lib/crc32.o
gcc -Wp,-MD,lib/.crc32.o.d -nostdinc -isystem /usr/lib/gcc/sparc-linux/3.4.4/include -D__KERNEL__ -Iinclude -include include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -O2 -fomit-frame-pointer -fasynchronous-unwind-tables -m32 -pipe -mno-fpu -fcall-used-g5 -fcall-used-g7 -Wdeclaration-after-statement -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(crc32)" -D"KBUILD_MODNAME=KBUILD_STR(crc32)" -c -o lib/crc32.o lib/crc32.c
make -rR -f /home/opendev/src/linux/2.6.17-rc3/scripts/Makefile.modpost
scripts/mod/modpost -o /home/opendev/src/linux/2.6.17-rc3/Module.symvers vmlinux arch/sparc/kernel/led.o crypto/crc32c.o crypto/crypto_null.o crypto/deflate.o crypto/des.o crypto/md4.o crypto/md5.o crypto/sha1.o drivers/block/cryptoloop.o drivers/block/loop.o drivers/block/rd.o drivers/cdrom/cdrom.o drivers/input/serio/serio_raw.o drivers/input/serio/serport.o drivers/net/mii.o drivers/net/sunlance.o drivers/rtc/rtc-core.o drivers/rtc/rtc-dev.o drivers/rtc/rtc-lib.o drivers/rtc/rtc-proc.o drivers/rtc/rtc-sysfs.o drivers/sbus/char/openprom.o drivers/sbus/char/rtc.o drivers/scsi/ch.o drivers/scsi/iscsi_tcp.o drivers/scsi/qlogicpti.o drivers/scsi/scsi_transport_iscsi.o drivers/scsi/scsi_transport_spi.o drivers/scsi/sg.o drivers/scsi/sr_mod.o drivers/scsi/st.o fs/cramfs/cramfs.o fs/fat/fat.o fs/isofs/isofs.o fs/lockd/lockd.o fs/minix/minix.o fs/msdos/msdos.o fs/nfs/nfs.o fs/nls/nls_base.o fs/openpromfs/openpromfs.o fs/ufs/ufs.o fs/vfat/vfat.o lib/crc-ccitt.o lib/crc32.o lib/libcrc32c.o lib/zlib_deflate/zlib_deflate.o lib/zlib_inflate/zlib_inflate.o net/ipv4/ah4.o net/ipv4/esp4.o net/ipv4/inet_diag.o net/ipv4/ipcomp.o net/ipv4/tcp_diag.o net/ipv4/tunnel4.o net/ipv4/xfrm4_tunnel.o net/key/af_key.o net/sunrpc/sunrpc.o net/xfrm/xfrm_user.o sound/core/snd-page-alloc.o sound/core/snd-pcm.o sound/core/snd-timer.o sound/core/snd.o sound/soundcore.o sound/sparc/snd-sun-amd7930.o sound/sparc/snd-sun-cs4231.o sound/sparc/snd-sun-dbri.o
WARNING: vmlinux - Section mismatch: reference to .init.text:no_sun4u_here from .text between 'current_pc' (at offset 0x9040) and 'already_mapped'
WARNING: vmlinux - Section mismatch: reference to .init.text: from .text between 'go_to_highmem' (at offset 0x9280) and 'init_thread_union'
WARNING: vmlinux - Section mismatch: reference to .init.text: from .text between 'go_to_highmem' (at offset 0x9284) and 'init_thread_union'
WARNING: vmlinux - Section mismatch: reference to .init.text:spawn_ksoftirqd from .text between 'init' (at offset 0xc098) and 'try_name'
WARNING: vmlinux - Section mismatch: reference to .init.text:sched_init_smp from .text between 'init' (at offset 0xc0a0) and 'try_name'
WARNING: vmlinux - Section mismatch: reference to .init.text:populate_rootfs from .text between 'init' (at offset 0xc0a8) and 'try_name'
WARNING: vmlinux - Section mismatch: reference to .init.text:usermodehelper_init from .text between 'init' (at offset 0xc0b8) and 'try_name'
WARNING: vmlinux - Section mismatch: reference to .init.text:driver_init from .text between 'init' (at offset 0xc0c0) and 'try_name'
WARNING: vmlinux - Section mismatch: reference to .init.text:sysctl_init from .text between 'init' (at offset 0xc0c8) and 'try_name'
WARNING: vmlinux - Section mismatch: reference to .init.data:initcall_debug from .text between 'init' (at offset 0xc0e8) and 'try_name'
WARNING: vmlinux - Section mismatch: reference to .init.data:initcall_debug from .text between 'init' (at offset 0xc0ec) and 'try_name'
WARNING: vmlinux - Section mismatch: reference to .init.data:initcall_debug from .text between 'init' (at offset 0xc120) and 'try_name'
WARNING: vmlinux - Section mismatch: reference to .init.data:initcall_debug from .text between 'init' (at offset 0xc1b4) and 'try_name'
WARNING: vmlinux - Section mismatch: reference to .init.text:prepare_namespace from .text between 'init' (at offset 0xc2e0) and 'try_name'
WARNING: vmlinux - Section mismatch: reference to .init.data:boot_flags from .text between 'obp_system_intr' (at offset 0x12dc4) and 'show_cpuinfo'
WARNING: vmlinux - Section mismatch: reference to .init.data:boot_flags from .text between 'obp_system_intr' (at offset 0x12dc8) and 'show_cpuinfo'
WARNING: vmlinux - Section mismatch: reference to .init.text:__alloc_bootmem from .text between 'srmmu_nocache_init' (at offset 0x193bc) and 'srmmu_mmu_info'
WARNING: vmlinux - Section mismatch: reference to .init.text:__alloc_bootmem from .text between 'srmmu_nocache_init' (at offset 0x193dc) and 'srmmu_mmu_info'
WARNING: vmlinux - Section mismatch: reference to .init.text:srmmu_early_allocate_ptable_skeleton from .text between 'srmmu_nocache_init' (at offset 0x1944c) and 'srmmu_mmu_info'
WARNING: vmlinux - Section mismatch: reference to .init.data:tvec_base_done.0 from .text between 'timer_cpu_notify' (at offset 0x35964) and 'msleep_interruptible'
WARNING: vmlinux - Section mismatch: reference to .init.data:tvec_base_done.0 from .text between 'timer_cpu_notify' (at offset 0x35970) and 'msleep_interruptible'
WARNING: vmlinux - Section mismatch: reference to .init.data:tvec_base_done.0 from .text between 'timer_cpu_notify' (at offset 0x359a4) and 'msleep_interruptible'
WARNING: vmlinux - Section mismatch: reference to .init.text:_sinittext from .text between 'core_kernel_text' (at offset 0x3d5c4) and '__kernel_text_address'
WARNING: vmlinux - Section mismatch: reference to .init.text:_sinittext from .text between 'core_kernel_text' (at offset 0x3d5c8) and '__kernel_text_address'
WARNING: vmlinux - Section mismatch: reference to .init.text:_einittext from .text between 'core_kernel_text' (at offset 0x3d5e0) and '__kernel_text_address'
WARNING: vmlinux - Section mismatch: reference to .init.text:_einittext from .text between 'core_kernel_text' (at offset 0x3d5e4) and '__kernel_text_address'
WARNING: vmlinux - Section mismatch: reference to .init.text:_sinittext from .text between 'kallsyms_lookup' (at offset 0x48cac) and '__print_symbol'
WARNING: vmlinux - Section mismatch: reference to .init.text:_sinittext from .text between 'kallsyms_lookup' (at offset 0x48cb0) and '__print_symbol'
WARNING: vmlinux - Section mismatch: reference to .init.text:_einittext from .text between 'kallsyms_lookup' (at offset 0x48cbc) and '__print_symbol'
WARNING: vmlinux - Section mismatch: reference to .init.text:_sinittext from .text between 'kallsyms_lookup' (at offset 0x48d64) and '__print_symbol'
WARNING: vmlinux - Section mismatch: reference to .init.text:_sinittext from .text between 'kallsyms_lookup' (at offset 0x48d68) and '__print_symbol'
WARNING: vmlinux - Section mismatch: reference to .init.text:_einittext from .text between 'kallsyms_lookup' (at offset 0x48d78) and '__print_symbol'
WARNING: vmlinux - Section mismatch: reference to .init.text:_einittext from .text between 'kallsyms_lookup' (at offset 0x48d7c) and '__print_symbol'
WARNING: vmlinux - Section mismatch: reference to .init.text:_einittext from .text between 'kallsyms_lookup' (at offset 0x48dbc) and '__print_symbol'
WARNING: vmlinux - Section mismatch: reference to .init.text:_sinittext from .text between 'kallsyms_lookup' (at offset 0x48de4) and '__print_symbol'
WARNING: vmlinux - Section mismatch: reference to .init.text:sunzilog_console_setup from .data between 'sunzilog_console' (at offset 0x7b4c) and 'devices_subsys'
WARNING: vmlinux - Section mismatch: reference to .init.text:apc_probe from .initcall.init between '__initcall_apc_probe' (at offset 0x4c) and '__initcall_pmc_probe'
WARNING: vmlinux - Section mismatch: reference to .init.text:pmc_probe from .initcall.init between '__initcall_pmc_probe' (at offset 0x50) and '__initcall_create_proc_profile'
WARNING: vmlinux - Section mismatch: reference to .init.text:create_proc_profile from .initcall.init between '__initcall_create_proc_profile' (at offset 0x54) and '__initcall_ioresources_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:ioresources_init from .initcall.init between '__initcall_ioresources_init' (at offset 0x58) and '__initcall_uid_cache_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:uid_cache_init from .initcall.init between '__initcall_uid_cache_init' (at offset 0x5c) and '__initcall_param_sysfs_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:param_sysfs_init from .initcall.init between '__initcall_param_sysfs_init' (at offset 0x60) and '__initcall_init_posix_timers'
WARNING: vmlinux - Section mismatch: reference to .init.text:init_posix_timers from .initcall.init between '__initcall_init_posix_timers' (at offset 0x64) and '__initcall_init_posix_cpu_timers'
WARNING: vmlinux - Section mismatch: reference to .init.text:init_posix_cpu_timers from .initcall.init between '__initcall_init_posix_cpu_timers' (at offset 0x68) and '__initcall_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:init from .initcall.init between '__initcall_init' (at offset 0x6c) and '__initcall_proc_dma_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:proc_dma_init from .initcall.init between '__initcall_proc_dma_init' (at offset 0x70) and '__initcall_kallsyms_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:kallsyms_init from .initcall.init between '__initcall_kallsyms_init' (at offset 0x74) and '__initcall_init_per_zone_pages_min'
WARNING: vmlinux - Section mismatch: reference to .init.text:helper_init from .initcall.init between '__initcall_helper_init' (at offset 0x0) and '__initcall_ksysfs_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:ksysfs_init from .initcall.init between '__initcall_ksysfs_init' (at offset 0x4) and '__initcall_filelock_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:init_per_zone_pages_min from .initcall.init between '__initcall_init_per_zone_pages_min' (at offset 0x78) and '__initcall_pdflush_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:pdflush_init from .initcall.init between '__initcall_pdflush_init' (at offset 0x7c) and '__initcall_kswapd_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:kswapd_init from .initcall.init between '__initcall_kswapd_init' (at offset 0x80) and '__initcall_init_emergency_pool'
WARNING: vmlinux - Section mismatch: reference to .init.text:init_emergency_pool from .initcall.init between '__initcall_init_emergency_pool' (at offset 0x84) and '__initcall_procswaps_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:procswaps_init from .initcall.init between '__initcall_procswaps_init' (at offset 0x88) and '__initcall_init_tmpfs'
WARNING: vmlinux - Section mismatch: reference to .init.text:init_tmpfs from .initcall.init between '__initcall_init_tmpfs' (at offset 0x8c) and '__initcall_fasync_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:init_bio from .initcall.init between '__initcall_init_bio' (at offset 0x20) and '__initcall_genhd_device_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:init_pipe_fs from .initcall.init between '__initcall_init_pipe_fs' (at offset 0x44) and '__initcall_chr_dev_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:fasync_init from .initcall.init between '__initcall_fasync_init' (at offset 0x90) and '__initcall_aio_setup'
WARNING: vmlinux - Section mismatch: reference to .init.text:aio_setup from .initcall.init between '__initcall_aio_setup' (at offset 0x94) and '__initcall_eventpoll_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:eventpoll_init from .initcall.init between '__initcall_eventpoll_init' (at offset 0x98) and '__initcall_init_devpts_fs'
WARNING: vmlinux - Section mismatch: reference to .init.text:init_devpts_fs from .initcall.init between '__initcall_init_devpts_fs' (at offset 0x9c) and '__initcall_init_ext3_fs'
WARNING: vmlinux - Section mismatch: reference to .init.text:init_ext3_fs from .initcall.init between '__initcall_init_ext3_fs' (at offset 0xa0) and '__initcall_journal_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:journal_init from .initcall.init between '__initcall_journal_init' (at offset 0xa4) and '__initcall_init_ramfs_fs'
WARNING: vmlinux - Section mismatch: reference to .init.text:init_ramfs_fs from .initcall.init between '__initcall_init_ramfs_fs' (at offset 0xa8) and '__initcall_ipc_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:filelock_init from .initcall.init between '__initcall_filelock_init' (at offset 0x8) and '__initcall_init_script_binfmt'
WARNING: vmlinux - Section mismatch: reference to .init.text:init_script_binfmt from .initcall.init between '__initcall_init_script_binfmt' (at offset 0xc) and '__initcall_init_elf_binfmt'
WARNING: vmlinux - Section mismatch: reference to .init.text:init_elf_binfmt from .initcall.init between '__initcall_init_elf_binfmt' (at offset 0x10) and '__initcall_sock_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:ipc_init from .initcall.init between '__initcall_ipc_init' (at offset 0xac) and '__initcall_init_crypto'
WARNING: vmlinux - Section mismatch: reference to .init.text:init_crypto from .initcall.init between '__initcall_init_crypto' (at offset 0xb0) and '__initcall_noop_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:genhd_device_init from .initcall.init between '__initcall_genhd_device_init' (at offset 0x24) and '__initcall_misc_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:noop_init from .initcall.init between '__initcall_noop_init' (at offset 0xb4) and '__initcall_deadline_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:deadline_init from .initcall.init between '__initcall_deadline_init' (at offset 0xb8) and '__initcall_rand_initialize'
WARNING: vmlinux - Section mismatch: reference to .init.text:chr_dev_init from .initcall.init between '__initcall_chr_dev_init' (at offset 0x48) and '__initcall_apc_probe'
WARNING: vmlinux - Section mismatch: reference to .init.text:seqgen_init from .initcall.init between '__initcall_seqgen_init' (at offset 0xf0) and '__initcall_net_random_reseed'
WARNING: vmlinux - Section mismatch: reference to .init.text:rand_initialize from .initcall.init between '__initcall_rand_initialize' (at offset 0xbc) and '__initcall_tty_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:tty_init from .initcall.init between '__initcall_tty_init' (at offset 0xc0) and '__initcall_pty_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:pty_init from .initcall.init between '__initcall_pty_init' (at offset 0xc4) and '__initcall_suncore_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:suncore_init from .initcall.init between '__initcall_suncore_init' (at offset 0xc8) and '__initcall_sunzilog_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:sunzilog_init from .initcall.init between '__initcall_sunzilog_init' (at offset 0xcc) and '__initcall_net_olddevs_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:net_olddevs_init from .initcall.init between '__initcall_net_olddevs_init' (at offset 0xd0) and '__initcall_init_this_scsi_driver'
WARNING: vmlinux - Section mismatch: reference to .init.text:init_this_scsi_driver from .initcall.init between '__initcall_init_this_scsi_driver' (at offset 0xd4) and '__initcall_init_sd'
WARNING: vmlinux - Section mismatch: reference to .init.text:init_sd from .initcall.init between '__initcall_init_sd' (at offset 0xd8) and '__initcall_flow_cache_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:tty_class_init from .initcall.init between '__initcall_tty_class_init' (at offset 0x1c) and '__initcall_init_bio'
WARNING: vmlinux - Section mismatch: reference to .init.text:misc_init from .initcall.init between '__initcall_misc_init' (at offset 0x28) and '__initcall_init_scsi'
WARNING: vmlinux - Section mismatch: reference to .init.text:init_scsi from .initcall.init between '__initcall_init_scsi' (at offset 0x2c) and '__initcall_sbus_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:sbus_init from .initcall.init between '__initcall_sbus_init' (at offset 0x30) and '__initcall_serio_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:serio_init from .initcall.init between '__initcall_serio_init' (at offset 0x34) and '__initcall_proto_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:sock_init from .initcall.init between '__initcall_sock_init' (at offset 0x14) and '__initcall_netlink_proto_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:netlink_proto_init from .initcall.init between '__initcall_netlink_proto_init' (at offset 0x18) and '__initcall_tty_class_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:proto_init from .initcall.init between '__initcall_proto_init' (at offset 0x38) and '__initcall_net_dev_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:net_dev_init from .initcall.init between '__initcall_net_dev_init' (at offset 0x3c) and '__initcall_genl_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:genl_init from .initcall.init between '__initcall_genl_init' (at offset 0x40) and '__initcall_init_pipe_fs'
WARNING: vmlinux - Section mismatch: reference to .init.text:flow_cache_init from .initcall.init between '__initcall_flow_cache_init' (at offset 0xdc) and '__initcall_inet_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:inet_init from .initcall.init between '__initcall_inet_init' (at offset 0xe0) and '__initcall_bictcp_register'
WARNING: vmlinux - Section mismatch: reference to .init.text:bictcp_register from .initcall.init between '__initcall_bictcp_register' (at offset 0xe4) and '__initcall_af_unix_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:af_unix_init from .initcall.init between '__initcall_af_unix_init' (at offset 0xe8) and '__initcall_packet_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:packet_init from .initcall.init between '__initcall_packet_init' (at offset 0xec) and '__initcall_seqgen_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:set_preferred_console from .con_initcall.init after '__initcall_set_preferred_console' (at offset 0x0)
WARNING: drivers/rtc/rtc-sysfs.o - Section mismatch: reference to .init.text:rtc_sysfs_add_device from .data between 'rtc_sysfs_interface' (at offset 0xc) and 'rtc_attr_group'
WARNING: drivers/scsi/qlogicpti.o - Section mismatch: reference to .init.text: from .text between 'qlogicpti_release' (at offset 0x408) and 'qlogicpti_info'
gcc -Wp,-MD,lib/.crc32.mod.o.d -nostdinc -isystem /usr/lib/gcc/sparc-linux/3.4.4/include -D__KERNEL__ -Iinclude -include include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -O2 -fomit-frame-pointer -fasynchronous-unwind-tables -m32 -pipe -mno-fpu -fcall-used-g5 -fcall-used-g7 -Wdeclaration-after-statement -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(crc32)" -D"KBUILD_MODNAME=KBUILD_STR(crc32)" -DMODULE -c -o lib/crc32.mod.o lib/crc32.mod.c
ld -m elf32_sparc -r -o lib/crc32.ko lib/crc32.o lib/crc32.mod.o
^[]0;opendev@palantir9: /home/opendev/dev/linux/2.6.17-rc3\aopendev@palantir9:~/dev/linux/2.6.17-rc3$ exit
Script done on Sat 06 May 2006 09:56:20 BST
^ permalink raw reply [flat|nested] 12+ messages in thread* Re: sparc: cannot load any modules with 2.6.17-rc3
2006-05-05 11:35 ` Martin Habets
` (2 preceding siblings ...)
(?)
@ 2006-05-08 6:12 ` David S. Miller
-1 siblings, 0 replies; 12+ messages in thread
From: David S. Miller @ 2006-05-08 6:12 UTC (permalink / raw)
To: sparclinux
From: Martin Habets <errandir_news@mph.eclipse.co.uk>
Date: Sat, 6 May 2006 10:12:54 +0100
> I thought you were too busy with Niagara?
Well... do you see anyone else picking up the ball and even trying to
work on sparc 32-bit bugs? :-/
> I've put crc32.ko and crc32.o at http://www.mph.eclipse.co.uk/pub/linux/
Do these actually fail to load? There are no R_SPARC_PC22 relocations
in the crc32.ko object. I also checked crc32.o, same story. Perhaps
another object has the problem, please provide it.
objdump --reloc crc32.ko
crc32.ko: file format elf32-sparc
RELOCATION RECORDS FOR [.text]:
OFFSET TYPE VALUE
00000044 R_SPARC_HI22 .rodata+0x00000400
00000050 R_SPARC_LO10 .rodata+0x00000400
00000194 R_SPARC_HI22 .rodata
0000019c R_SPARC_LO10 .rodata
RELOCATION RECORDS FOR [__ksymtab]:
OFFSET TYPE VALUE
00000000 R_SPARC_32 bitreverse
00000004 R_SPARC_32 __ksymtab_strings
00000008 R_SPARC_32 crc32_be
0000000c R_SPARC_32 __ksymtab_strings+0x00000010
00000010 R_SPARC_32 crc32_le
00000014 R_SPARC_32 __ksymtab_strings+0x00000020
RELOCATION RECORDS FOR [.eh_frame]:
OFFSET TYPE VALUE
00000018 R_SPARC_UA32 .text
00000028 R_SPARC_UA32 .text+0x0000017c
00000038 R_SPARC_UA32 .text+0x0000029c
^ permalink raw reply [flat|nested] 12+ messages in thread* Re: sparc: cannot load any modules with 2.6.17-rc3
2006-05-05 11:35 ` Martin Habets
` (3 preceding siblings ...)
(?)
@ 2006-05-09 21:27 ` Martin Habets
-1 siblings, 0 replies; 12+ messages in thread
From: Martin Habets @ 2006-05-09 21:27 UTC (permalink / raw)
To: sparclinux
On Sun, May 07, 2006 at 11:12:46PM -0700, David S. Miller wrote:
> From: Martin Habets <errandir_news@mph.eclipse.co.uk>
> Date: Sat, 6 May 2006 10:12:54 +0100
>
> > I thought you were too busy with Niagara?
>
> Well... do you see anyone else picking up the ball and even trying to
> work on sparc 32-bit bugs? :-/
Sadly, no. I can try to do some of the easier things, but fixing something like
the esp driver without the esp&dma datasheets is beyond me I'm afraid :).
> > I've put crc32.ko and crc32.o at http://www.mph.eclipse.co.uk/pub/linux/
>
> Do these actually fail to load? There are no R_SPARC_PC22 relocations
> in the crc32.ko object. I also checked crc32.o, same story. Perhaps
> another object has the problem, please provide it.
Yes, these actually fail to load. Maybe it's a memory corruption in module.c
somehow: if I make too many debugging changes in apply_relocate_add() the
problem disappears.
I'm trying different things now to make it show me the failing section and
symbol when it fails. I'll post again once I have more details.
Thanks for your help.
--
Martin
^ permalink raw reply [flat|nested] 12+ messages in thread* Re: sparc: cannot load any modules with 2.6.17-rc3
2006-05-05 11:35 ` Martin Habets
` (4 preceding siblings ...)
(?)
@ 2006-05-09 22:00 ` David S. Miller
-1 siblings, 0 replies; 12+ messages in thread
From: David S. Miller @ 2006-05-09 22:00 UTC (permalink / raw)
To: sparclinux
From: Martin Habets <errandir_news@mph.eclipse.co.uk>
Date: Tue, 9 May 2006 22:27:22 +0100
> Sadly, no. I can try to do some of the easier things, but fixing
> something like the esp driver without the esp&dma datasheets is
> beyond me I'm afraid :).
http://en.wikipedia.org/wiki/NCR_53C9x
The DMA programming manual is really not that necessary to
understand the chip.
> Yes, these actually fail to load. Maybe it's a memory corruption in module.c
> somehow: if I make too many debugging changes in apply_relocate_add() the
> problem disappears.
> I'm trying different things now to make it show me the failing section and
> symbol when it fails. I'll post again once I have more details.
Are you using Debian's gcc-4.1 compiler to build kernels?
That has already had problems reported with it wrt. miscompiling
the simplest kernel code such as the SUN disk label checksum
calculation in fs/partitions/sun.c and the similar code in
util-linux's fdisk.
^ permalink raw reply [flat|nested] 12+ messages in thread* Re: sparc: cannot load any modules with 2.6.17-rc3
2006-05-05 11:35 ` Martin Habets
` (5 preceding siblings ...)
(?)
@ 2006-05-10 7:15 ` Jurij Smakov
-1 siblings, 0 replies; 12+ messages in thread
From: Jurij Smakov @ 2006-05-10 7:15 UTC (permalink / raw)
To: sparclinux
On Tue, 9 May 2006, David S. Miller wrote:
> From: Martin Habets <errandir_news@mph.eclipse.co.uk>
> Date: Tue, 9 May 2006 22:27:22 +0100
>
>> Sadly, no. I can try to do some of the easier things, but fixing
>> something like the esp driver without the esp&dma datasheets is
>> beyond me I'm afraid :).
>
> http://en.wikipedia.org/wiki/NCR_53C9x
>
> The DMA programming manual is really not that necessary to
> understand the chip.
I've poked at this issue a little bit, without diving too deep. I've
looked at the changes of the esp.c in the git kernel tree. There is one
fairly recent change on 2006-02-22 [0], earlier changes are at least a
year old. The diff for that commit is the following:
--- a/drivers/scsi/esp.c
+++ b/drivers/scsi/esp.c
@@ -2068,14 +2068,12 @@ static int esp_reset(struct scsi_cmnd *S
{
struct esp *esp = (struct esp *) SCptr->device->host->hostdata;
+ spin_lock_irq(esp->ehost->host_lock);
(void) esp_do_resetbus(esp);
-
spin_unlock_irq(esp->ehost->host_lock);
wait_event(esp->reset_queue, (esp->resetting_bus = 0));
- spin_lock_irq(esp->ehost->host_lock);
-
return SUCCESS;
}
I have not nearly enough knowledge to tell whether that is correct, but
the fact that in the previous version the function is left with the lock
held and in the new one - without it, struck me as suspicious. I've tried
reverting this change and the 2.6.16 kernel started working much more
reliably for me, I haven't seen a DMA error with it yet. Unfortunately,
other people who tested it (including Martin) reported that reverting this
patch (or including it, if it was not present in the kernel) had little or
no effect. Dave, it would be great that if you could confirm that this
patch actually does what it's supposed to do, that would be a significant
indication that the problem is not in esp.c.
I've recently built 2.6.16 and 2.6.17-rc3 kernels with Debian's gcc
4.0.3-2, and they boot. Modules load fine. There is some kind of issue
with the network, loading sunlance on my SS20 does not work every time. I
haven't had a chance to investigate it in detail yet. Martin, you can
fetch the "most stable for me" 2.6.16 kernel from [1].
[0] http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h¦ceda7457b2303dcb07d3c472b25d52bbdb5a29
[1] http://www.wooyd.org/debian/kernels
Best regards,
Jurij Smakov jurij@wooyd.org
Key: http://www.wooyd.org/pgpkey/ KeyID: C99E03CC
^ permalink raw reply [flat|nested] 12+ messages in thread* Re: sparc: cannot load any modules with 2.6.17-rc3
2006-05-05 11:35 ` Martin Habets
` (6 preceding siblings ...)
(?)
@ 2006-05-10 8:24 ` BERTRAND Joël
-1 siblings, 0 replies; 12+ messages in thread
From: BERTRAND Joël @ 2006-05-10 8:24 UTC (permalink / raw)
To: sparclinux
Hello,
Jurij Smakov a écrit :
> On Tue, 9 May 2006, David S. Miller wrote:
>
>> From: Martin Habets <errandir_news@mph.eclipse.co.uk>
>> Date: Tue, 9 May 2006 22:27:22 +0100
>>
>>> Sadly, no. I can try to do some of the easier things, but fixing
>>> something like the esp driver without the esp&dma datasheets is
>>> beyond me I'm afraid :).
>>
>>
>> http://en.wikipedia.org/wiki/NCR_53C9x
>>
>> The DMA programming manual is really not that necessary to
>> understand the chip.
>
>
> I've poked at this issue a little bit, without diving too deep. I've
> looked at the changes of the esp.c in the git kernel tree. There is one
> fairly recent change on 2006-02-22 [0], earlier changes are at least a
> year old. The diff for that commit is the following:
>
> --- a/drivers/scsi/esp.c
> +++ b/drivers/scsi/esp.c
> @@ -2068,14 +2068,12 @@ static int esp_reset(struct scsi_cmnd *S
> {
> struct esp *esp = (struct esp *) SCptr->device->host->hostdata;
>
> + spin_lock_irq(esp->ehost->host_lock);
> (void) esp_do_resetbus(esp);
> -
> spin_unlock_irq(esp->ehost->host_lock);
>
> wait_event(esp->reset_queue, (esp->resetting_bus = 0));
>
> - spin_lock_irq(esp->ehost->host_lock);
> -
> return SUCCESS;
> }
>
> I have not nearly enough knowledge to tell whether that is correct, but
> the fact that in the previous version the function is left with the lock
> held and in the new one - without it, struck me as suspicious. I've
> tried reverting this change and the 2.6.16 kernel started working much
> more reliably for me, I haven't seen a DMA error with it yet.
I have built a regular 2.6.16.10 and I have verified that this patch
was applied. Kernel was built with debian gcc-4.0.3.
Configuration :
- dual SuperSPARC-II/75 (ony one is used) ;
- 448 MB
- 4 MB VSIMM
- two 36 GB SCA/SCSI disks (Raid1)
- internal CDROM
- floppy
> Unfortunately, other people who tested it (including Martin) reported
> that reverting this patch (or including it, if it was not present in the
> kernel) had little or no effect.
I have tested without any success.
> Dave, it would be great that if you
> could confirm that this patch actually does what it's supposed to do,
> that would be a significant indication that the problem is not in esp.c.
I'm not sure that the trouble come from esp.c but from the DMA
subsystem. I have played with another SS20 and a lot of configurations :
- HyperSPARC + 512 MB -> DMA error within boot process, unusable;
- HyperSPARC + 192 MB (no HIGHMEM) -> DMA error (quickly), unusable;
- HyperSPARC + 128 MB (banks 0 and 1, no HIGHMEM) -> usable, frequency
of DMA error is the same than with SuperSPARC-II.
I think that the bug is between the cache and the DMA subsystem. I
don't understand why I obtain the same DMA error on my U1 (EPSFAS) and
not on my U1E (EPSHME). If I have time, I shall test with a SS5
(MicroSPARC-II) to see if the trouble come from cache or from DMA.
> I've recently built 2.6.16 and 2.6.17-rc3 kernels with Debian's gcc
> 4.0.3-2, and they boot. Modules load fine. There is some kind of issue
> with the network, loading sunlance on my SS20 does not work every time.
I have never seen this trouble. Do you know if the SMP-support is
improved ? The last patch I have tested come from Bob Breuer and is
against 1.6.17-rc1...
Regards,
JKB
^ permalink raw reply [flat|nested] 12+ messages in thread* Re: sparc: cannot load any modules with 2.6.17-rc3
2006-05-05 11:35 ` Martin Habets
` (7 preceding siblings ...)
(?)
@ 2006-05-10 20:29 ` David S. Miller
-1 siblings, 0 replies; 12+ messages in thread
From: David S. Miller @ 2006-05-10 20:29 UTC (permalink / raw)
To: sparclinux
From: Jurij Smakov <jurij@wooyd.org>
Date: Wed, 10 May 2006 00:15:08 -0700 (PDT)
> --- a/drivers/scsi/esp.c
> +++ b/drivers/scsi/esp.c
> @@ -2068,14 +2068,12 @@ static int esp_reset(struct scsi_cmnd *S
> {
> struct esp *esp = (struct esp *) SCptr->device->host->hostdata;
>
> + spin_lock_irq(esp->ehost->host_lock);
> (void) esp_do_resetbus(esp);
> -
> spin_unlock_irq(esp->ehost->host_lock);
>
> wait_event(esp->reset_queue, (esp->resetting_bus = 0));
>
> - spin_lock_irq(esp->ehost->host_lock);
> -
> return SUCCESS;
> }
>
> I have not nearly enough knowledge to tell whether that is correct, but
> the fact that in the previous version the function is left with the lock
> held and in the new one - without it, struck me as suspicious.
I don't know where you got that weird patch from, the current function
looks like this:
static int esp_reset(struct scsi_cmnd *SCptr)
{
struct esp *esp = (struct esp *) SCptr->device->host->hostdata;
spin_lock_irq(esp->ehost->host_lock);
(void) esp_do_resetbus(esp);
spin_unlock_irq(esp->ehost->host_lock);
wait_event(esp->reset_queue, (esp->resetting_bus = 0));
return SUCCESS;
}
The caller from the EH subsystem in drivers/scsi/scsi_error.c does not
hold the host lock, so we need to acquire it around the critical
section, which in this case is esp_do_resetbus(), then we drop
the lock in order to wait on the reset queue which is a blocking
operation and thus cannot hold any spinlocks.
^ permalink raw reply [flat|nested] 12+ messages in thread* Re: sparc: cannot load any modules with 2.6.17-rc3
2006-05-05 11:35 ` Martin Habets
` (8 preceding siblings ...)
(?)
@ 2006-05-11 16:33 ` Martin Habets
-1 siblings, 0 replies; 12+ messages in thread
From: Martin Habets @ 2006-05-11 16:33 UTC (permalink / raw)
To: sparclinux
On Wed, May 10, 2006 at 12:15:08AM -0700, Jurij Smakov wrote:
> I've recently built 2.6.16 and 2.6.17-rc3 kernels with Debian's gcc
> 4.0.3-2, and they boot. Modules load fine. There is some kind of issue
> with the network, loading sunlance on my SS20 does not work every time. I
> haven't had a chance to investigate it in detail yet. Martin, you can
> fetch the "most stable for me" 2.6.16 kernel from [1].
...
> [1] http://www.wooyd.org/debian/kernels
Hi Jurij,
Testing another 2.6.16 is not that usefull at this point, as I have a
working 2.6.16-rc2. Your 2.6.17-rc2 is for sparc64.
I have a feeling of deja-vu, so excuse me if you've heard this before :).
Where is the source for these kernels? Most notably any additional
patches applied.
Cheers,
--
Martin
^ permalink raw reply [flat|nested] 12+ messages in thread