Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 21fa60ed authored by Michel Dänzer's avatar Michel Dänzer Committed by airlied
Browse files

drm: i915: Only return EBUSY after we've established we need to schedule a new swap.



Signed-off-by: default avatarDave Airlie <airlied@linux.ie>
parent 2dbb232c
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -392,11 +392,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));

@@ -461,6 +456,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) {