From: Victor Wan Date: Tue, 7 Aug 2018 06:45:33 +0000 (+0800) Subject: Revert "BACKPORT: dma-buf/sync_file: Allow multiple sync_files to wrap a single dma... X-Git-Tag: khadas-vims-v0.9.6-release~1583 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7152bce7ca274fd6b9cfe9ac0db22feda27dcaae;p=platform%2Fkernel%2Flinux-amlogic.git 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 --- 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);