lkml.org 
[lkml]   [2000]   [Oct]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
Subjectfixing dual head issue with DRI
Hi, i've made this little patch against drivers/char/drm/proc.c to
enable dual head in /proc/dri. I'm quite sure
that it's not SMP safe, so if anybody could give a look. Anyway it
worked for me.

*** proc.c.orig Mon Oct 16 00:45:53 2000
--- proc.c Mon Oct 16 03:42:30 2000
***************
*** 73,83 ****
--- 73,120 ----
};
#define DRM_PROC_ENTRIES
(sizeof(drm_proc_list)/sizeof(drm_proc_list[0]))

+ int proc_match2(int len, const char *name,struct proc_dir_entry * de)
+ {
+ if (!de || !de->low_ino)
+ return 0;
+ if (de->namelen != len)
+ return 0;
+ return !memcmp(name, de->name, len);
+ }
+ static struct proc_dir_entry *exists_proc_dir( char *name )
+ {
+ const char *cp = name, *next;
+ struct proc_dir_entry *de;
+ int len;
+
+ de = &proc_root;
+ while (1) {
+ next = strchr(cp, '/');
+ if (!next)
+ break;
+
+ len = next - cp;
+ for (de = de->subdir; de ; de = de->next) {
+ if (proc_match2(len, cp, de)) break;
+ }
+ if (!de)
+ return NULL;
+ cp += len + 1;
+ }
+ len = strlen(cp);
+ for (de = de->subdir; de ; de = de->next) {
+ if (proc_match2(len, cp, de)) return de;
+ }
+ return NULL;
+ }
+
int drm_proc_init(drm_device_t *dev)
{
struct proc_dir_entry *ent;
int i, j;

+ drm_root = exists_proc_dir("dri");
+ if( !drm_root )
drm_root = create_proc_entry("dri", S_IFDIR, NULL);
if (!drm_root) {
DRM_ERROR("Cannot create /proc/dri\n");
***************
*** 88,94 ****
--- 125,134 ----
add some global support for
/proc/dri. */
for (i = 0; i < 8; i++) {
sprintf(drm_slot_name, "dri/%d", i);
+ drm_dev_root = exists_proc_dir(drm_slot_name);
+ if(drm_dev_root) continue;
drm_dev_root = create_proc_entry(drm_slot_name, S_IFDIR,
NULL);
+
if (!drm_dev_root) {
DRM_ERROR("Cannot create /proc/%s\n",
drm_slot_name);
remove_proc_entry("dri", NULL);


--
%--IRIN->-Institut-de-Recherche-en-Informatique-de-Nantes-----------------%
% FORT David, %
% 7 avenue de la morvandière 0240726275 %
% 44470 Thouare, France epopo@onetelnet.fr %
% ICU:78064991 AIM: enlighted popo fort@irin.univ-nantes.fr %
%--LINUX-HTTPD-PIOGENE----------------------------------------------------%
% -datamining <-/ | .~. %
% -networking/flashed PHP3 coming soon | /V\ L I N U X %
% -opensource | // \\ >Fear the Penguin< %
% -GNOME/enlightenment/GIMP | /( )\ %
% feel enlighted.... | ^^-^^ %
% http://ibonneace.dnsalias.org/ when connected %
%-------------------------------------------------------------------------%



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 12:41    [W:0.021 / U:1.432 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site