From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755061AbcAOPBN (ORCPT ); Fri, 15 Jan 2016 10:01:13 -0500 Received: from mail-yk0-f194.google.com ([209.85.160.194]:36665 "EHLO mail-yk0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754730AbcAOO4e (ORCPT ); Fri, 15 Jan 2016 09:56:34 -0500 From: Gustavo Padovan To: Greg Kroah-Hartman Cc: linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org, dri-devel@lists.freedesktop.org, daniels@collabora.com, =?UTF-8?q?Arve=20Hj=C3=B8nnev=C3=A5g?= , Riley Andrews , Daniel Vetter , Rob Clark , Greg Hackmann , John Harrison , Maarten Lankhorst , Gustavo Padovan Subject: [RFC 13/29] dma-buf/fence: create fence_default_enable_signaling() Date: Fri, 15 Jan 2016 12:55:23 -0200 Message-Id: <1452869739-3304-14-git-send-email-gustavo@padovan.org> X-Mailer: git-send-email 2.5.0 In-Reply-To: <1452869739-3304-1-git-send-email-gustavo@padovan.org> References: <1452869739-3304-1-git-send-email-gustavo@padovan.org> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Gustavo Padovan Add a default .enable_signaling() op to be used on fence_ops vtable. fence_default_enable_signaling() checks if the was not signaled yet and adds it to the active_list. Signed-off-by: Gustavo Padovan --- drivers/dma-buf/fence.c | 22 ++++++++++++++++++++++ drivers/staging/android/sync.c | 13 +------------ include/linux/fence.h | 1 + 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/drivers/dma-buf/fence.c b/drivers/dma-buf/fence.c index 5dcb94c..51b77ed 100644 --- a/drivers/dma-buf/fence.c +++ b/drivers/dma-buf/fence.c @@ -438,6 +438,28 @@ fence_remove_callback(struct fence *fence, struct fence_cb *cb) } EXPORT_SYMBOL(fence_remove_callback); +/** + * fence_default_enable_signaling - default op for .enable_signaling + * @fence: [in] the fence to enable signaling + * + * This function checks if the fence was already signaled and if not + * adds it to the list of active fences. + */ +bool fence_default_enable_signaling(struct fence *fence) +{ + struct fence_timeline *timeline = fence_parent(fence); + + if (!timeline) + return false; + + if (fence->ops->signaled && fence->ops->signaled(fence)) + return false; + + list_add_tail(&fence->active_list, &timeline->active_list_head); + return true; +} +EXPORT_SYMBOL(fence_default_enable_signaling); + struct default_wait_cb { struct fence_cb base; struct task_struct *task; diff --git a/drivers/staging/android/sync.c b/drivers/staging/android/sync.c index 417cf9f..87fb93c 100644 --- a/drivers/staging/android/sync.c +++ b/drivers/staging/android/sync.c @@ -362,17 +362,6 @@ static bool sync_fence_signaled(struct fence *fence) return ret; } -static bool sync_fence_enable_signaling(struct fence *fence) -{ - struct fence_timeline *parent = fence_parent(fence); - - if (sync_fence_signaled(fence)) - return false; - - list_add_tail(&fence->active_list, &parent->active_list_head); - return true; -} - static int sync_fence_fill_driver_data(struct fence *fence, void *data, int size) { @@ -412,7 +401,7 @@ static void sync_fence_timeline_value_str(struct fence *fence, static const struct fence_ops sync_fence_ops = { .get_driver_name = sync_fence_get_driver_name, .get_timeline_name = sync_fence_get_timeline_name, - .enable_signaling = sync_fence_enable_signaling, + .enable_signaling = fence_default_enable_signaling, .signaled = sync_fence_signaled, .wait = fence_default_wait, .release = sync_fence_release, diff --git a/include/linux/fence.h b/include/linux/fence.h index a333bf37..73b8c9f 100644 --- a/include/linux/fence.h +++ b/include/linux/fence.h @@ -295,6 +295,7 @@ static inline void fence_put(struct fence *fence) int fence_signal(struct fence *fence); int fence_signal_locked(struct fence *fence); +bool fence_default_enable_signaling(struct fence *fence); signed long fence_default_wait(struct fence *fence, bool intr, signed long timeout); int fence_add_callback(struct fence *fence, struct fence_cb *cb, fence_func_t func); -- 2.5.0 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gustavo Padovan Subject: [RFC 13/29] dma-buf/fence: create fence_default_enable_signaling() Date: Fri, 15 Jan 2016 12:55:23 -0200 Message-ID: <1452869739-3304-14-git-send-email-gustavo@padovan.org> References: <1452869739-3304-1-git-send-email-gustavo@padovan.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-yk0-f194.google.com (mail-yk0-f194.google.com [209.85.160.194]) by gabe.freedesktop.org (Postfix) with ESMTPS id 53BCB7A0F2 for ; Fri, 15 Jan 2016 06:56:34 -0800 (PST) Received: by mail-yk0-f194.google.com with SMTP id k129so40237965yke.3 for ; Fri, 15 Jan 2016 06:56:34 -0800 (PST) In-Reply-To: <1452869739-3304-1-git-send-email-gustavo@padovan.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Greg Kroah-Hartman Cc: devel@driverdev.osuosl.org, daniels@collabora.com, Daniel Vetter , Riley Andrews , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, =?UTF-8?q?Arve=20Hj=C3=B8nnev=C3=A5g?= , Maarten Lankhorst , Gustavo Padovan , John Harrison List-Id: dri-devel@lists.freedesktop.org RnJvbTogR3VzdGF2byBQYWRvdmFuIDxndXN0YXZvLnBhZG92YW5AY29sbGFib3JhLmNvLnVrPgoK QWRkIGEgZGVmYXVsdCAuZW5hYmxlX3NpZ25hbGluZygpIG9wIHRvIGJlIHVzZWQgb24gZmVuY2Vf b3BzIHZ0YWJsZS4KZmVuY2VfZGVmYXVsdF9lbmFibGVfc2lnbmFsaW5nKCkgY2hlY2tzIGlmIHRo ZSB3YXMgbm90IHNpZ25hbGVkIHlldAphbmQgYWRkcyBpdCB0byB0aGUgYWN0aXZlX2xpc3QuCgpT aWduZWQtb2ZmLWJ5OiBHdXN0YXZvIFBhZG92YW4gPGd1c3Rhdm8ucGFkb3ZhbkBjb2xsYWJvcmEu Y28udWs+Ci0tLQogZHJpdmVycy9kbWEtYnVmL2ZlbmNlLmMgICAgICAgIHwgMjIgKysrKysrKysr KysrKysrKysrKysrKwogZHJpdmVycy9zdGFnaW5nL2FuZHJvaWQvc3luYy5jIHwgMTMgKy0tLS0t LS0tLS0tLQogaW5jbHVkZS9saW51eC9mZW5jZS5oICAgICAgICAgIHwgIDEgKwogMyBmaWxlcyBj aGFuZ2VkLCAyNCBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2RtYS1idWYvZmVuY2UuYyBiL2RyaXZlcnMvZG1hLWJ1Zi9mZW5jZS5jCmluZGV4IDVk Y2I5NGMuLjUxYjc3ZWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZG1hLWJ1Zi9mZW5jZS5jCisrKyBi L2RyaXZlcnMvZG1hLWJ1Zi9mZW5jZS5jCkBAIC00MzgsNiArNDM4LDI4IEBAIGZlbmNlX3JlbW92 ZV9jYWxsYmFjayhzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBzdHJ1Y3QgZmVuY2VfY2IgKmNiKQogfQog RVhQT1JUX1NZTUJPTChmZW5jZV9yZW1vdmVfY2FsbGJhY2spOwogCisvKioKKyAqIGZlbmNlX2Rl ZmF1bHRfZW5hYmxlX3NpZ25hbGluZyAtIGRlZmF1bHQgb3AgZm9yIC5lbmFibGVfc2lnbmFsaW5n CisgKiBAZmVuY2U6CVtpbl0JdGhlIGZlbmNlIHRvIGVuYWJsZSBzaWduYWxpbmcKKyAqCisgKiBU aGlzIGZ1bmN0aW9uIGNoZWNrcyBpZiB0aGUgZmVuY2Ugd2FzIGFscmVhZHkgc2lnbmFsZWQgYW5k IGlmIG5vdAorICogYWRkcyBpdCB0byB0aGUgbGlzdCBvZiBhY3RpdmUgZmVuY2VzLgorICovCiti b29sIGZlbmNlX2RlZmF1bHRfZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZmVuY2UgKmZlbmNlKQor eworCXN0cnVjdCBmZW5jZV90aW1lbGluZSAqdGltZWxpbmUgPSBmZW5jZV9wYXJlbnQoZmVuY2Up OworCisJaWYgKCF0aW1lbGluZSkKKwkJcmV0dXJuIGZhbHNlOworCisJaWYgKGZlbmNlLT5vcHMt PnNpZ25hbGVkICYmIGZlbmNlLT5vcHMtPnNpZ25hbGVkKGZlbmNlKSkKKwkJcmV0dXJuIGZhbHNl OworCisJbGlzdF9hZGRfdGFpbCgmZmVuY2UtPmFjdGl2ZV9saXN0LCAmdGltZWxpbmUtPmFjdGl2 ZV9saXN0X2hlYWQpOworCXJldHVybiB0cnVlOworfQorRVhQT1JUX1NZTUJPTChmZW5jZV9kZWZh dWx0X2VuYWJsZV9zaWduYWxpbmcpOworCiBzdHJ1Y3QgZGVmYXVsdF93YWl0X2NiIHsKIAlzdHJ1 Y3QgZmVuY2VfY2IgYmFzZTsKIAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2s7CmRpZmYgLS1naXQg YS9kcml2ZXJzL3N0YWdpbmcvYW5kcm9pZC9zeW5jLmMgYi9kcml2ZXJzL3N0YWdpbmcvYW5kcm9p ZC9zeW5jLmMKaW5kZXggNDE3Y2Y5Zi4uODdmYjkzYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFn aW5nL2FuZHJvaWQvc3luYy5jCisrKyBiL2RyaXZlcnMvc3RhZ2luZy9hbmRyb2lkL3N5bmMuYwpA QCAtMzYyLDE3ICszNjIsNiBAQCBzdGF0aWMgYm9vbCBzeW5jX2ZlbmNlX3NpZ25hbGVkKHN0cnVj dCBmZW5jZSAqZmVuY2UpCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGJvb2wgc3luY19mZW5j ZV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBmZW5jZSAqZmVuY2UpCi17Ci0Jc3RydWN0IGZlbmNl X3RpbWVsaW5lICpwYXJlbnQgPSBmZW5jZV9wYXJlbnQoZmVuY2UpOwotCi0JaWYgKHN5bmNfZmVu Y2Vfc2lnbmFsZWQoZmVuY2UpKQotCQlyZXR1cm4gZmFsc2U7Ci0KLQlsaXN0X2FkZF90YWlsKCZm ZW5jZS0+YWN0aXZlX2xpc3QsICZwYXJlbnQtPmFjdGl2ZV9saXN0X2hlYWQpOwotCXJldHVybiB0 cnVlOwotfQotCiBzdGF0aWMgaW50IHN5bmNfZmVuY2VfZmlsbF9kcml2ZXJfZGF0YShzdHJ1Y3Qg ZmVuY2UgKmZlbmNlLAogCQkJCQkgIHZvaWQgKmRhdGEsIGludCBzaXplKQogewpAQCAtNDEyLDcg KzQwMSw3IEBAIHN0YXRpYyB2b2lkIHN5bmNfZmVuY2VfdGltZWxpbmVfdmFsdWVfc3RyKHN0cnVj dCBmZW5jZSAqZmVuY2UsCiBzdGF0aWMgY29uc3Qgc3RydWN0IGZlbmNlX29wcyBzeW5jX2ZlbmNl X29wcyA9IHsKIAkuZ2V0X2RyaXZlcl9uYW1lID0gc3luY19mZW5jZV9nZXRfZHJpdmVyX25hbWUs CiAJLmdldF90aW1lbGluZV9uYW1lID0gc3luY19mZW5jZV9nZXRfdGltZWxpbmVfbmFtZSwKLQku ZW5hYmxlX3NpZ25hbGluZyA9IHN5bmNfZmVuY2VfZW5hYmxlX3NpZ25hbGluZywKKwkuZW5hYmxl X3NpZ25hbGluZyA9IGZlbmNlX2RlZmF1bHRfZW5hYmxlX3NpZ25hbGluZywKIAkuc2lnbmFsZWQg PSBzeW5jX2ZlbmNlX3NpZ25hbGVkLAogCS53YWl0ID0gZmVuY2VfZGVmYXVsdF93YWl0LAogCS5y ZWxlYXNlID0gc3luY19mZW5jZV9yZWxlYXNlLApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9m ZW5jZS5oIGIvaW5jbHVkZS9saW51eC9mZW5jZS5oCmluZGV4IGEzMzNiZjM3Li43M2I4YzlmIDEw MDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2ZlbmNlLmgKKysrIGIvaW5jbHVkZS9saW51eC9mZW5j ZS5oCkBAIC0yOTUsNiArMjk1LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGZlbmNlX3B1dChzdHJ1 Y3QgZmVuY2UgKmZlbmNlKQogCiBpbnQgZmVuY2Vfc2lnbmFsKHN0cnVjdCBmZW5jZSAqZmVuY2Up OwogaW50IGZlbmNlX3NpZ25hbF9sb2NrZWQoc3RydWN0IGZlbmNlICpmZW5jZSk7Citib29sIGZl bmNlX2RlZmF1bHRfZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZmVuY2UgKmZlbmNlKTsKIHNpZ25l ZCBsb25nIGZlbmNlX2RlZmF1bHRfd2FpdChzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBib29sIGludHIs IHNpZ25lZCBsb25nIHRpbWVvdXQpOwogaW50IGZlbmNlX2FkZF9jYWxsYmFjayhzdHJ1Y3QgZmVu Y2UgKmZlbmNlLCBzdHJ1Y3QgZmVuY2VfY2IgKmNiLAogCQkgICAgICAgZmVuY2VfZnVuY190IGZ1 bmMpOwotLSAKMi41LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRl dmVsCg==