diff options
| author | Michel Dänzer <michel@tungstengraphics.com> | 2006-09-01 11:48:07 +0200 | 
|---|---|---|
| committer | Michel Dänzer <michel@tungstengraphics.com> | 2006-09-29 12:55:09 +0200 | 
| commit | c47ebd970783873164578126fa5481a166cd837e (patch) | |
| tree | 07df50cb4e5b6b53afe36681aff8d62da6d900b7 /shared-core | |
| parent | cef0f243251103be81c914d5b83ee3401c2a9c34 (diff) | |
Only return EBUSY after we've established we need to schedule a new swap.
(cherry picked from 50a0284a61d4415c0ebdb02decee76ef3115007a commit)
Diffstat (limited to 'shared-core')
| -rw-r--r-- | shared-core/i915_irq.c | 10 | 
1 files changed, 5 insertions, 5 deletions
diff --git a/shared-core/i915_irq.c b/shared-core/i915_irq.c index d88afdd0..158a91de 100644 --- a/shared-core/i915_irq.c +++ b/shared-core/i915_irq.c @@ -427,11 +427,6 @@ int i915_vblank_swap(DRM_IOCTL_ARGS)  		return DRM_ERR(EINVAL);  	} -	if (dev_priv->swaps_pending >= 100) { -		DRM_DEBUG("Too many swaps queued\n"); -		return DRM_ERR(EBUSY); -	} -  	DRM_COPY_FROM_USER_IOCTL(swap, (drm_i915_vblank_swap_t __user *) data,  				 sizeof(swap)); @@ -496,6 +491,11 @@ int i915_vblank_swap(DRM_IOCTL_ARGS)  	spin_unlock_irqrestore(&dev_priv->swaps_lock, irqflags); +	if (dev_priv->swaps_pending >= 100) { +		DRM_DEBUG("Too many swaps queued\n"); +		return DRM_ERR(EBUSY); +	} +  	vbl_swap = drm_calloc(1, sizeof(vbl_swap), DRM_MEM_DRIVER);  	if (!vbl_swap) {  | 
