Skip to contentSkip to conversation

2.5.39 Oops on boot (device_attach+0x3a)

DISCUSSION Steven Cole 3 participants 8 messages Oct 1, 2002 Pnp support

lore
Share & tools
lore
#0 lore raw

I tried to boot 2.5.39 on my home machine and got the following oops on boot with CONFIG_KALLSYMS=y (thanks Ingo!).

*pde = 00000000

Oops: 0002

CPU: 0
EIP: 0060:[<c01a7979>] Not tainted
EFLAGS: 00010286
EIP is at attach+0x1d/0x30
eax: c0276724 ebx: 00000000 ecx: c40c8060 edx: c40c8078
esi: c0276700 edi: 00000000 ebp: 00000000 esp: c40ddf94
ds: 0068 es: 0068 ss: 0068
Process swapper (pid: 1, threadinfo=c40dc000 task=c40da040)

Stack: 00000000 c01a7a5a c40c8060 c40c8060 c01a7c20 c40c8060 c40c8060 c40c8060
       c40d7720 c028b879 c40c8060 00000001 c02b9bf4 00000000 00000000 00000000
       c027e6f2 c0105030 c010504c c0105030 00000000 00000000 00000000 c0105495
Call Trace:
[<c01a7a5a>] device_attach+0x3a/0x40
[<c01a7c20>] device_register+0xd0/0x120
[<c0105030>] init+0x0/0x160
[<c010504c>] init+0x1c/0x160
[<c0105030>] init+0x0/0x160
[<c0105495>] kernel_thread_helper+0x5/0x10

Code: 89 13 89 4c 24 08 5b e9 37 0d 00 00 8d b4 26 00 00 00 00 57
Spurious 8959A interrupt: IRQ7
Kernel panic: Attempted to kill init!

The "Spurious 8959A interrupt" message occurred only once among several boot attempts with slightly differently configured kernels (taking more and more stuff out like sound and usb). The traceback was the same each time however.

The box is a Gateway P450 single PIII with Jabil motherboard. I have a Promise Ultra/66 disk controller installed. Support for the 20262 was compiled into 2.5.39 with CONFIG_BLK_DEV_PDC202XX_OLD=y and CONFIG_BLK_DEV_PDC202XX=y. Support for the PIIX4 was provided with CONFIG_BLK_DEV_PIIX=y.
I tried booting with the onboard IDE and then the PDC20262 with the same oops above. Either of those work with 2.4.x kernels.

Here is a snippet from dmesg from a normal 2.4.18 boot:

fb0: VESA VGA frame buffer device
pty: 256 Unix98 ptys configured
Serial driver version 5.05c (2001-07-08) with HUB-6 MANY_PORTS MULTIPORT SHARE_IRQ SERIAL_PCI ISAPNP enabled ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at port 0x02f8 (irq = 10) is a 16550A
block: 128 slots per queue, batch=32
RAMDISK driver initialized: 16 RAM disks of 32000K size 1024 blocksize
Uniform Multi-Platform E-IDE driver Revision: 6.31
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
PIIX4: IDE controller on PCI bus 00 dev 39
PIIX4: chipset revision 1
PIIX4: not 100% native mode: will probe irqs later

    ide1: BM-DMA at 0x1428-0x142f, BIOS settings: hdc:DMA, hdd:pio

PDC20262: IDE controller on PCI bus 00 dev 78
PCI: Found IRQ 5 for device 00:0f.0
PDC20262: chipset revision 1
PDC20262: not 100% native mode: will probe irqs later
PDC20262: (U)DMA Burst Bit ENABLED Primary PCI Mode Secondary PCI Mode.

    ide0: BM-DMA at 0x10c0-0x10c7, BIOS settings: hda:DMA, hdb:DMA
    ide2: BM-DMA at 0x10c8-0x10cf, BIOS settings: hde:DMA, hdf:pio

hda: ST330620A, ATA DISK drive
hdc: MATSHITADVD-ROM SR-8584A, ATAPI CD/DVD-ROM drive
ide0 at 0x1440-0x1447,0x1436 on irq 5
ide1 at 0x170-0x177,0x376 on irq 15
hda: 58633344 sectors (30020 MB) w/2048KiB Cache, CHS=58168/16/63, UDMA(66)
hdc: ATAPI 32X DVD-ROM drive, 512kB Cache, UDMA(33)
Uniform CD-ROM driver Revision: 3.12

Steven

#1 lore raw
Quoted 14 lines · Steven Cole

I tried to boot 2.5.39 on my home machine and got the following oops on boot with CONFIG_KALLSYMS=y (thanks Ingo!).

*pde = 00000000

Oops: 0002

