2002-10-01 01:12:24

by Steven Cole

[permalink] [raw]
Subject: 2.5.39 Oops on boot (device_attach+0x3a)

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



2002-10-01 02:45:29

by Thomas Molina

[permalink] [raw]
Subject: Re: 2.5.39 Oops on boot (device_attach+0x3a)

On 30 Sep 2002, Steven Cole wrote:

> 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
>

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.

2002-10-01 05:36:53

by Greg KH

[permalink] [raw]
Subject: Re: 2.5.39 Oops on boot (device_attach+0x3a)

On Mon, Sep 30, 2002 at 07:13:02PM -0600, Steven Cole wrote:
> 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

2002-10-01 08:04:57

by Thomas Molina

[permalink] [raw]
Subject: Re: 2.5.39 Oops on boot (device_attach+0x3a)

On 30 Sep 2002, Steven Cole wrote:

> > 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:
>
> [[email protected] 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
>
> [[email protected] 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
> [[email protected] 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
> [[email protected] linux-2.5.39-linus]$ grep BLK_DEV_SR .config
> [[email protected] 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.

2002-10-01 08:10:05

by Thomas Molina

[permalink] [raw]
Subject: Re: 2.5.39 Oops on boot (device_attach+0x3a)

On Mon, 30 Sep 2002, Greg KH wrote:

> On Mon, Sep 30, 2002 at 07:13:02PM -0600, Steven Cole wrote:
> > 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.

2002-10-01 14:22:56

by Steven Cole

[permalink] [raw]
Subject: Re: 2.5.39 Oops on boot (device_attach+0x3a)

On Mon, 2002-09-30 at 23:39, Greg KH wrote:
> On Mon, Sep 30, 2002 at 07:13:02PM -0600, Steven Cole wrote:
> > 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

--- 1.13/drivers/pnp/isapnp.c Fri Sep 27 04:10:46 2002
+++ 1.14/drivers/pnp/isapnp.c Sun Sep 29 18:19:31 2002
@@ -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)
{



2002-10-01 17:10:21

by Steven Cole

[permalink] [raw]
Subject: Re: 2.5.39 Oops on boot (device_attach+0x3a)

On Mon, 2002-09-30 at 23:39, Greg KH wrote:
> On Mon, Sep 30, 2002 at 07:13:02PM -0600, Steven Cole wrote:
> > 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:

--- linux-2.5.39-linus/drivers/pnp/isapnp.c.orig Tue Oct 1 10:07:48 2002
+++ linux-2.5.39-linus/drivers/pnp/isapnp.c Tue Oct 1 10:08:43 2002
@@ -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:

[[email protected] 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
[[email protected] 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