Re: New radeonfb, mostly untested
flat view
From: Kronos <hidden>
Date: 2003-09-07 23:04:37
Il Sun, Sep 07, 2003 at 06:37:20PM +0200, Benjamin Herrenschmidt ha scritto:
I didn't test anything else yet nor x86, let me know what you think...
It dies on boot:
ksymoops 2.4.9 on i686 2.6.0-test4-benh. Options used
-V (default)
-k /proc/ksyms (default)
-l /proc/modules (default)
-o /lib/modules/2.6.0-test4-benh/ (default)
-m /home/kronos/c/src/linux-2.5-benh/System.map (specified)
Error (regular_file): read_ksyms stat /proc/ksyms failed
No modules in ksyms, skipping objects
No ksyms, skipping lsmod
Unable to handle kernel NULL pointer dereference at virtual address 00000014
c02e33c7
*pde = 00000000
Oops: 0000 [#1]
CPU: 0
EIP: 0060:[<c02e33c7>] Not tainted
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010202
eax: 00000000 ebx: ee49c010 ecx: 00000001 edx: ef631dd4
esi: ee49c000 edi: 00000000 ebp: ef631d90 esp: ef631d80
ds: 007b es: 007b ss: 0068
Stack: ffffffff ee49c000 ee49c000 ef631dd4 ef631e60 f09442f0 ee49c010 ee49c000
ef631dd4 00000008 ef631de4 ee49c010 00000000 00003a55 00000400 c0399bcc
ef631e0c ef631e14 c012b837 ef630000 fffffaf8 00000286 c046e445 00000280
Call Trace:
[<f09442f0>] radeon_check_modes+0x240/0x390 [radeonfb]
[<c012b837>] printk+0x277/0x400
[<c02e2315>] show_edid+0x145/0x1b0
[<f0943af3>] radeon_probe_screens+0x133/0x5f0 [radeonfb]
[<f0941709>] radeonfb_pci_register+0x419/0x800 [radeonfb]
[<c0216f6b>] pci_device_probe_static+0x4b/0x60
[<c02172d6>] __pci_device_probe+0x36/0x50
[<c021731c>] pci_device_probe+0x2c/0x50
[<c02a2bbd>] bus_match+0x3d/0x70
[<c02a2d10>] driver_attach+0x70/0xb0
[<c02a305e>] bus_add_driver+0xbe/0xd0
[<c02a3568>] driver_register+0x88/0x90
[<c021771e>] pci_register_driver+0x8e/0xb0
[<f094a015>] init_module+0x15/0x40 [radeonfb]
[<c014d0cf>] sys_init_module+0x1ff/0x3e0
[<c010b20f>] syscall_call+0x7/0xb
Code: 8b 50 14 85 d2 75 12 83 63 54 fd 31 c0 85 c9 0f 94 c0 83 c4
quoted
EIP; c02e33c7 <__fb_try_mode+87/c0> <=====
quoted
ebx; ee49c010 <_end+2e010f48/3fb72f38> edx; ef631dd4 <_end+2f1a6d0c/3fb72f38> esi; ee49c000 <_end+2e010f38/3fb72f38> ebp; ef631d90 <_end+2f1a6cc8/3fb72f38> esp; ef631d80 <_end+2f1a6cb8/3fb72f38>
Trace; f09442f0 <_end+304b9228/3fb72f38> Trace; c012b837 <printk+277/400> Trace; c02e2315 <show_edid+145/1b0> Trace; f0943af3 <_end+304b8a2b/3fb72f38> Trace; f0941709 <_end+304b6641/3fb72f38> Trace; c0216f6b <pci_device_probe_static+4b/60> Trace; c02172d6 <__pci_device_probe+36/50> Trace; c021731c <pci_device_probe+2c/50> Trace; c02a2bbd <bus_match+3d/70> Trace; c02a2d10 <driver_attach+70/b0> Trace; c02a305e <bus_add_driver+be/d0> Trace; c02a3568 <driver_register+88/90> Trace; c021771e <pci_register_driver+8e/b0> Trace; f094a015 <_end+304bef4d/3fb72f38> Trace; c014d0cf <sys_init_module+1ff/3e0> Trace; c010b20f <syscall_call+7/b> Code; c02e33c7 <__fb_try_mode+87/c0> 00000000 <_EIP>: Code; c02e33c7 <__fb_try_mode+87/c0> <===== 0: 8b 50 14 mov 0x14(%eax),%edx <===== Code; c02e33ca <__fb_try_mode+8a/c0> 3: 85 d2 test %edx,%edx Code; c02e33cc <__fb_try_mode+8c/c0> 5: 75 12 jne 19 <_EIP+0x19> c02e33e0 <__fb_try_mode+a0/c0> Code; c02e33ce <__fb_try_mode+8e/c0> 7: 83 63 54 fd andl $0xfffffffd,0x54(%ebx) Code; c02e33d2 <__fb_try_mode+92/c0> b: 31 c0 xor %eax,%eax Code; c02e33d4 <__fb_try_mode+94/c0> d: 85 c9 test %ecx,%ecx Code; c02e33d6 <__fb_try_mode+96/c0> f: 0f 94 c0 sete %al Code; c02e33d9 <__fb_try_mode+99/c0> 12: 83 c4 00 add $0x0,%esp 1 error issued. Results may not be reliable. We are in modedb.c:411, and info->fbops is NULL. info->fbops is set in radeon_set_fbinfo, which is called after radeon_probe_screens. Moving radeon_set_fbinfo up should fix this: ===== drivers/video/aty/radeon_base.c 1.2 vs edited =====
--- 1.2/drivers/video/aty/radeon_base.c Sun Sep 7 23:31:18 2003
+++ edited/drivers/video/aty/radeon_base.c Mon Sep 8 00:55:03 2003@@ -2003,6 +2003,9 @@ radeon_create_i2c_busses(rinfo); #endif + /* set all the vital stuff */ + radeon_set_fbinfo (rinfo); + /* Probe screen types */ radeon_probe_screens(rinfo, monitor_layout, ignore_edid);
@@ -2024,9 +2027,6 @@ /* initialize the engine */ radeon_engine_init (rinfo); } - - /* set all the vital stuff */ - radeon_set_fbinfo (rinfo); pci_set_drvdata(pdev, rinfo); rinfo->next = board_list;
Luca -- Reply-To: kronos@kronoz.cjb.net Home: http://kronoz.cjb.net "It is more complicated than you think" -- The Eighth Networking Truth from RFC 1925 ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf