mirror of https://gitee.com/openkylin/linux.git
drm/qxl: more fence wait rework
Move qxl_io_notify_oom() call into wait condition.
That way the driver will call it again if one call
wasn't enough.
Also allows to remove the extra dma_fence_is_signaled()
check and the goto.
Fixes: 5a838e5d58
("drm/qxl: simplify qxl_fence_wait")
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: http://patchwork.freedesktop.org/patch/msgid/20210217123213.2199186-3-kraxel@redhat.com
This commit is contained in:
parent
26fe1f4c55
commit
42c4551aca
|
@ -62,16 +62,12 @@ static long qxl_fence_wait(struct dma_fence *fence, bool intr,
|
|||
|
||||
qdev = container_of(fence->lock, struct qxl_device, release_lock);
|
||||
|
||||
if (dma_fence_is_signaled(fence))
|
||||
goto signaled;
|
||||
|
||||
qxl_io_notify_oom(qdev);
|
||||
if (!wait_event_timeout(qdev->release_event,
|
||||
dma_fence_is_signaled(fence),
|
||||
(dma_fence_is_signaled(fence) ||
|
||||
(qxl_io_notify_oom(qdev), 0)),
|
||||
timeout))
|
||||
return 0;
|
||||
|
||||
signaled:
|
||||
cur = jiffies;
|
||||
if (time_after(cur, end))
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue