FreeBSD: Fix up some ioctl permissions issues missed many times over.
authorRobert Noland <rnoland@2hip.net>
Fri, 27 Feb 2009 05:51:57 +0000 (23:51 -0600)
committerRobert Noland <rnoland@2hip.net>
Fri, 27 Feb 2009 05:51:57 +0000 (23:51 -0600)
This was somehow hit with r600 demo.

Submitted by:  Jung-uk Kim <jkim@FreeBSD.org>

bsd-core/drmP.h
bsd-core/drm_bufs.c
bsd-core/drm_drv.c

index f450d69..573c2b1 100644 (file)
@@ -904,8 +904,8 @@ int drm_addmap_ioctl(struct drm_device *dev, void *data,
                         struct drm_file *file_priv);
 int    drm_rmmap_ioctl(struct drm_device *dev, void *data,
                        struct drm_file *file_priv);
-int    drm_addbufs_ioctl(struct drm_device *dev, void *data,
-                         struct drm_file *file_priv);
+int    drm_addbufs(struct drm_device *dev, void *data,
+                   struct drm_file *file_priv);
 int    drm_infobufs(struct drm_device *dev, void *data,
                     struct drm_file *file_priv);
 int    drm_markbufs(struct drm_device *dev, void *data,
index ebc46b5..1f83ba3 100644 (file)
@@ -877,8 +877,7 @@ int drm_addbufs_pci(struct drm_device *dev, struct drm_buf_desc *request)
        return ret;
 }
 
-int drm_addbufs_ioctl(struct drm_device *dev, void *data,
-                     struct drm_file *file_priv)
+int drm_addbufs(struct drm_device *dev, void *data, struct drm_file *file_priv)
 {
        struct drm_buf_desc *request = data;
        int err;
index 2601e55..c45a442 100644 (file)
@@ -79,7 +79,7 @@ static drm_ioctl_desc_t                 drm_ioctls[256] = {
        DRM_IOCTL_DEF(DRM_IOCTL_SET_SAREA_CTX, drm_setsareactx, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY),
        DRM_IOCTL_DEF(DRM_IOCTL_GET_SAREA_CTX, drm_getsareactx, DRM_AUTH),
 
-       DRM_IOCTL_DEF(DRM_IOCTL_ADD_CTX, drm_addctx, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY),
+       DRM_IOCTL_DEF(DRM_IOCTL_ADD_CTX, drm_addctx, DRM_AUTH|DRM_ROOT_ONLY),
        DRM_IOCTL_DEF(DRM_IOCTL_RM_CTX, drm_rmctx, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY),
        DRM_IOCTL_DEF(DRM_IOCTL_MOD_CTX, drm_modctx, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY),
        DRM_IOCTL_DEF(DRM_IOCTL_GET_CTX, drm_getctx, DRM_AUTH),
@@ -92,10 +92,11 @@ static drm_ioctl_desc_t               drm_ioctls[256] = {
 
        DRM_IOCTL_DEF(DRM_IOCTL_LOCK, drm_lock, DRM_AUTH),
        DRM_IOCTL_DEF(DRM_IOCTL_UNLOCK, drm_unlock, DRM_AUTH),
+
        DRM_IOCTL_DEF(DRM_IOCTL_FINISH, drm_noop, DRM_AUTH),
 
-       DRM_IOCTL_DEF(DRM_IOCTL_ADD_BUFS, drm_addbufs_ioctl, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY),
-       DRM_IOCTL_DEF(DRM_IOCTL_MARK_BUFS, drm_markbufs, DRM_AUTH|DRM_MASTER),
+       DRM_IOCTL_DEF(DRM_IOCTL_ADD_BUFS, drm_addbufs, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY),
+       DRM_IOCTL_DEF(DRM_IOCTL_MARK_BUFS, drm_markbufs, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY),
        DRM_IOCTL_DEF(DRM_IOCTL_INFO_BUFS, drm_infobufs, DRM_AUTH),
        DRM_IOCTL_DEF(DRM_IOCTL_MAP_BUFS, drm_mapbufs, DRM_AUTH),
        DRM_IOCTL_DEF(DRM_IOCTL_FREE_BUFS, drm_freebufs, DRM_AUTH),
@@ -114,7 +115,6 @@ static drm_ioctl_desc_t               drm_ioctls[256] = {
 
        DRM_IOCTL_DEF(DRM_IOCTL_SG_ALLOC, drm_sg_alloc_ioctl, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY),
        DRM_IOCTL_DEF(DRM_IOCTL_SG_FREE, drm_sg_free, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY),
-
        DRM_IOCTL_DEF(DRM_IOCTL_WAIT_VBLANK, drm_wait_vblank, 0),
        DRM_IOCTL_DEF(DRM_IOCTL_MODESET_CTL, drm_modeset_ctl, 0),
        DRM_IOCTL_DEF(DRM_IOCTL_UPDATE_DRAW, drm_update_draw, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY),