diff options
| author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-08-14 13:29:31 -0700 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-08-14 13:29:31 -0700 |
| commit | d985524680b77a1cf90738db9a2d72065a746afa (patch) | |
| tree | 101857c3e59f9238b0c7d4bbbf58e46476957387 /drivers/dma-buf/sync_file.c | |
| parent | 2007eafd9df71375d443192bbbe7aa2175992477 (diff) | |
| parent | ef954844c7ace62f773f4f23e28d2d915adc419f (diff) | |
Merge 4.13-rc5 into char-misc-next
We want the firmware, and other changes, in here as well.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/dma-buf/sync_file.c')
| -rw-r--r-- | drivers/dma-buf/sync_file.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/dma-buf/sync_file.c b/drivers/dma-buf/sync_file.c index d7e219d2669d..66fb40d0ebdb 100644 --- a/drivers/dma-buf/sync_file.c +++ b/drivers/dma-buf/sync_file.c @@ -304,7 +304,7 @@ static int sync_file_release(struct inode *inode, struct file *file) { struct sync_file *sync_file = file->private_data; - if (test_bit(POLL_ENABLED, &sync_file->fence->flags)) + if (test_bit(POLL_ENABLED, &sync_file->flags)) dma_fence_remove_callback(sync_file->fence, &sync_file->cb); dma_fence_put(sync_file->fence); kfree(sync_file); @@ -318,7 +318,8 @@ static unsigned int sync_file_poll(struct file *file, poll_table *wait) poll_wait(file, &sync_file->wq, wait); - if (!test_and_set_bit(POLL_ENABLED, &sync_file->fence->flags)) { + if (list_empty(&sync_file->cb.node) && + !test_and_set_bit(POLL_ENABLED, &sync_file->flags)) { if (dma_fence_add_callback(sync_file->fence, &sync_file->cb, fence_check_cb_func) < 0) wake_up_all(&sync_file->wq); |
