From patchwork Fri Jul 21 16:20:01 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Christian_K=C3=B6nig?= X-Patchwork-Id: 42713 Received: from vger.kernel.org ([209.132.180.67]) by www.linuxtv.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dYaok-0007Wl-PN; Fri, 21 Jul 2017 16:30:19 +0000 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752098AbdGUQaP (ORCPT + 1 other); Fri, 21 Jul 2017 12:30:15 -0400 Received: from vsmx011.vodafonemail.xion.oxcs.net ([153.92.174.89]:52081 "EHLO vsmx011.vodafonemail.xion.oxcs.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751996AbdGUQaP (ORCPT ); Fri, 21 Jul 2017 12:30:15 -0400 X-Greylist: delayed 596 seconds by postgrey-1.27 at vger.kernel.org; Fri, 21 Jul 2017 12:30:15 EDT Received: from vsmx003.vodafonemail.xion.oxcs.net (unknown [192.168.75.197]) by mta-5-out.mta.xion.oxcs.net (Postfix) with ESMTP id 25D413E0190; Fri, 21 Jul 2017 16:20:18 +0000 (UTC) Received: from laptop.amd.com (unknown [165.204.55.251]) by mta-7-out.mta.xion.oxcs.net (Postfix) with ESMTPA id B4985300EA4; Fri, 21 Jul 2017 16:20:06 +0000 (UTC) From: =?UTF-8?q?Christian=20K=C3=B6nig?= To: linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org Cc: sumit.semwal@linaro.org Subject: [PATCH] dma-buf: fix reservation_object_wait_timeout_rcu to wait correctly Date: Fri, 21 Jul 2017 18:20:01 +0200 Message-Id: <1500654001-20899-1-git-send-email-deathsimple@vodafone.de> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 X-VADE-STATUS: LEGIT Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org From: Christian König With hardware resets in mind it is possible that all shared fences are signaled, but the exlusive isn't. Fix waiting for everything in this situation. Signed-off-by: Christian König --- drivers/dma-buf/reservation.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/dma-buf/reservation.c b/drivers/dma-buf/reservation.c index e2eff86..ce3f9c1 100644 --- a/drivers/dma-buf/reservation.c +++ b/drivers/dma-buf/reservation.c @@ -461,7 +461,7 @@ long reservation_object_wait_timeout_rcu(struct reservation_object *obj, } } - if (!shared_count) { + if (!fence) { struct dma_fence *fence_excl = rcu_dereference(obj->fence_excl); if (fence_excl &&