CPU: 0
EIP: 0060:[<c01a7979>] Not tainted
EFLAGS: 00010286
EIP is at attach+0x1d/0x30
eax: c0276724 ebx: 00000000 ecx: c40c8060 edx: c40c8078
esi: c0276700 edi: 00000000 ebp: 00000000 esp: c40ddf94
ds: 0068 es: 0068 ss: 0068
Process swapper (pid: 1, threadinfo=c40dc000 task=c40da040)

Quoted 11 lines
Stack: 00000000 c01a7a5a c40c8060 c40c8060 c01a7c20 c40c8060 c40c8060 c40c8060
       c40d7720 c028b879 c40c8060 00000001 c02b9bf4 00000000 00000000 00000000
       c027e6f2 c0105030 c010504c c0105030 00000000 00000000 00000000 c0105495
Call Trace:
[<c01a7a5a>] device_attach+0x3a/0x40
[<c01a7c20>] device_register+0xd0/0x120
[<c0105030>] init+0x0/0x160
[<c010504c>] init+0x1c/0x160
[<c0105030>] init+0x0/0x160
[<c0105495>] kernel_thread_helper+0x5/0x10

I believe the oops on boot people have been seeing in 2.5.39 may be related to problems inserting ide-scsi modules (sr_mod, mod_scsi, ide-scsi). Since I have to get up early tomorrow I'm going to beg off for tonight, but I can reliably produce the above oops. I'll provide full data and explanations when I'm not so tired.

#2 lore raw
Quoted 28 lines · Thomas Molina
Quoted 14 lines · Steven Cole

I tried to boot 2.5.39 on my home machine and got the following oops on boot with CONFIG_KALLSYMS=y (thanks Ingo!).

*pde = 00000000

Oops: 0002

CPU: 0
EIP: 0060:[<c01a7979>] Not tainted
EFLAGS: 00010286
EIP is at attach+0x1d/0x30
eax: c0276724 ebx: 00000000 ecx: c40c8060 edx: c40c8078
esi: c0276700 edi: 00000000 ebp: 00000000 esp: c40ddf94
ds: 0068 es: 0068 ss: 0068
Process swapper (pid: 1, threadinfo=c40dc000 task=c40da040)

Quoted 11 lines
Stack: 00000000 c01a7a5a c40c8060 c40c8060 c01a7c20 c40c8060 c40c8060 c40c8060
       c40d7720 c028b879 c40c8060 00000001 c02b9bf4 00000000 00000000 00000000
       c027e6f2 c0105030 c010504c c0105030 00000000 00000000 00000000 c0105495
Call Trace:
[<c01a7a5a>] device_attach+0x3a/0x40
[<c01a7c20>] device_register+0xd0/0x120
[<c0105030>] init+0x0/0x160
[<c010504c>] init+0x1c/0x160
[<c0105030>] init+0x0/0x160
[<c0105495>] kernel_thread_helper+0x5/0x10
Quoted 6 lines

I believe the oops on boot people have been seeing in 2.5.39 may be related to problems inserting ide-scsi modules (sr_mod, mod_scsi, ide-scsi). Since I have to get up early tomorrow I'm going to beg off for tonight, but I can reliably produce the above oops. I'll provide full data and explanations when I'm not so tired.

It's good that the above oops can be reproduced, so here is some more info on my setup:

[steven@localhost linux-2.5.39-linus]$ grep "=m" .config CONFIG_PARPORT=m
CONFIG_PARPORT_PC=m
CONFIG_PARPORT_PC_CML1=m
CONFIG_PRINTER=m
CONFIG_AUTOFS_FS=m
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
CONFIG_NLS_ISO8859_1=m

[steven@localhost linux-2.5.39-linus]$ grep SCSI .config
# SCSI device support
# CONFIG_SCSI is not set
# Old non-SCSI/ATAPI CD-ROM drives
# CONFIG_CD_NO_IDESCSI is not set
[steven@localhost linux-2.5.39-linus]$ find . -name Makefile | xargs grep sr_mod
./drivers/scsi/Makefile:obj-$(CONFIG_BLK_DEV_SR) += sr_mod.o
./drivers/scsi/Makefile:sr_mod-objs := sr.o sr_ioctl.o sr_vendor.o
[steven@localhost linux-2.5.39-linus]$ grep BLK_DEV_SR .config [steven@localhost linux-2.5.39-linus]$

So, I'm not sure that a scsi-related module is the cause here.

Cheers,
Steven

#3 lore raw
Quoted 20 lines · Steven Cole
Quoted 6 lines

