OSDN Git Service

dma-buf/sync_file: only enable fence signalling on poll()
authorGustavo Padovan <gustavo.padovan@collabora.co.uk>
Fri, 5 Aug 2016 13:39:38 +0000 (10:39 -0300)
committerSumit Semwal <sumit.semwal@linaro.org>
Thu, 11 Aug 2016 10:09:38 +0000 (15:39 +0530)
commite24165537312723e2900831dd6e7415b8d85278c
tree50fdfc4cbedb2b92a1a96c79141d0605ad63bf6e
parent395dec6f6bc53277bc2b034c7a232ae0c51141b7
dma-buf/sync_file: only enable fence signalling on poll()

Signalling doesn't need to be enabled at sync_file creation, it is only
required if userspace waiting the fence to signal through poll().

Thus we delay fence_add_callback() until poll is called. It only adds the
callback the first time poll() is called. This avoid re-adding the same
callback multiple times.

v2: rebase and update to work with new fence support for sync_file

v3: use atomic operation to set enabled and protect fence_add_callback()

v4: use user bit from fence flags (comment from Chris Wilson)

v5: use ternary if on poll return (comment from Chris Wilson)

Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
  [sumits: remove unused var status]
Link: http://patchwork.freedesktop.org/patch/msgid/1470404378-27961-1-git-send-email-gustavo@padovan.org
drivers/dma-buf/sync_file.c
include/linux/sync_file.h