Not a Linux kernel person but really want to identify and fix this oops.
Have a old PC now used as firewall/print server/wireless VPN server,
that works fine on Linux 2.4.19 but dies on the new ide stuff that
came out after 2.4.19 (e.g. 2.4.22).
Some progress here but don't know who I talk to next. Is it a sis5513
problem or a ide-iops problem ?. I edited drivers/ide/ide-iops.c but
this may be because drivers/ide/pci/sis5513.c isn't setting up the
hwif structures right for the CDROM on the sis5513.
Its in the setup for the CDROM that fails. Its not a faulty CDROM drive
as this is all replaced and works OK in Mandrake 9.0 (i.e OLDER kernels).
Within sis5513.c the config_chipset_for_pio() calls ide_config_drive_speed() and passes drive of hdc (I now this works as I added some printk's of drive->name to get the name) and speed of 12 (Actual pio value is 4).
Then where the oops occurs is exactly at the line in the ide_iops.c line 911,
hwif->ide_dma_host_off(drive);
If I work around this line with a kludge edit like....
if (speed >= XFER_DMA_0 ) { hwif->ide_dma_host_off(drive); }
then the problem then oops at around line 978-981 at the
hwif->ide_dma_off_quietly(drive) i.e. ....
else
{
hwif->ide_dma_off_quietly(drive);
}
If I comment out ALL those lines then the oops stops. I created a
new bzImage with my changes and with isofs and joliet file system
as built-in and copied this bzImage to vmlinuz on a floppy (which
was made from the cdrom.img) replacing the original vmlinuz and
I was able to then get into 2nd stage install and into the normal
graphical install display OK.
Thus the chipset is a SIS5513. Its old and uses PIO modes and
NO DMA for the CDROM (hdc (or hdd on some printouts).
According to the normal dmeg (kernel2.4.19-16mdk),
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
SIS5513: IDE controller on PCI bus 00 dev 09
SIS5513: chipset revision 9
SIS5513: not 100% native mode: will probe irqs later
SiS5513
SIS5513: simplex device: DMA disabled
ide0: SIS5513 Bus-Master DMA disabled (BIOS)
SIS5513: simplex device: DMA disabled
ide1: SIS5513 Bus-Master DMA disabled (BIOS)
hda: WDC AC26400B, ATA DISK drive
hdc: ATAPI CD-ROM MAX 52X, ATAPI CD/DVD-ROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
Kernel 2.4.22 (and above) has lots of changes to ide and something
is wrong here. What I did to line 911 is probably a valid kludge but
commenting out lines 97-981 may have other side effects.
BTW: I created my linux-2.4.22-10mdkBOOT source from linux2.4.22
plus added the boot config from the RPMS.
Oops is as follows on the Mandrake created linux-2.4.22-10mdkBOOT kernel.
Unable to handle kernel NULL pointer dereference at virtual address 00000000
printing eip:
00000000
*pde = 00000000
Oops: 0000
CPU: 0
EIP: 0010:[<00000000>] Not tainted
EFLAGS: 00010286
eax: 0000000c ebx: c013c840 ecx: 80000944 edx: 00000004
esi: c013c840 edi: c013c654 ebp: 0000000f esp: c113bf28
ds: 0018 es: 0018 ss: 0018
Process swapper (pid: 1, stackpage=c113b000)
Stack: c01ee618 c013c840 00b400f0 00000001 0c102170 00000004 c013c840 00000001
0000000f c01ecc8d c013c840 0000000c 0413c654 c013c840 c013c654 c01fbddf
c013c840 000000ff 00000246 00000001 c013c654 c0248000 0004e000 c01fc6bb
Call Trace: [] [] [] [] []
[] []
Code: Bad EIP value.
<0>Kernel panic: Attmpting to kill init!
going on the same cart
I get the same oops, or at least one that looks simmilar, in 2.4.27. To work it around i connect hdd+odd to the primary channel and leave the secondary unused. It also works to connect both devices to the secondary port but then one needs to turn the primary one off in the BIOS setup. I am currently investigating it. Let's see what I can do.
#steelman#
Same here
SIS5513: IDE controller at PCI slot 00:01.1
SIS5513: chipset revision 9
SIS5513: not 100% native mode: will probe irqs later
SIS5513: SiS551x ATA 16 controller
ide0: BM-DMA at 0x4000-0x4007, BIOS settings: hda:pio, hdb:pio
SIS5513: simplex device: DMA disabled
ide1: SIS5513 Bus-Master DMA disabled (BIOS)
hda: WDC AC2850F, ATA DISK drive
hdc: ST3491A-XR, ATA DISK drive
Unable to handle kernel NULL pointer dereference at virtual address 00000000
printing eip:
00000000
*pde = 00000000
Oops: 0000
CPU: 0
EIP: 0010:[<00000000>] Not tainted
EFLAGS: 00010282
eax: 0000000b ebx: 00000003 ecx: 80000944 edx: 00000003
esi: 00000003 edi: c03ad6f4 ebp: c03ad7a4 esp: c1051f38
ds: 0018 es: 0018 ss: 0018
Process swapper (pid: 1, stackpage=c1051000)
Stack: c01ffde8 c03ad7a4 00b400f0 00000001 0b3ad8e0 00000003 00000003 c03ad7a4
0004e000 c01fc6e0 c03ad7a4 0000000b c03ad7a4 00000001 c03ad6f4 c02099f8
c03ad7a4 000000ff c03ad6f4 c03af994 00000001 c020a606 c03ad6f4 00000001
Call Trace: [] [] [] [] []
[] [] [] []
Code: Bad EIP value.
<0>Kernel panic: Attempted to kill init!