I believe the oops on boot people have been seeing in 2.5.39 may be related to problems inserting ide-scsi modules (sr_mod, mod_scsi, ide-scsi). Since I have to get up early tomorrow I'm going to beg off for tonight, but I can reliably produce the above oops. I'll provide full data and explanations when I'm not so tired.

It's good that the above oops can be reproduced, so here is some more info on my setup:

[steven@localhost linux-2.5.39-linus]$ grep "=m" .config CONFIG_PARPORT=m
CONFIG_PARPORT_PC=m
CONFIG_PARPORT_PC_CML1=m
CONFIG_PRINTER=m
CONFIG_AUTOFS_FS=m
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
CONFIG_NLS_ISO8859_1=m

Quoted 10 lines

[steven@localhost linux-2.5.39-linus]$ grep SCSI .config
# SCSI device support
# CONFIG_SCSI is not set
# Old non-SCSI/ATAPI CD-ROM drives
# CONFIG_CD_NO_IDESCSI is not set
[steven@localhost linux-2.5.39-linus]$ find . -name Makefile | xargs grep sr_mod
./drivers/scsi/Makefile:obj-$(CONFIG_BLK_DEV_SR) += sr_mod.o
./drivers/scsi/Makefile:sr_mod-objs := sr.o sr_ioctl.o sr_vendor.o
[steven@localhost linux-2.5.39-linus]$ grep BLK_DEV_SR .config [steven@localhost linux-2.5.39-linus]$

That would seem to indicate problems within the module load/unload routines rather than specifically ide-scsi. I could beleive that, although the only modules I could produce the oops with were sr_mod and ide-scsi. I need more testing so I can produce a coherent report to lkml.

#4 lore raw
In reply to Steven Cole
Quoted 2 lines · Steven Cole

I tried to boot 2.5.39 on my home machine and got the following oops on boot with CONFIG_KALLSYMS=y (thanks Ingo!).

Do you have CONFIG_ISAPNP enabled? If so, search the archives for the fix for this. If not, please post your whole .config.

thanks,

greg k-h

#5 lore raw
Quoted 6 lines · Greg KH
Quoted 2 lines · Steven Cole

I tried to boot 2.5.39 on my home machine and got the following oops on boot with CONFIG_KALLSYMS=y (thanks Ingo!).

Do you have CONFIG_ISAPNP enabled? If so, search the archives for the fix for this. If not, please post your whole .config.

Just building the module shouldn't cause the oops though, should it? I can get the same oops, but it is on loading sr_mod, not isapnp. I have built isapnp.o but it never loads.

#6 lore raw
In reply to Greg KH
Quoted 6 lines · Greg KH
Quoted 2 lines · Steven Cole

I tried to boot 2.5.39 on my home machine and got the following oops on boot with CONFIG_KALLSYMS=y (thanks Ingo!).

Do you have CONFIG_ISAPNP enabled? If so, search the archives for the fix for this. If not, please post your whole .config.

