author | Victor Wan <victor.wan@amlogic.com> | 2018-08-07 06:45:33 (GMT) |
---|---|---|
committer | Victor Wan <victor.wan@amlogic.com> | 2018-08-07 06:46:15 (GMT) |
commit | 7152bce7ca274fd6b9cfe9ac0db22feda27dcaae (patch) | |
tree | 03c9778f8ad9db4bc3cdf82e907577624d49849a | |
parent | cc7b1eac546a25e7d4f2e057ef9b817af6597598 (diff) | |
download | common-7152bce7ca274fd6b9cfe9ac0db22feda27dcaae.zip common-7152bce7ca274fd6b9cfe9ac0db22feda27dcaae.tar.gz common-7152bce7ca274fd6b9cfe9ac0db22feda27dcaae.tar.bz2 |
Revert "BACKPORT: dma-buf/sync_file: Allow multiple sync_files to wrap a single dma-fence"
This reverts commit 74fa0af47306baf118b32b7acdba4ae98eda7a7d.
The commit 74fa0af caused GPU driver loading failed.
Change-Id: I255eb6b7a26e3b00e4f11489ece49896ff004d79
-rw-r--r-- | drivers/dma-buf/sync_file.c | 5 | ||||
-rw-r--r-- | include/linux/sync_file.h | 3 |
2 files changed, 3 insertions, 5 deletions
diff --git a/drivers/dma-buf/sync_file.c b/drivers/dma-buf/sync_file.c index 267546a..56a45cd 100644 --- a/drivers/dma-buf/sync_file.c +++ b/drivers/dma-buf/sync_file.c @@ -278,7 +278,7 @@ static void sync_file_free(struct kref *kref) struct sync_file *sync_file = container_of(kref, struct sync_file, kref); - if (test_bit(POLL_ENABLED, &sync_file->flags)) + if (test_bit(POLL_ENABLED, &sync_file->fence->flags)) fence_remove_callback(sync_file->fence, &sync_file->cb); fence_put(sync_file->fence); kfree(sync_file); @@ -298,8 +298,7 @@ static unsigned int sync_file_poll(struct file *file, poll_table *wait) poll_wait(file, &sync_file->wq, wait); - if (list_empty(&sync_file->cb.node) && - !test_and_set_bit(POLL_ENABLED, &sync_file->flags)) { + if (!test_and_set_bit(POLL_ENABLED, &sync_file->fence->flags)) { if (fence_add_callback(sync_file->fence, &sync_file->cb, fence_check_cb_func) < 0) wake_up_all(&sync_file->wq); diff --git a/include/linux/sync_file.h b/include/linux/sync_file.h index 35ec6c4..aa17ccf 100644 --- a/include/linux/sync_file.h +++ b/include/linux/sync_file.h @@ -40,13 +40,12 @@ struct sync_file { #endif wait_queue_head_t wq; - unsigned long flags; struct fence *fence; struct fence_cb cb; }; -#define POLL_ENABLED 0 +#define POLL_ENABLED FENCE_FLAG_USER_BITS struct sync_file *sync_file_create(struct fence *fence); struct fence *sync_file_get_fence(int fd); |