Module Name: src
Committed By: riastradh
Date: Wed Jul 24 02:06:53 UTC 2013
Modified Files:
src/sys/external/bsd/drm2/dist/drm [riastradh-drm2]: drm_bufs.c
Log Message:
Replace capable(CAP_SYS_ADMIN) by DRM_SUSER() in drm_bufs.c.
To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.8 -r1.1.1.1.2.9 \
src/sys/external/bsd/drm2/dist/drm/drm_bufs.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/external/bsd/drm2/dist/drm/drm_bufs.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_bufs.c:1.1.1.1.2.8 src/sys/external/bsd/drm2/dist/drm/drm_bufs.c:1.1.1.1.2.9
--- src/sys/external/bsd/drm2/dist/drm/drm_bufs.c:1.1.1.1.2.8 Wed Jul 24 02:06:18 2013
+++ src/sys/external/bsd/drm2/dist/drm/drm_bufs.c Wed Jul 24 02:06:53 2013
@@ -415,8 +415,17 @@ int drm_addmap_ioctl(struct drm_device *
struct drm_map_list *maplist;
int err;
+#ifdef __NetBSD__
+# if 0 /* XXX Old drm did this. */
+ if (!(dev->flags & (FREAD | FWRITE)))
+ return -EACCES;
+# endif
+ if (!(DRM_SUSER() || map->type == _DRM_AGP || map->type == _DRM_SHM))
+ return -EACCES; /* XXX */
+#else
if (!(capable(CAP_SYS_ADMIN) || map->type == _DRM_AGP || map->type == _DRM_SHM))
return -EPERM;
+#endif
err = drm_addmap_core(dev, map->offset, map->size, map->type,
map->flags, &maplist);
@@ -811,8 +820,13 @@ int drm_addbufs_pci(struct drm_device *
if (!dma)
return -EINVAL;
+#ifdef __NetBSD__
+ if (!DRM_SUSER())
+ return -EACCES; /* XXX */
+#else
if (!capable(CAP_SYS_ADMIN))
return -EPERM;
+#endif
count = request->count;
order = drm_order(request->size);
@@ -1017,8 +1031,13 @@ static int drm_addbufs_sg(struct drm_dev
if (!dma)
return -EINVAL;
+#ifdef __NetBSD__
+ if (!DRM_SUSER())
+ return -EACCES; /* XXX */
+#else
if (!capable(CAP_SYS_ADMIN))
return -EPERM;
+#endif
count = request->count;
order = drm_order(request->size);
@@ -1172,8 +1191,13 @@ static int drm_addbufs_fb(struct drm_dev
if (!dma)
return -EINVAL;
+#ifdef __NetBSD__
+ if (!DRM_SUSER())
+ return -EACCES; /* XXX */
+#else
if (!capable(CAP_SYS_ADMIN))
return -EPERM;
+#endif
count = request->count;
order = drm_order(request->size);