2004-01-29 17:07:40

by Justin Cormack

[permalink] [raw]
Subject: IDE/siimage oops in 2.4.25-pre7



I got the following oops on 2.4.25-pre7 using a Maxtor SATA drive on a
SiI3112 controller (siimage driver). The drive has bad sectors, hence
the DMA timeout. It doesnt oops every time the sector is read however.

Can just give:
hde: status timeout: status=0xd8 { Busy }

ide2: reset phy, status=0x00000113, siimage_reset
hde: drive not ready for command
ide2: reset: success
hde: sata_error = 0x00400000, watchdog = 1,
siimage_mmio_ide_dma_test_irq
hde: dma_intr: status=0xd0 { Busy }

ide2: reset phy, status=0x00000113, siimage_reset


Kernel config is attached (fairly standard SMP).

I havent worked out exactly what causes the oops, but with a SATA drive
there is really no point retrying in PIO anyway...


I havent tested this drive on libata, can do later.





hde: dma_timer_expiry: dma status == 0x21
hde: error waiting for DMA
hde: dma timeout retry: status=0x59 { DriveReady SeekComplete
DataRequest Error}hde: dma timeout retry: error=0x40 {
UncorrectableError }, LBAsect=18949412, se2end_request: I/O error, dev
21:00 (hde), sector 18949412
Unable to handle kernel NULL pointer dereference at virtual address
0000004c
printing eip:
c02113c5
*pde = 00000000
Oops: 0000
CPU: 0
EIP: 0010:[<c02113c5>] Not tainted
EFLAGS: 00010082
eax: f7e69b80 ebx: c03e93a8 ecx: 00000005 edx: 00000000
esi: c03e92f8 edi: 00000000 ebp: c03e92f8 esp: c033bee0
ds: 0018 es: 0018 ss: 0018
Process swapper (pid: 0, stackpage=c033b000)
Stack: c03e93a8 c02e9aa6 00000059 c03e93a8 f7e69b80 c02168f0 c0211599
c03e93a8
ffffffff 00000246 ffffffff 00000296 f7e69ba4 c0211450 00000000
00000000
c01268be f7e69b80 c033bf28 c033bf28 00000001 00000000 00000000
00000000
Call Trace: [<c02168f0>] [<c0211599>] [<c0211450>] [<c01268be>]
[<c01226b4>]
[<c0122557>] [<c0122319>] [<c0109279>] [<c01053d0>] [<c010bdb8>]
[<c01053d0>]
[<c01053f9>] [<c0105492>] [<c0105000>]

Code: 8b 4a 4c c7 42 18 00 00 00 00 8b 41 44 89 42 20 0f b7 41 08
<0>Kernel panic: Aiee, killing interrupt handler!
In interrupt handler - not syncing



>>EIP; c02113c5 <ide_dma_timeout_retry+65/f0> <=====

>>eax; f7e69b80 <_end+37a66c7c/3849515c>
>>ebx; c03e93a8 <ide_hwifs+988/2c38>
>>esi; c03e92f8 <ide_hwifs+8d8/2c38>
>>ebp; c03e92f8 <ide_hwifs+8d8/2c38>
>>esp; c033bee0 <init_task_union+1ee0/2000>

Trace; c02168f0 <ide_dma_intr+0/c0>
Trace; c0211599 <ide_timer_expiry+149/200>
Trace; c0211450 <ide_timer_expiry+0/200>
Trace; c01268be <run_timer_list+12e/1b7>
Trace; c01226b4 <bh_action+54/80>
Trace; c0122557 <tasklet_hi_action+67/a0>
Trace; c0122319 <do_softirq+d9/e0>
Trace; c0109279 <do_IRQ+e9/f0>
Trace; c01053d0 <default_idle+0/50>
Trace; c010bdb8 <call_do_IRQ+5/d>
Trace; c01053d0 <default_idle+0/50>
Trace; c01053f9 <default_idle+29/50>
Trace; c0105492 <cpu_idle+52/70>
Trace; c0105000 <_stext+0/0>

Code; c02113c5 <ide_dma_timeout_retry+65/f0>
00000000 <_EIP>:
Code; c02113c5 <ide_dma_timeout_retry+65/f0> <=====
0: 8b 4a 4c mov 0x4c(%edx),%ecx <=====
Code; c02113c8 <ide_dma_timeout_retry+68/f0>
3: c7 42 18 00 00 00 00 movl $0x0,0x18(%edx)
Code; c02113cf <ide_dma_timeout_retry+6f/f0>
a: 8b 41 44 mov 0x44(%ecx),%eax
Code; c02113d2 <ide_dma_timeout_retry+72/f0>
d: 89 42 20 mov %eax,0x20(%edx)
Code; c02113d5 <ide_dma_timeout_retry+75/f0>
10: 0f b7 41 08 movzwl 0x8(%ecx),%eax

<0>Kernel panic: Aiee, killing interrupt handler!

40 warnings issued. Results may not be reliable.


Attachments:
config (16.39 kB)