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);

Reply via email to