Hi all,

This patch corrects a bug in drm driver by forcing 
its minor number in the limits of the allocated 
resources: DRM(stub_list)[DRM_STUB_MAXCARDS]
       0<= minor < DRM_STUB_MAXCARDS. 

Manifestation:    Xorg-6.9.0 SIGSEGFAULTs when the 
loading of dri module is enabled (direct rendering)
Xorg-6.9.0 (and evidently not the previous versions)
has defined DRM_MAX_MINOR as 255 (and Xorg-6.9.0 
tries to open all of them) while in the kernel: 
DRM_STUB_MAXCARDS is defined as 16.

Please apply for 2.4.33 reliese ;-))

Kernel version:   2.4.32
Subsistem:        drivers/char/drm

Best regards

Marin Mitov

=========================================
--- a/drivers/char/drm/drm_stub.h       2003-11-28 20:26:20.000000000 +0200
+++ b/drivers/char/drm/drm_stub.h       2006-02-11 19:42:58.000000000 +0200
@@ -52,6 +52,7 @@
        int                    err   = -ENODEV;
        struct file_operations *old_fops;
 
+       if (minor < 0 || minor >=DRM_STUB_MAXCARDS) return -ENODEV;
        if (!DRM(stub_list) || !DRM(stub_list)[minor].fops) return -ENODEV;
        old_fops   = filp->f_op;
        filp->f_op = fops_get(DRM(stub_list)[minor].fops);

=============================================


-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to