drm: i915: Only return EBUSY after we've established we need to schedule a new swap.
Signed-off-by: Dave Airlie <airlied@linux.ie>
This commit is contained in:
parent
2dbb232c4d
commit
21fa60ed4e
1 changed files with 5 additions and 5 deletions
|
@ -392,11 +392,6 @@ int i915_vblank_swap(DRM_IOCTL_ARGS)
|
||||||
return DRM_ERR(EINVAL);
|
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,
|
DRM_COPY_FROM_USER_IOCTL(swap, (drm_i915_vblank_swap_t __user *) data,
|
||||||
sizeof(swap));
|
sizeof(swap));
|
||||||
|
|
||||||
|
@ -461,6 +456,11 @@ int i915_vblank_swap(DRM_IOCTL_ARGS)
|
||||||
|
|
||||||
spin_unlock_irqrestore(&dev_priv->swaps_lock, irqflags);
|
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);
|
vbl_swap = drm_calloc(1, sizeof(vbl_swap), DRM_MEM_DRIVER);
|
||||||
|
|
||||||
if (!vbl_swap) {
|
if (!vbl_swap) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue