Am Donnerstag, 7. Oktober 2004 02:00 schrieb Jon Smirl:
> This should fix it. I'm I'll check it in after I reboot and test it.
> It didn't occur to me that DRM(global) could be freed while the loop
> is in progress.
>
> I need to remember to keep testing everything with framebuffer loaded
> and again without it loaded.
>
> [EMAIL PROTECTED] drm-bk]$ bk -r diffs -u
> ===== linux/drm_drv.h 1.21 vs edited =====
> --- 1.21/linux/drm_drv.h        2004-09-21 20:29:48 -04:00
> +++ edited/linux/drm_drv.h      2004-10-06 19:56:06 -04:00
> @@ -664,7 +664,7 @@
>         DRM_DEBUG( "\n" );
>         if (DRM(fb_loaded)) {
>                 if (DRM(global)) {
> -                       for (i = 0; i < DRM(global)->cards_limit; i++) {
> +                       for (i = 0; DRM(global) && (i <
> DRM(global)->cards_limit); i++) {
>                                 minor = &DRM(global)->minors[i];
>                                 dev = minor->dev;
>                                 DRM_DEBUG("fb loaded release minor
> %d\n", dev->minor);

Good catch!

I had hangs during shutdown sometimes...

radeon.ko

 Unable to handle kernel NULL pointer dereference at virtual address 00000000
  printing eip:
 fabfd6fe
 *pde = 00000000
 Oops: 0000 [#1]
 PREEMPT SMP
 CPU:    1
 EIP:    0060:[__crc_posix_unblock_lock+493335/1053176]    Tainted: G  U
 EIP:    0060:[<fabfd6fe>]    Tainted: G  U
 EFLAGS: 00010206   (2.6.5-7.108-smp)
 EIP is at drm_exit+0x4e/0x100 [radeon]
 eax: 00000000   ebx: f3bbe180   ecx: f7fff0c0   edx: c1000000
 esi: f425c000   edi: 0000000c   ebp: 00000001   esp: c44c1f38
 ds: 007b   es: 007b   ss: 0068
 Process rmmod (pid: 4099, threadinfo=c44c0000 task=ee3ae820)
 Stack: c02e9430 fffffff0 00000880 fac09c00 c02e98d8 00000000 00000880 
c0142280
        c44c0000 00000000 fac09c00 00000880 c44c1f5c c44c0000 65646172 
40006e6f
        40019000 c44c1f98 40417fff c180c040 f3abadd8 f3aba88c 40019000 
c180c040
 Call Trace:
  [sys_delete_module+352/512] sys_delete_module+0x160/0x200
  [<c0142280>] sys_delete_module+0x160/0x200
  [sysenter_past_esp+82/113] sysenter_past_esp+0x52/0x71
  [<c010841d>] sysenter_past_esp+0x52/0x71

 Code: 3b 28 73 5e 8b 58 04 01 fb f6 05 80 9d c0 fa 01 8b 73 04 74

FIXED, now.

Thanks,
        Dieter


-------------------------------------------------------
This SF.net email is sponsored by: IT Product Guide on ITManagersJournal
Use IT products in your business? Tell us what you think of them. Give us
Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more
http://productguide.itmanagersjournal.com/guidepromo.tmpl
--
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to