2003-09-24 09:15:12

by Brad Chapman

[permalink] [raw]
Subject: Problems with the maestro3 OSS driver on 2.6.0-test5-bk10

Mr. Brown,

I just recently got 2.6.0-test5-bk10 working on my Gateway 600S laptop, which
has an ESS Allegro Maestro3 chip. Right now I'm using the maestro3 OSS driver
under 2.4.22-ac2 without problems, but when I boot to 2.6.0-test5-bk10 and try
to use the driver (i.e. open /dev/dsp using the Mozilla Shockwave plugin), I
get the following Oopses:

Unable to handle kernel NULL pointer dereference at virtual address 00000188
printing eip:
e4cbcd33
*pde = 00000000
Oops: 0000 [#1]
CPU: 0
EIP: 0060:[<e4cbcd33>] Not tainted
EFLAGS: 00010002
EIP is at m3_open+0x128/0x3a8 [maestro3]
eax: dbc2a000 ebx: 00000000 ecx: df373778 edx: d37b06ec
esi: df373768 edi: 00000003 ebp: df373778 esp: dbc2be98
ds: 007b es: 007b ss: 0068
Process MozillaFirebird (pid: 1203, threadinfo=dbc2a000 task=da6bd760)
Stack: e4cbea91 00000077 c01873cb dfca3190 dbc2bf00 dbc2befc e4c98f80 c01809c5
00000246 ff0043c0 dbc2a000 e4c98f20 00000000 00000003 e4c97a50 df58adbc
d37b06ec dd445d98 dbc2a000 dbc2a000 dd445d98 c0180881 e4cc1980 dbc2a000
Call Trace:
[<c01873cb>] link_path_walk+0x85e/0xdd2
[<c01809c5>] cdev_get+0x5a/0xb8
[<e4c97a50>] soundcore_open+0x29a/0x61e [soundcore]
[<c0180881>] exact_match+0x0/0x5
[<c0180157>] chrdev_open+0x220/0x617
[<c01731a8>] get_empty_filp+0x75/0xe8
[<c017ff37>] chrdev_open+0x0/0x617
[<c0170c41>] dentry_open+0x14d/0x218
[<c0170af2>] filp_open+0x67/0x69
[<c01712f2>] sys_open+0x5b/0x8b
[<c010a149>] sysenter_past_esp+0x52/0x71

Code: 81 bb 88 01 00 00 3c 4b 24 1d 74 26 8d 83 88 01 00 00 c7 44
<6>note: MozillaFirebird[1203] exited with preempt_count 2
Debug: sleeping function called from invalid context at kernel/fork.c:451
in_atomic():1, irqs_disabled():0
Call Trace:
[<c01213ff>] __might_sleep+0x9c/0xb9
[<c01223e4>] mm_release+0x76/0xc0
[<c01285cd>] do_exit+0x91/0x8e1
[<c010b348>] do_divide_error+0x0/0xfb
[<c011c112>] do_page_fault+0x14a/0x476
[<c0194e35>] d_alloc+0x20/0x37e
[<c011e3f6>] scheduler_tick+0x5cf/0x5db
[<c01caa0a>] ext3_lookup+0xc0/0xc7
[<c011bfc8>] do_page_fault+0x0/0x476
[<c010abc5>] error_code+0x2d/0x38
[<e4cbcd33>] m3_open+0x128/0x3a8 [maestro3]
[<c01873cb>] link_path_walk+0x85e/0xdd2
[<c01809c5>] cdev_get+0x5a/0xb8
[<e4c97a50>] soundcore_open+0x29a/0x61e [soundcore]
[<c0180881>] exact_match+0x0/0x5
[<c0180157>] chrdev_open+0x220/0x617
[<c01731a8>] get_empty_filp+0x75/0xe8
[<c017ff37>] chrdev_open+0x0/0x617
[<c0170c41>] dentry_open+0x14d/0x218
[<c0170af2>] filp_open+0x67/0x69
[<c01712f2>] sys_open+0x5b/0x8b
[<c010a149>] sysenter_past_esp+0x52/0x71

The driver detects my chip like this (the driver itself is compiled as a
module):

maestro3: version 1.23 built at 18:55:27 Sep 23 2003
maestro3: Configuring ESS Allegro found at IO 0x5000 IRQ 5
maestro3: subvendor id: 0x0600107b
ac97_codec: AC97 Audio codec, id: 0x4583:0x8308 (ESS Allegro ES1988)

And under 2.6, lspci -vv says this:

02:03.0 Multimedia audio controller: ESS Technology ES1988 Allegro-1 (rev 12)
Subsystem: Gateway 2000: Unknown device 0600
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 64 (500ns min, 6000ns max)
Interrupt: pin A routed to IRQ 5
Region 0: I/O ports at 5000 [size=256]
Capabilities: [c0] Power Management version 2
Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA
PME(D0-,D1+,D2+,D3hot+,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

Should I try the ALSA drivers next? Or is this a bug fixed elsewhere? (i.e.
2.6.0-test5-mm4)

TIA

Brad Chapman

__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com


2003-09-24 17:31:39

by Brad Chapman

[permalink] [raw]
Subject: Re: Problems with the maestro3 OSS driver on 2.6.0-test5-bk10

Mr. Brown,

UPDATE: The same problem appears on 2.6.0-test5-bk11. It appears to be a bug in
the /dev/dsp code. I tried running mplayer under test5-bk10 and test5-bk11, and
these are the Oopses that mplayer reports under test5-bk11:

Unable to handle kernel NULL pointer dereference at virtual address 00000188
printing eip:
e4cbcd38
*pde = 00000000
Oops: 0000 [#1]
CPU: 0
EIP: 0060:[<e4cbcd38>] Not tainted
EFLAGS: 00210002
EIP is at m3_open+0x12d/0x3ad [maestro3]
eax: d59d0000 ebx: 00000000 ecx: df9b0ad4 edx: d517f45c
esi: df9b0ac4 edi: 00000003 ebp: df9b0ad4 esp: d59d1e98
ds: 007b es: 007b ss: 0068
Process mplayer (pid: 1169, threadinfo=d59d0000 task=d7738ec0)
Stack: e4cbea91 00000077 c018764f dfca3190 d59d1f00 d59d1efc 00000000 d5414380
00200246 ff000b98 d59d0000 e4c98f40 00000000 00000003 e4c97a59 df587b3c
d517f45c 00e00003 d59d1f28 d9437d0c d59d0000 c0180a60 e4cc1980 d59d0000
Call Trace:
[<c018764f>] link_path_walk+0x85e/0xdd2
[<e4c97a59>] soundcore_open+0x2a3/0x626 [soundcore]
[<c0180a60>] exact_match+0x0/0x5
[<c0180337>] chrdev_open+0x220/0x616
[<c01733ac>] get_empty_filp+0x75/0xe8
[<c0180117>] chrdev_open+0x0/0x616
[<c0170e47>] dentry_open+0x14d/0x218
[<c0170cf8>] filp_open+0x67/0x69
[<c01714f8>] sys_open+0x5b/0x8b
[<c010a179>] sysenter_past_esp+0x52/0x71

Code: 81 bb 88 01 00 00 3c 4b 24 1d 74 26 8d 83 88 01 00 00 c7 44
<6>note: mplayer[1169] exited with preempt_count 2
bad: scheduling while atomic!
Call Trace:
[<c011ed03>] schedule+0x8cc/0x8d1
[<c015b6a5>] zap_pmd_range+0x47/0x63
[<c015b704>] unmap_page_range+0x43/0x69
[<c015b954>] unmap_vmas+0x22a/0x358
[<c01615ad>] exit_mmap+0xce/0x2b7
[<c012218a>] mmput+0xb7/0x145
[<c01287ea>] do_exit+0x27e/0x8e1
[<c010b378>] do_divide_error+0x0/0xfb
[<c011c142>] do_page_fault+0x14a/0x476
[<c028fd75>] blk_run_queues+0x148/0x353
[<c025e033>] pty_write+0x1cd/0x1cf
[<c0121d7c>] autoremove_wake_function+0x0/0x4f
[<c0222960>] __copy_from_user_ll+0x74/0x78
[<c0148735>] find_get_page+0x7a/0x161
[<c011bff8>] do_page_fault+0x0/0x476
[<c010abf5>] error_code+0x2d/0x38
[<e4cbcd38>] m3_open+0x12d/0x3ad [maestro3]
[<c018764f>] link_path_walk+0x85e/0xdd2
[<e4c97a59>] soundcore_open+0x2a3/0x626 [soundcore]
[<c0180a60>] exact_match+0x0/0x5
[<c0180337>] chrdev_open+0x220/0x616
[<c01733ac>] get_empty_filp+0x75/0xe8
[<c0180117>] chrdev_open+0x0/0x616
[<c0170e47>] dentry_open+0x14d/0x218
[<c0170cf8>] filp_open+0x67/0x69
[<c01714f8>] sys_open+0x5b/0x8b
[<c010a179>] sysenter_past_esp+0x52/0x71

bad: scheduling while atomic!
Call Trace:
[<c011ed03>] schedule+0x8cc/0x8d1
[<c015b6a5>] zap_pmd_range+0x47/0x63
[<c015b704>] unmap_page_range+0x43/0x69
[<c015b954>] unmap_vmas+0x22a/0x358
[<c01615ad>] exit_mmap+0xce/0x2b7
[<c012218a>] mmput+0xb7/0x145
[<c01287ea>] do_exit+0x27e/0x8e1
[<c010b378>] do_divide_error+0x0/0xfb
[<c011c142>] do_page_fault+0x14a/0x476
[<c028fd75>] blk_run_queues+0x148/0x353
[<c025e033>] pty_write+0x1cd/0x1cf
[<c0121d7c>] autoremove_wake_function+0x0/0x4f
[<c0222960>] __copy_from_user_ll+0x74/0x78
[<c0148735>] find_get_page+0x7a/0x161
[<c011bff8>] do_page_fault+0x0/0x476
[<c010abf5>] error_code+0x2d/0x38
[<e4cbcd38>] m3_open+0x12d/0x3ad [maestro3]
[<c018764f>] link_path_walk+0x85e/0xdd2
[<e4c97a59>] soundcore_open+0x2a3/0x626 [soundcore]
[<c0180a60>] exact_match+0x0/0x5
[<c0180337>] chrdev_open+0x220/0x616
[<c01733ac>] get_empty_filp+0x75/0xe8
[<c0180117>] chrdev_open+0x0/0x616
[<c0170e47>] dentry_open+0x14d/0x218
[<c0170cf8>] filp_open+0x67/0x69
[<c01714f8>] sys_open+0x5b/0x8b
[<c010a179>] sysenter_past_esp+0x52/0x71

This is with mplayer 0.90. I will try 2.6.0-test5-mm4 next.

Brad

__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com

2003-09-24 17:46:22

by Brad Chapman

[permalink] [raw]
Subject: Re: Problems with the maestro3 OSS driver on 2.6.0-test5-bk10

Mr. Brown,

UPDATE: Ugh, it fails on 2.6.0-test5-mm4 as well. Here are the Oopses:

Unable to handle kernel NULL pointer dereference at virtual address 00000188
printing eip:
e4cb4d38
*pde = 00000000
Oops: 0000 [#1]
PREEMPT
CPU: 0
EIP: 0060:[<e4cb4d38>] Not tainted VLI
EFLAGS: 00210002
EIP is at m3_open+0x12d/0x3ad [maestro3]
eax: d324c000 ebx: 00000000 ecx: dfb4f904 edx: d2fef500
esi: dfb4f8f4 edi: 00000003 ebp: dfb4f904 esp: d324de98
ds: 007b es: 007b ss: 0068
Process mplayer (pid: 1260, threadinfo=d324c000 task=d5120300)
Stack: e4cb6a91 00000077 c018a343 dfca129c d324df00 d324defc 00000000 d9bfc300
00200246 ff003850 d324c000 e4c90f40 00000000 00000003 e4c8fa59 df5adb4c
d2fef500 00e00003 d324df28 d88e0794 d324c000 c0183718 e4cb9980 d324c000
Call Trace:
[<c018a343>] link_path_walk+0x85e/0xdd2
[<e4c8fa59>] soundcore_open+0x2a3/0x626 [soundcore]
[<c0183718>] exact_match+0x0/0x5
[<c0182fef>] chrdev_open+0x220/0x616
[<c0175e9c>] get_empty_filp+0x75/0xe8
[<c0182dcf>] chrdev_open+0x0/0x616
[<c01738bc>] dentry_open+0x14d/0x218
[<c017376d>] filp_open+0x67/0x69
[<c0173f6d>] sys_open+0x5b/0x8b
[<c038205a>] sysenter_past_esp+0x43/0x65

Code: db 89 e9 ff 4e 10 0f 88 58 1b 00 00 8b 54 24 40 0f b7 42 1c 66 85 46 58
75 9d 9c 8f 44 24 20 fa b8 00 e0 ff ff 21 e0 83 40 14 01 <81> bb 88 01 00 00 3c
4b 24 1d 74 26 8d 83 88 01 00 00 c7 44 24
<6>note: mplayer[1260] exited with preempt_count 2
bad: scheduling while atomic!
Call Trace:
[<c0120619>] schedule+0x8ee/0x8f3
[<c015dfdc>] zap_pmd_range+0x48/0x64
[<c015e03b>] unmap_page_range+0x43/0x69
[<c015e28b>] unmap_vmas+0x22a/0x358
[<c0163f05>] exit_mmap+0xce/0x2b7
[<c0123c7c>] mmput+0xc8/0x170
[<c012a280>] do_exit+0x27e/0x8e1
[<c010c74e>] do_divide_error+0x0/0xfb
[<c011d959>] do_page_fault+0x20d/0x54b
[<c0292de9>] blk_run_queues+0x148/0x353
[<c0261673>] pty_write+0x1cd/0x1cf
[<c0123847>] autoremove_wake_function+0x0/0x4f
[<c0225fc0>] __copy_from_user_ll+0x74/0x78
[<c0149dc6>] find_get_page+0x7a/0x161
[<c011d74c>] do_page_fault+0x0/0x54b
[<c0382adb>] error_code+0x2f/0x38
[<e4cb4d38>] m3_open+0x12d/0x3ad [maestro3]
[<c018a343>] link_path_walk+0x85e/0xdd2
[<e4c8fa59>] soundcore_open+0x2a3/0x626 [soundcore]
[<c0183718>] exact_match+0x0/0x5
[<c0182fef>] chrdev_open+0x220/0x616
[<c0175e9c>] get_empty_filp+0x75/0xe8
[<c0182dcf>] chrdev_open+0x0/0x616
[<c01738bc>] dentry_open+0x14d/0x218
[<c017376d>] filp_open+0x67/0x69
[<c0173f6d>] sys_open+0x5b/0x8b
[<c038205a>] sysenter_past_esp+0x43/0x65

bad: scheduling while atomic!
Call Trace:
[<c0120619>] schedule+0x8ee/0x8f3
[<c015dfdc>] zap_pmd_range+0x48/0x64
[<c015e03b>] unmap_page_range+0x43/0x69
[<c015e28b>] unmap_vmas+0x22a/0x358
[<c0163f05>] exit_mmap+0xce/0x2b7
[<c0123c7c>] mmput+0xc8/0x170
[<c012a280>] do_exit+0x27e/0x8e1
[<c010c74e>] do_divide_error+0x0/0xfb
[<c011d959>] do_page_fault+0x20d/0x54b
[<c0292de9>] blk_run_queues+0x148/0x353
[<c0261673>] pty_write+0x1cd/0x1cf
[<c0123847>] autoremove_wake_function+0x0/0x4f
[<c0225fc0>] __copy_from_user_ll+0x74/0x78
[<c0149dc6>] find_get_page+0x7a/0x161
[<c011d74c>] do_page_fault+0x0/0x54b
[<c0382adb>] error_code+0x2f/0x38
[<e4cb4d38>] m3_open+0x12d/0x3ad [maestro3]
[<c018a343>] link_path_walk+0x85e/0xdd2
[<e4c8fa59>] soundcore_open+0x2a3/0x626 [soundcore]
[<c0183718>] exact_match+0x0/0x5
[<c0182fef>] chrdev_open+0x220/0x616
[<c0175e9c>] get_empty_filp+0x75/0xe8
[<c0182dcf>] chrdev_open+0x0/0x616
[<c01738bc>] dentry_open+0x14d/0x218
[<c017376d>] filp_open+0x67/0x69
[<c0173f6d>] sys_open+0x5b/0x8b
[<c038205a>] sysenter_past_esp+0x43/0x65

Debug: sleeping function called from invalid context at
include/asm/semaphore.h:119
in_atomic():1, irqs_disabled():0
Call Trace:
[<c0122eae>] __might_sleep+0x9c/0xb6
[<c0161dc5>] remove_shared_vm_struct+0x41/0x96
[<c0164010>] exit_mmap+0x1d9/0x2b7
[<c0123c7c>] mmput+0xc8/0x170
[<c012a280>] do_exit+0x27e/0x8e1
[<c010c74e>] do_divide_error+0x0/0xfb
[<c011d959>] do_page_fault+0x20d/0x54b
[<c0292de9>] blk_run_queues+0x148/0x353
[<c0261673>] pty_write+0x1cd/0x1cf
[<c0123847>] autoremove_wake_function+0x0/0x4f
[<c0225fc0>] __copy_from_user_ll+0x74/0x78
[<c0149dc6>] find_get_page+0x7a/0x161
[<c011d74c>] do_page_fault+0x0/0x54b
[<c0382adb>] error_code+0x2f/0x38
[<e4cb4d38>] m3_open+0x12d/0x3ad [maestro3]
[<c018a343>] link_path_walk+0x85e/0xdd2
[<e4c8fa59>] soundcore_open+0x2a3/0x626 [soundcore]
[<c0183718>] exact_match+0x0/0x5
[<c0182fef>] chrdev_open+0x220/0x616
[<c0175e9c>] get_empty_filp+0x75/0xe8
[<c0182dcf>] chrdev_open+0x0/0x616
[<c01738bc>] dentry_open+0x14d/0x218
[<c017376d>] filp_open+0x67/0x69
[<c0173f6d>] sys_open+0x5b/0x8b
[<c038205a>] sysenter_past_esp+0x43/0x65

Should I just try the ALSA drivers w/OSS emulation? I know I should be using
them but Red Hat 9 is quite involved to get complete ALSAness working on it....

Brad

__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com