]>
Commit | Line | Data |
---|---|---|
d24f563e TP |
1 | diff -up libdrm-2.4.0/libdrm/xf86drm.c.mknod libdrm-2.4.0/libdrm/xf86drm.c |
2 | --- libdrm-2.4.0/libdrm/xf86drm.c.mknod 2007-10-30 20:10:10.000000000 -0400 | |
3 | +++ libdrm-2.4.0/libdrm/xf86drm.c 2007-11-12 19:26:12.000000000 -0500 | |
4 | @@ -266,64 +266,12 @@ static int drmMatchBusID(const char *id1 | |
5 | */ | |
6 | static int drmOpenDevice(long dev, int minor) | |
7 | { | |
8 | - stat_t st; | |
9 | char buf[64]; | |
10 | int fd; | |
11 | - mode_t devmode = DRM_DEV_MODE, serv_mode; | |
12 | - int isroot = !geteuid(); | |
13 | - uid_t user = DRM_DEV_UID; | |
14 | - gid_t group = DRM_DEV_GID, serv_group; | |
15 | ||
16 | sprintf(buf, DRM_DEV_NAME, DRM_DIR_NAME, minor); | |
17 | drmMsg("drmOpenDevice: node name is %s\n", buf); | |
18 | ||
19 | - if (drm_server_info) { | |
20 | - drm_server_info->get_perms(&serv_group, &serv_mode); | |
21 | - devmode = serv_mode ? serv_mode : DRM_DEV_MODE; | |
22 | - devmode &= ~(S_IXUSR|S_IXGRP|S_IXOTH); | |
23 | - group = (serv_group >= 0) ? serv_group : DRM_DEV_GID; | |
24 | - } | |
25 | - | |
26 | - if (stat(DRM_DIR_NAME, &st)) { | |
27 | - if (!isroot) | |
28 | - return DRM_ERR_NOT_ROOT; | |
29 | - mkdir(DRM_DIR_NAME, DRM_DEV_DIRMODE); | |
30 | - chown(DRM_DIR_NAME, 0, 0); /* root:root */ | |
31 | - chmod(DRM_DIR_NAME, DRM_DEV_DIRMODE); | |
32 | - } | |
33 | - | |
34 | - /* Check if the device node exists and create it if necessary. */ | |
35 | - if (stat(buf, &st)) { | |
36 | - if (!isroot) | |
37 | - return DRM_ERR_NOT_ROOT; | |
38 | - remove(buf); | |
39 | - mknod(buf, S_IFCHR | devmode, dev); | |
40 | - } | |
41 | - | |
42 | - if (drm_server_info) { | |
43 | - chown(buf, user, group); | |
44 | - chmod(buf, devmode); | |
45 | - } | |
46 | - | |
47 | - fd = open(buf, O_RDWR, 0); | |
48 | - drmMsg("drmOpenDevice: open result is %d, (%s)\n", | |
49 | - fd, fd < 0 ? strerror(errno) : "OK"); | |
50 | - if (fd >= 0) | |
51 | - return fd; | |
52 | - | |
53 | - /* Check if the device node is not what we expect it to be, and recreate it | |
54 | - * and try again if so. | |
55 | - */ | |
56 | - if (st.st_rdev != dev) { | |
57 | - if (!isroot) | |
58 | - return DRM_ERR_NOT_ROOT; | |
59 | - remove(buf); | |
60 | - mknod(buf, S_IFCHR | devmode, dev); | |
61 | - if (drm_server_info) { | |
62 | - chown(buf, user, group); | |
63 | - chmod(buf, devmode); | |
64 | - } | |
65 | - } | |
66 | fd = open(buf, O_RDWR, 0); | |
67 | drmMsg("drmOpenDevice: open result is %d, (%s)\n", | |
68 | fd, fd < 0 ? strerror(errno) : "OK"); | |
69 | @@ -331,7 +279,6 @@ static int drmOpenDevice(long dev, int m | |
70 | return fd; | |
71 | ||
72 | drmMsg("drmOpenDevice: Open failed\n"); | |
73 | - remove(buf); | |
74 | return -errno; | |
75 | } | |
76 | ||
77 | diff -up libdrm-2.4.0/libdrm/xf86drm.h.mknod libdrm-2.4.0/libdrm/xf86drm.h | |
78 | --- libdrm-2.4.0/libdrm/xf86drm.h.mknod 2007-07-19 00:27:52.000000000 -0400 | |
79 | +++ libdrm-2.4.0/libdrm/xf86drm.h 2007-11-12 19:27:51.000000000 -0500 | |
80 | @@ -39,14 +39,6 @@ | |
81 | #include <stdint.h> | |
82 | #include <drm.h> | |
83 | ||
84 | - /* Defaults, if nothing set in xf86config */ | |
85 | -#define DRM_DEV_UID 0 | |
86 | -#define DRM_DEV_GID 0 | |
87 | -/* Default /dev/dri directory permissions 0755 */ | |
88 | -#define DRM_DEV_DIRMODE \ | |
89 | - (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH) | |
90 | -#define DRM_DEV_MODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP) | |
91 | - | |
92 | #define DRM_DIR_NAME "/dev/dri" | |
93 | #define DRM_DEV_NAME "%s/card%d" | |
94 | #define DRM_PROC_NAME "/proc/dri/" /* For backward Linux compatibility */ |