Patch "dma-buf: fix reservation_object_wait_timeout_rcu once more v2" has been added to the 4.14-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
dma-buf: fix reservation_object_wait_timeout_rcu once more v2
to the 4.14-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
dma-buf-fix-reservation_object_wait_timeout_rcu-once-more-v2.patch
and it can be found in the queue-4.14 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
5bffee867df7494ecd32c1e6ec4e8fc934c521b7Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christian=20K=C3=B6nig?= <[email protected]>
Date: Mon, 22 Jan 2018 21:00:03 +0100
Subject: dma-buf: fix reservation_object_wait_timeout_rcu once more v2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
From: Christian König <[email protected]>
commit 5bffee867df7494ecd32c1e6ec4e8fc934c521b7 upstream.
We need to set shared_count even if we already have a fence to wait for.
v2: init i to -1 as well
--- drivers/dma-buf/reservation.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
drivers/dma-buf/reservation.c +5 -3
@@ -455,13 +455,15 @@ long reservation_object_wait_timeout_rcu unsigned long timeout) {struct dma_fence *fence; -unsigned seq, shared_count, i =0 ; +unsigned seq, shared_count;long ret = timeout ? timeout :1 ; +int i; retry: shared_count =0 ; seq =read_seqcount_begin (&obj->seq);rcu_read_lock (); + i =-1 ; fence =rcu_dereference (obj->fence_excl);if (fence && !test_bit (DMA_FENCE_FLAG_SIGNALED_BIT , &fence->flags)) {
@@ -477,14 +479,14 @@ retry: fence =NULL ; } -if (!fence && wait_all) { +if (wait_all) {struct reservation_object_list *fobj =rcu_dereference (obj->fence);if (fobj) shared_count = fobj->shared_count; -for (i =0 ; i < shared_count; ++i) { +for (i =0 ; !fence && i < shared_count; ++i) {struct dma_fence *lfence =rcu_dereference (fobj->shared[i]); if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT,
Patches currently in stable-queue which might be from [email protected] are
queue-4.14/dma-buf-fix-reservation_object_wait_timeout_rcu-once-more-v2.patch queue-4.14/swiotlb-suppress-warning-when-__gfp_nowarn-is-set.patch