Index: dev/drm/radeon_state.c =================================================================== --- dev/drm/radeon_state.c (revision 190987) +++ dev/drm/radeon_state.c (working copy) @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD$"); +__FBSDID("$FreeBSD: head/sys/dev/drm/radeon_state.c 189499 2009-03-07 21:36:57Z rnoland $"); #include "dev/drm/drmP.h" #include "dev/drm/drm.h" @@ -2391,10 +2391,13 @@ return -EINVAL; } - if (DRM_COPY_FROM_USER(&image, - (drm_radeon_tex_image_t __user *) tex->image, - sizeof(image))) - return -EFAULT; + DRM_UNLOCK(); + ret = -DRM_COPY_FROM_USER(&image, + (drm_radeon_tex_image_t __user *) tex->image, + sizeof(image)); + DRM_LOCK(); + if (ret) + return ret; RING_SPACE_TEST_WITH_RETURN(dev_priv); VB_AGE_TEST_WITH_RETURN(dev_priv);