Oops, 2.0.2, loading sound module

Eric S. Mountain (eric@minouche.demon.co.uk)
Sun, 7 Jul 1996 09:53:29 +0100 (BST)


Hi,

I wasn't going to test 2.0.2 as it breaks supermount, but I thought I
should ('cos of all the effort everyone puts in 'n' all) :) and here's
my first Aiee - happened when loading the sound module (I have an
SB16).

It works OK with 2.0.0, dunno about 2.0.1. I don't think this has to
do with insmod (from modules-2.0.0) as other modules load OK (e.g. ppp).

1. The Aieee - from syslog
Linux version 2.0.2 (root@minouche.demon.co.uk) (gcc version 2.7.2) #1 Sun Jul 7 00:25:00 BST 1996
[...]
Unable to handle kernel NULL pointer dereference at virtual address c0000040
current->tss.cr3 = 00725000, *r3 = 00725000
*pde = 00102067
*pte = 00000027
Oops: 0002
CPU: 0
EIP: 0010:[<0102cc20>]
EFLAGS: 00010202
eax: 00000005 ebx: 00000000 ecx: ffffffdf edx: 00000000
esi: 00000000 edi: 00000005 ebp: 00719d94 esp: 00719d60
ds: 0018 es: 0018 fs: 002b gs: 002b ss: 0018
Process insmod (pid: 214, process nr: 5, stackpage=00719000)
Stack: 0009e5d8 000004ff 0010c91d 00000005 00000000 00719d94 00719d94 00000005
00000000 0009e5d8 0010bb86 00000005 00719d94 001993d0 ffffffdf 00108e00
00000005 00000000 0009e5d8 00000000 00000018 00710018 0000002b 0102002b
Call Trace: [<0010c91d>] [<0010bb86>] [<0102002b>] [<0010cab7>] [<01020010>] [<0102cc0c>] [<0010cb28>]
[<0103e000>] [<0103697c>] [<0103697c>] [<01024726>] [<0102cc0c>] [<01036025>] [<0103e000>] [<0102d7be>]
[<0102cc0c>] [<01036025>] [<0102caa2>] [<0102ca66>] [<0103697c>] [<01024e07>] [<0103697c>] [<01024e51>]
[<0102453b>] [<0102464b>] [<0011e893>] [<0102466c>] [<00114764>] [<00114950>] [<0011a1af>] [<010245cc>]
[<0102466c>] [<00110013>] [<0010feb0>] [<0010a7bb>] [<0010a622>]
Code: c7 43 40 01 00 00 00 85 db 0f 84 e4 00 00 00 39 43 24 0f 85
Aiee, killing interrupt handler

2. Info from the oops:
2.1 ksymoops info
Using `System.map' to map addresses to symbols.

Trace: 10c91d <do_IRQ+2d/50>
Trace: 10bb86 <IRQ5_interrupt+56/80>
Trace: 102002b
Trace: 10cab7 <setup_x86_irq+127/130>
Trace: 1020010
Trace: 102cc0c
Trace: 10cb28 <request_irq+68/90>
Trace: 103e000
Trace: 103697c
Trace: 103697c
Trace: 1024726
Trace: 102cc0c
Trace: 1036025
Trace: 103e000
Trace: 102d7be
Trace: 102cc0c
Trace: 1036025
Trace: 102caa2
Trace: 102ca66
Trace: 103697c
Trace: 1024e07
Trace: 103697c
Trace: 1024e51
Trace: 102453b
Trace: 102464b
Trace: 11e893 <kmalloc+143/220>
Trace: 102466c
Trace: 114764 <sys_init_module+214/440>
Trace: 114950 <sys_init_module+400/440>
Trace: 11a1af <do_no_page+2df/410>
Trace: 10245cc
Trace: 102466c
Trace: 110013 <do_page_fault+163/2d0>
Trace: 110013 <do_page_fault+163/2d0>
Trace: 10a7bb <error_code+4b/60>
Trace: 10a622 <system_call+52/80>

Code: movl $0x1,0x40(%ebx)
Code: testl %ebx,%ebx
Code: je 000000f3 <_EIP+f3>
Code: cmpl %eax,0x24(%ebx)
Code: jne 90909018 <_EIP+90909018>

2.2 EIP lookup
Uh sorry, don't get this bit:
>From the oops I've got: EIP: 0010:[<0102cc20>]
In the output from "nm vmlinux | sort | less", do I try to find the 0010
bit, or the 0102cc20? (I know I won't necessarily get a dead match).
If it's 0010, then here's the output:
0000000c a signal
00000010 a EDI
00000010 a blocked
00000014 a EBP
If it's the long number, then I guess it's the old problem with
debugging modules - i.e. it's not known where they're going to be put - as
the address is higher than anything nm outputs.
On the other hand, if it's the long number divided by 0x10, then:
00101000 T swapper_pg_dir
00102000 T pg0
00103000 T empty_bad_page

3. My SB16 config (/etc/soundconf)
/* Generated by configure. Don't edit!!!! */
/* Making changes to this file is not as simple as it may look. */

/* If you change the CONFIG_ settings in local.h you */
/* _have_ to edit .defines too. */

#undef CONFIG_PAS
#define CONFIG_SB
#undef CONFIG_ADLIB
#undef CONFIG_GUS
#undef CONFIG_MPU401
#undef CONFIG_UART6850
#undef CONFIG_PSS
#undef CONFIG_GUS16
#undef CONFIG_GUSMAX
#undef CONFIG_MSS
#undef CONFIG_SSCAPE
#undef CONFIG_TRIX
#undef CONFIG_MAD16
#undef CONFIG_CS4232
#undef CONFIG_MAUI
#undef CONFIG_SPNP
#undef CONFIG_UNUSED1
#undef CONFIG_UNUSED2
#undef CONFIG_AEDSP16
#define CONFIG_AUDIO
#define CONFIG_MIDI
#define CONFIG_YM3812

#undef CONFIG_MPU_EMU
#undef CONFIG_AD1848
#define CONFIG_SEQUENCER

#define SBC_BASE 0x220
#define SBC_IRQ 5
#define SBC_DMA 1
#define SB_DMA2 5
#define SB_MPU_BASE 0x330
#define DSP_BUFFSIZE 65536
#define SELECTED_SOUND_OPTIONS 0x00a80002

If I have time, I will try to recompile the kernel with sound "not as
a module" and see...

Hope this helps, cheers, :E

-- 
Eric S. Mountain  -  eric@minouche.demon.co.uk

It's a poor workman who blames his tools.