Although I don't have that test box in front of me now, I'm almost certain that I do have CONFIG_ISAPNP enabled. Searching the archives turned up a fix similar to the one below which is part of 2.5.40, (which I haven't been able to download yet). I won't be able to test this until tonight, but perhaps Thomas can see if this fixes the same oops for him in the meantime.

Thanks,
Steven

drivers/pnp/isapnp.c +3 -1
@@ -2281,7 +2281,9 @@
 EXPORT_SYMBOL(isapnp_register_driver);
 EXPORT_SYMBOL(isapnp_unregister_driver);
 
-static struct device_driver isapnp_device_driver = {};
+static struct device_driver isapnp_device_driver = {
+	.devices = LIST_HEAD_INIT(isapnp_device_driver.devices),
+};

static inline int isapnp_init_device_tree(void)
{

#7 lore raw
In reply to Greg KH
Quoted 11 lines · Greg KH
Quoted 2 lines · Steven Cole

I tried to boot 2.5.39 on my home machine and got the following oops on boot with CONFIG_KALLSYMS=y (thanks Ingo!).

Do you have CONFIG_ISAPNP enabled? If so, search the archives for the fix for this. If not, please post your whole .config.

thanks,

greg k-h

Yes, I have CONFIG_ISAPNP=y. Searching the archive,
I found a fix for "2.5.39 isapnp causes drivers/base/core.c:attach() oops"
here: http://marc.theaimsgroup.com/?l=linux-kernel&m=103331915631837&w=2
but looking at the 2.5.40 tree at linus.bkbits.net, I see that a slightly different fix went into 2.5.40. I applied the patch for v1.14 of isapnp.c, and here is the diff for that file:

drivers/pnp/isapnp.c renamed from drivers/pnp/isapnp.c.orig +3 -1
@@ -2281,7 +2281,9 @@
 EXPORT_SYMBOL(isapnp_register_driver);
 EXPORT_SYMBOL(isapnp_unregister_driver);
 
-static struct device_driver isapnp_device_driver = {};
+static struct device_driver isapnp_device_driver = {
+	.devices = LIST_HEAD_INIT(isapnp_device_driver.devices),
+};
 
 static inline int isapnp_init_device_tree(void)
 {

I recompiled, and got a new and different oops on boot. Since I had to write this down, I just saved what I thought was the most pertinent.

EIP is at ide_iomio_dma+0xa4/0x110

Call Trace:
ide_setup_dma+0x16/0x2a0
ide_hwif_setup_dma+0xc6/0x100
do_ide_setup_pci_device+0x18/0x60
ide_setup_pci_device+0x18/0x60
init+0x0/0x160
init+0x1c/0x160
init+0x0/0x160

kernel_thread_helper_0x5/0x10

For what it's worth, here is my .config info:

[steven@localhost linux-2.5.39-linus]$ grep ^CONFIG_ .config CONFIG_X86=y
CONFIG_ISA=y
CONFIG_UID16=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_EXPERIMENTAL=y
CONFIG_NET=y
CONFIG_SYSVIPC=y
CONFIG_SYSCTL=y
CONFIG_MODULES=y
CONFIG_KMOD=y
CONFIG_MPENTIUMIII=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_CMPXCHG=y
CONFIG_X86_XADD=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_X86_L1_CACHE_SHIFT=5
CONFIG_X86_TSC=y
CONFIG_X86_GOOD_APIC=y CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_NOHIGHMEM=y
CONFIG_PCI=y
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_NAMES=y
CONFIG_KCORE_ELF=y
CONFIG_BINFMT_AOUT=y
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_MISC=y
CONFIG_PARPORT=m
CONFIG_PARPORT_PC=m
CONFIG_PARPORT_PC_CML1=m
CONFIG_PARPORT_PC_FIFO=y
CONFIG_PNP=y
CONFIG_ISAPNP=y
CONFIG_BLK_DEV_FD=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_IDE=y
CONFIG_BLK_DEV_IDE=y
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_BLK_DEV_IDECD=y
CONFIG_BLK_DEV_IDEFLOPPY=y
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_SHARE_IRQ=y CONFIG_BLK_DEV_IDEDMA_PCI=y CONFIG_BLK_DEV_OFFBOARD=y
CONFIG_IDEDMA_PCI_AUTO=y
CONFIG_BLK_DEV_IDEDMA=y
CONFIG_BLK_DEV_ADMA=y
CONFIG_BLK_DEV_PIIX=y CONFIG_BLK_DEV_PDC202XX_OLD=y CONFIG_PDC202XX_BURST=y
CONFIG_IDEDMA_AUTO=y
CONFIG_BLK_DEV_PDC202XX=y CONFIG_BLK_DEV_IDE_MODES=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_SYN_COOKIES=y
CONFIG_IPV6_SCTP__=y
CONFIG_INPUT=y
CONFIG_INPUT_MOUSEDEV=y CONFIG_INPUT_MOUSEDEV_PSAUX=y CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 CONFIG_SOUND_GAMEPORT=y
CONFIG_SERIO=y
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
CONFIG_INPUT_MISC=y
CONFIG_INPUT_PCSPKR=y
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX98_PTY_COUNT=256
CONFIG_PRINTER=m
CONFIG_DRM=y
CONFIG_QUOTA=y
CONFIG_QUOTACTL=y
CONFIG_AUTOFS_FS=m
CONFIG_AUTOFS4_FS=y
CONFIG_REISERFS_FS=y
CONFIG_EXT3_FS=y
CONFIG_JBD=y
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
CONFIG_RAMFS=y
CONFIG_ISO9660_FS=y
CONFIG_PROC_FS=y
CONFIG_DEVFS_FS=y
CONFIG_DEVPTS_FS=y
CONFIG_EXT2_FS=y
CONFIG_MSDOS_PARTITION=y
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1" CONFIG_NLS_CODEPAGE_850=y
CONFIG_NLS_ISO8859_1=m
CONFIG_VGA_CONSOLE=y
CONFIG_VIDEO_SELECT=y
CONFIG_FB=y
CONFIG_DUMMY_CONSOLE=y
CONFIG_VIDEO_SELECT=y
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
CONFIG_DEBUG_KERNEL=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_KALLSYMS=y
CONFIG_SECURITY_CAPABILITIES=y CONFIG_X86_BIOS_REBOOT=y
[steven@localhost linux-2.5.39-linus]$

I haven't been able to get a patch-2.5.40.gz yet, so if this is fixed in the full 2.5.40 release, my apologies for all this noise.

Steven