drm/syncobj: use newly allocated stub fences
authorDavid Stevens <stevensd@chromium.org>
Thu, 8 Apr 2021 09:54:28 +0000 (18:54 +0900)
committerChristian König <christian.koenig@amd.com>
Thu, 8 Apr 2021 10:21:13 +0000 (12:21 +0200)
commitfd921693fe989afe82600d97b37f54c942a6db6c
tree890387d4a85df03774b8d5ebc119b77ff15963f9
parent7513ce49027c8218a6fce7ec45c3289b903ba4bd
drm/syncobj: use newly allocated stub fences

Allocate a new private stub fence in drm_syncobj_assign_null_handle,
instead of using a static stub fence.

When userspace creates a fence with DRM_SYNCOBJ_CREATE_SIGNALED or when
userspace signals a fence via DRM_IOCTL_SYNCOBJ_SIGNAL, the timestamp
obtained when the fence is exported and queried with SYNC_IOC_FILE_INFO
should match when the fence's status was changed from the perspective of
userspace, which is during the respective ioctl.

When a static stub fence started being used in by these ioctls, this
behavior changed. Instead, the timestamp returned by SYNC_IOC_FILE_INFO
became the first time anything used the static stub fence, which has no
meaning to userspace.

Signed-off-by: David Stevens <stevensd@chromium.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20210408095428.3983055-1-stevensd@google.com
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Christian König <christian.koenig@amd.com>
drivers/dma-buf/dma-fence.c
drivers/gpu/drm/drm_syncobj.c
include/linux/dma-fence.h