2.0.32: GPF with aha152x

Dave Wreski (dave@nic.com)
Thu, 11 Dec 1997 00:31:47 -0500 (EST)


Hi all. I just put an old aha152x in my machine, to use in conjunction with
my aic7xxx. I had the controller at 0x140,11 and since changed it, and
didn't update /etc/conf.modules. It therefore tried to load it at the
incorrect address, and produced the oops..

There were two that I found:

general protection: 0000
CPU: 0
EIP: 0010:[<04863bea>]
EFLAGS: 00010086
eax: 5f5e5c00 ebx: 0316e098 ecx: 004ef018 edx: f000ef6f
esi: 00000246 edi: 00052b65 ebp: 004ef018 esp: 02eb2cbc
ds: 0018 es: 0018 fs: 002b gs: 002b ss: 0018
Process insmod (pid: 550, process nr: 54, stackpage=02eb2000)
Stack: 0316e098 00000246 5f5e5bff 0017cdd3 004ef018 0017cedc 0316ef18 02eb2d84
02eb2d84 02eb2df4 000000c8 00000200 00000000 014aac00 00000212 0316e018
02eb2e6c 0017bb7d 004ef018 02eb2d84 02eb2df4 00000100 0017b6b0 00000258
Call Trace: [scsi_do_cmd+867/944] [scsi_done+0/1672]
[scan_scsis_single+277/1812] [scan_scsis_done+0/36] [kmalloc+311/516] [<04
868e7c>] [con_write+72/4908]
[scan_scsis+661/880] [<04868e7c>] [_getitimer+84/192]
[it_real_fn+0/72] [it_real_fn+64/72] [vsprintf+1003/1060] [vsprint
f+1003/1060] [scrup+349/496]
[lf+43/96] [console_print+360/380] [printk+289/304] [<04868e7c>]
[scsi_register_host+255/432] [<04868e7c>] [scsi_registe
r_module+42/120] [<04868e7c>]
[<048679aa>] [<04868e7c>] [sys_init_module+976/1028]
[do_no_page+444/808]
[do_no_page+391/808] [<04867994>] [<048679d0>] [do_page_fault+284/784]
[do_page_fault+0/784] [error_code+64/72] [system_call+85/124]
Code: 83 ba ec 00 00 00 00 75 f1 89 8a ec 00 00 00 83 7b 54 00 75
scsi : aborting command due to timeout : pid 338776, scsi5, channel 0, id 0,
lun
0 Test Unit Ready 00 00 00 00 00
aha152x: abort(), SCpnt=0x004ef018, QUEUE STATUS:
issue_SC:
0x00000068: target=83; lun=255; cmnd=(RESERVED(0x6f) ef 00 f0 6f ef 00 f0 6f
ef 00 f0
); residual=-268374161; buffers=-268374161; phase |not issued|in
selection|disconnected|aborted|; in other(DATA OUT); next=0xf0
00ef6f

Using `/boot/System.map' to map addresses to symbols.

Code: cmpl $0x0,0xec(%edx)
Code: jne fffffffa <_EIP+fffffffa>
Code: movl %ecx,0xec(%edx)
Code: cmpl $0x0,0x54(%ebx)
Code: jne 00000015 <_EIP+15>
Code: nop
Code: nop
Code: nop

Number two:

general protection: 0000
CPU: 0
EIP: 0010:[<048663c9>]
EFLAGS: 00010086
eax: 00000012 ebx: f000ef6f ecx: 001a582c edx: 016f1414
esi: 0316e098 edi: 00000006 ebp: 0316e098 esp: 001a3928
ds: 0018 es: 0018 fs: 002b gs: 0018 ss: 0018
Process swapper (pid: 0, process nr: 0, stackpage=001a1a80)
Stack: f000ef6f 04866576 f000ef6f 0316e098 004ef018 00000206 04863c82 0316e098
04867f03 004ef018 004ef018 00000297 00000000 0316e098 00000000 0017d67b
004ef018 004ef018 0316e098 00000206 001a39b8 0017c1c4 004ef018 00000003
Call Trace: [<04866576>] [<04863c82>] [<04867f03>] [scsi_abort+279/508]
[scsi_times_out+72/304] [scsi_main_timeout+134/168] [ti
mer_bh+248/820]
[do_bottom_half+59/96] [handle_bottom_half+11/24] [sys_idle+92/112]
[system_call+85/124] [init+0/616] [aic7xxx_download_
instr+132/268] [start_kernel+429/440]
Code: 0f b6 43 09 50 0f b6 43 08 50 53 68 a7 89 86 04 e8 a2 d7 8a
Using `/boot/System.map' to map addresses to symbols.

Trace: 4866576
Trace: 4863c82
Trace: 4867f03

Code: movzbl 0x9(%ebx),%eax
Code: pushl %eax
Code: movzbl 0x8(%ebx),%eax
Code: pushl %eax
Code: pushl %ebx
Code: pushl $0x48689a7
Code: call 008ad7b7 <_EIP+8ad7b7>
Code: nop
Code: nop
Code: nop

And some crap at the end:

Aiee, killing interrupt handler
kfree of non-kmalloced memory: 001a3ac8, next= 00000000, order=0
kfree of non-kmalloced memory: 001a3ab8, next= 00000000, order=0
kfree of non-kmalloced memory: 001a3fcc, next= 00000000, order=0
idle task may not sleep
message repeated 4 times
SCSI host 5 abort (pid 338776) timed out - resetting
SCSI bus is being reset for host 5 channel 0.
error: exit: Identifier removed
SCSI host 5 abort (pid 338776) timed out - resetting
SCSI bus is being reset for host 5 channel 0.
SCSI host 5 abort (pid 338776) timed out - resetting

This continued for a while, then stopped, and the system still seems stable.
(X is still running) Also, those ksymoops traces look kinda short. Is there
still helpful information in there? :)

On another note. I remember seeing a patch sent to the list that
prevented messages like:

mount: wrong fs type, bad option, bad superblock on /dev/cdrom,
or too many mounted file systems

when trying to mount my scsi jaz before it had finished spinning up. This no
longer happens, so the patch must have been applied around 2.0.31 or so.
This message still appears for my scsi cdrom. Is it possible to adapt the
patch for cdrom's as well?

Dave