OSDN Git Service

[FreeBSD] Fix another lock leak
authorRobert Noland <rnoland@2hip.net>
Fri, 13 Jun 2008 21:41:20 +0000 (17:41 -0400)
committerRobert Noland <rnoland@2hip.net>
Fri, 13 Jun 2008 21:41:34 +0000 (17:41 -0400)
Reported by vehemens

bsd-core/drm_bufs.c

index 3508331..c793634 100644 (file)
@@ -832,12 +832,12 @@ int drm_addbufs_sg(struct drm_device *dev, drm_buf_desc_t *request)
        if (request->count < 0 || request->count > 4096)
                return EINVAL;
 
-       DRM_SPINLOCK(&dev->dma_lock);
-
        order = drm_order(request->size);
        if (order < DRM_MIN_ORDER || order > DRM_MAX_ORDER)
                return EINVAL;
 
+       DRM_SPINLOCK(&dev->dma_lock);
+
        /* No more allocations after first buffer-using ioctl. */
        if (dev->buf_use != 0) {
                DRM_SPINUNLOCK(&dev->dma_lock);