From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C9368C48BE5 for ; Thu, 10 Jun 2021 13:59:17 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 96DB261404 for ; Thu, 10 Jun 2021 13:59:17 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 96DB261404 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=jlekstrand.net Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id A1F076ED34; Thu, 10 Jun 2021 13:59:16 +0000 (UTC) Received: from mail-yb1-xb2c.google.com (mail-yb1-xb2c.google.com [IPv6:2607:f8b0:4864:20::b2c]) by gabe.freedesktop.org (Postfix) with ESMTPS id 14EF66ED6B for ; Thu, 10 Jun 2021 13:59:15 +0000 (UTC) Received: by mail-yb1-xb2c.google.com with SMTP id n133so40939319ybf.6 for ; Thu, 10 Jun 2021 06:59:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jlekstrand-net.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=vz88TG2t3wHyHeHSsfk4XrpWiwqZ6jeUeTjx+9bno9Q=; b=J2oDJRyUK6lsyWJdmXmHIRRIyctFK+q0ttIfn/P7XdwzBUeWVCGRRU7AXn395A/fWX uy+m5mGiOiabDoGhSQg7kySuwXeTqPIde4NgotHjAyENTHSzR4YvGo2v5JwnepDzVCGg twoA7Dx0/mOcl37gC6UJliBuDw9P9sE99ZxPi4wHpnrHhtAZtqHpBzJ2ILe+RPvC+bA3 PMuEu8FZaSpHV6s73VreAfqWqM3/OIcyB8e37mB7n+ieZAo9q3pl2HdiPKcjAjVx71ia hJP31TT3a9XDw7LxL6JG3ZuUruLzhjTYFL9FDqUEWak3d7PWie9ChinEQ2r3R101uw1F F0PA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=vz88TG2t3wHyHeHSsfk4XrpWiwqZ6jeUeTjx+9bno9Q=; b=Y97WEJst386h+JLhdUCxz5M/1ez4SKiO/9q0zXqEf9O7Wjw94EECMyaieu7RuLzAE2 h/e5ZoiLwcCxjCHzrNjQZ2SoFZStKuiV2Qx9/boOwUvU2BN0rQrg2r3mNpYMx3/GWMWW YUygrCzvNHgVIPEQJElm4yRGgvzxrks+y7hf6EeupSvq6qGwRyKjrZuF9QhKEXCH0eRe til2RT9DKN8mkI+Iaj+mbJuGhDLKvTFxDvr6igI6e1n8Jyg2hA1ouQ+BWAvRqWKidWdl 5OtrQq+6XZGwvpBVrJpHPaGbkelrJ0gPkfD4aVVYQ3N+N1GczHsE9L0LrF+0/b46g6Tj 1INw== X-Gm-Message-State: AOAM530lMRfQVUq6J7faYVKEj4CWTtK87yoPm4v225YGdOt9b3yHzKqR /P+UzsL6SdRuo44V79bhz9pjy5xdK40W4VpCTWuOqg== X-Google-Smtp-Source: ABdhPJzoiTM4MToa9/DidIlMjXB/t1IsDNscu7OH2tmdnBFEzox2aTWugVcTtrXOdZGKIKcU2aMa/DqWtaf03O2D008= X-Received: by 2002:a25:a2c5:: with SMTP id c5mr7481369ybn.432.1623333554134; Thu, 10 Jun 2021 06:59:14 -0700 (PDT) MIME-Version: 1.0 References: <20210609212959.471209-1-jason@jlekstrand.net> <20210609212959.471209-6-jason@jlekstrand.net> In-Reply-To: From: Jason Ekstrand Date: Thu, 10 Jun 2021 08:59:03 -0500 Message-ID: To: =?UTF-8?Q?Christian_K=C3=B6nig?= Subject: Re: [Intel-gfx] [PATCH 5/5] DONOTMERGE: dma-buf: Get rid of dma_fence_get_rcu_safe X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , Intel GFX , Matthew Auld , Maling list - DRI developers Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gVGh1LCBKdW4gMTAsIDIwMjEgYXQgMTo1MSBBTSBDaHJpc3RpYW4gS8O2bmlnCjxjaHJpc3Rp YW4ua29lbmlnQGFtZC5jb20+IHdyb3RlOgo+Cj4gQW0gMDkuMDYuMjEgdW0gMjM6Mjkgc2Nocmll YiBKYXNvbiBFa3N0cmFuZDoKPiA+IFRoaXMgaGVscGVyIGV4aXN0ZWQgdG8gaGFuZGxlIHRoZSB3 ZWlyZCBjb3JuZXItY2FzZXMgY2F1c2VkIGJ5IHVzaW5nCj4gPiBTTEFCX1RZUEVTQUZFX0JZX1JD VSBmb3IgYmFja2luZyBkbWFfZmVuY2UuICBOb3cgdGhhdCBubyBvbmUgaXMgdXNpbmcKPiA+IHRo YXQgYW55bW9yZSAoaTkxNSB3YXMgdGhlIG9ubHkgcmVhbCB1c2VyKSwgZG1hX2ZlbmNlX2dldF9y Y3UgaXMKPiA+IHN1ZmZpY2llbnQuICBUaGUgb25lIHNsaWdodGx5IGFubm95aW5nIHRoaW5nIHdl IGhhdmUgdG8gZGVhbCB3aXRoIGhlcmUKPiA+IGlzIHRoYXQgZG1hX2ZlbmNlX2dldF9yY3Vfc2Fm ZSBkaWQgYW4gcmN1X2RlcmVmZXJlbmNlIGFzIHdlbGwgYXMgYQo+ID4gU0xBQl9UWVBFU0FGRV9C WV9SQ1Utc2FmZSBkbWFfZmVuY2VfZ2V0X3JjdS4gIFRoaXMgbWVhbnMgZWFjaCBjYWxsIHNpdGUK PiA+IGVuZHMgdXAgYmVpbmcgMyBsaW5lcyBpbnN0ZWFkIG9mIDEuCj4KPiBUaGF0J3MgYW4gb3V0 cmlnaHQgTkFLLgo+Cj4gVGhlIGxvb3AgaW4gZG1hX2ZlbmNlX2dldF9yY3Vfc2FmZSBpcyBuZWNl c3NhcnkgYmVjYXVzZSB0aGUgdW5kZXJseWluZwo+IGZlbmNlIG9iamVjdCBjYW4gYmUgcmVwbGFj ZWQgd2hpbGUgdGFraW5nIHRoZSByZWZlcmVuY2UuCgpSaWdodC4gIEkgaGFkIG1pc3NlZCBhIGJp dCBvZiB0aGF0IHdoZW4gSSBmaXJzdCByZWFkIHRocm91Z2ggaXQuICBJCnNlZSB0aGUgbmVlZCBm b3IgdGhlIGxvb3Agbm93LiAgQnV0IHRoZXJlIGFyZSBzb21lIG90aGVyIHRyaWNreSBiaXRzCmlu IHRoZXJlIGJlc2lkZXMganVzdCB0aGUgbG9vcC4KCj4gVGhpcyBpcyBjb21wbGV0ZWx5IHVucmVs YXRlZCB0byBTTEFCX1RZUEVTQUZFX0JZX1JDVS4gU2VlIHRoZQo+IGRtYV9mZW5jZV9jaGFpbiB1 c2FnZSBmb3IgcmVmZXJlbmNlLgo+Cj4gV2hhdCB5b3UgY2FuIHJlbW92ZSBpcyB0aGUgc2VxdWVu Y2UgbnVtYmVyIGhhbmRsaW5nIGluIGRtYS1idWYuIFRoYXQKPiBzaG91bGQgbWFrZSBhZGRpbmcg ZmVuY2VzIHF1aXRlIGEgYml0IHF1aWNrZXIuCgpJJ2xsIGxvb2sgYXQgdGhhdCBhbmQgdHJ5IHRv IHVuZGVyc3RhbmQgd2hhdCdzIGdvaW5nIG9uIHRoZXJlLgoKLS1KYXNvbgoKPiBSZWdhcmRzLAo+ IENocmlzdGlhbi4KPgo+ID4KPiA+IFNpZ25lZC1vZmYtYnk6IEphc29uIEVrc3RyYW5kIDxqYXNv bkBqbGVrc3RyYW5kLm5ldD4KPiA+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZm d2xsLmNoPgo+ID4gQ2M6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNv bT4KPiA+IENjOiBNYXR0aGV3IEF1bGQgPG1hdHRoZXcuYXVsZEBpbnRlbC5jb20+Cj4gPiBDYzog TWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPiA+ IC0tLQo+ID4gICBkcml2ZXJzL2RtYS1idWYvZG1hLWZlbmNlLWNoYWluLmMgICAgICAgICB8ICA4 ICsrLS0KPiA+ICAgZHJpdmVycy9kbWEtYnVmL2RtYS1yZXN2LmMgICAgICAgICAgICAgICAgfCAg NCArLQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZmVuY2UuYyB8ICA0 ICstCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfYWN0aXZlLmggICAgICAgIHwgIDQg Ky0KPiA+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYyAgICAgICAgICAgfCAgNCAr LQo+ID4gICBpbmNsdWRlL2RybS9kcm1fc3luY29iai5oICAgICAgICAgICAgICAgICB8ICA0ICst Cj4gPiAgIGluY2x1ZGUvbGludXgvZG1hLWZlbmNlLmggICAgICAgICAgICAgICAgIHwgNTAgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ICAgaW5jbHVkZS9saW51eC9kbWEtcmVzdi5oICAgICAg ICAgICAgICAgICAgfCAgNCArLQo+ID4gICA4IGZpbGVzIGNoYW5nZWQsIDIzIGluc2VydGlvbnMo KyksIDU5IGRlbGV0aW9ucygtKQo+ID4KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1idWYv ZG1hLWZlbmNlLWNoYWluLmMgYi9kcml2ZXJzL2RtYS1idWYvZG1hLWZlbmNlLWNoYWluLmMKPiA+ IGluZGV4IDdkMTI5ZTY4YWM3MDEuLjQ2ZGZjN2Q5NGQ4ZWQgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2 ZXJzL2RtYS1idWYvZG1hLWZlbmNlLWNoYWluLmMKPiA+ICsrKyBiL2RyaXZlcnMvZG1hLWJ1Zi9k bWEtZmVuY2UtY2hhaW4uYwo+ID4gQEAgLTE1LDE1ICsxNSwxNyBAQCBzdGF0aWMgYm9vbCBkbWFf ZmVuY2VfY2hhaW5fZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSk7Cj4g PiAgICAqIGRtYV9mZW5jZV9jaGFpbl9nZXRfcHJldiAtIHVzZSBSQ1UgdG8gZ2V0IGEgcmVmZXJl bmNlIHRvIHRoZSBwcmV2aW91cyBmZW5jZQo+ID4gICAgKiBAY2hhaW46IGNoYWluIG5vZGUgdG8g Z2V0IHRoZSBwcmV2aW91cyBub2RlIGZyb20KPiA+ICAgICoKPiA+IC0gKiBVc2UgZG1hX2ZlbmNl X2dldF9yY3Vfc2FmZSB0byBnZXQgYSByZWZlcmVuY2UgdG8gdGhlIHByZXZpb3VzIGZlbmNlIG9m IHRoZQo+ID4gLSAqIGNoYWluIG5vZGUuCj4gPiArICogVXNlIHJjdV9kZXJlZmVyZW5jZSBhbmQg ZG1hX2ZlbmNlX2dldF9yY3UgdG8gZ2V0IGEgcmVmZXJlbmNlIHRvIHRoZQo+ID4gKyAqIHByZXZp b3VzIGZlbmNlIG9mIHRoZSBjaGFpbiBub2RlLgo+ID4gICAgKi8KPiA+ICAgc3RhdGljIHN0cnVj dCBkbWFfZmVuY2UgKmRtYV9mZW5jZV9jaGFpbl9nZXRfcHJldihzdHJ1Y3QgZG1hX2ZlbmNlX2No YWluICpjaGFpbikKPiA+ICAgewo+ID4gICAgICAgc3RydWN0IGRtYV9mZW5jZSAqcHJldjsKPiA+ Cj4gPiAgICAgICByY3VfcmVhZF9sb2NrKCk7Cj4gPiAtICAgICBwcmV2ID0gZG1hX2ZlbmNlX2dl dF9yY3Vfc2FmZSgmY2hhaW4tPnByZXYpOwo+ID4gKyAgICAgcHJldiA9IHJjdV9kZXJlZmVyZW5j ZShjaGFpbi0+cHJldik7Cj4gPiArICAgICBpZiAocHJldikKPiA+ICsgICAgICAgICAgICAgcHJl diA9IGRtYV9mZW5jZV9nZXRfcmN1KHByZXYpOwo+ID4gICAgICAgcmN1X3JlYWRfdW5sb2NrKCk7 Cj4gPiAgICAgICByZXR1cm4gcHJldjsKPiA+ICAgfQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv ZG1hLWJ1Zi9kbWEtcmVzdi5jIGIvZHJpdmVycy9kbWEtYnVmL2RtYS1yZXN2LmMKPiA+IGluZGV4 IGYyNmM3MTc0N2Q0M2EuLmNmZTBkYjNjY2EyOTIgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2Rt YS1idWYvZG1hLXJlc3YuYwo+ID4gKysrIGIvZHJpdmVycy9kbWEtYnVmL2RtYS1yZXN2LmMKPiA+ IEBAIC0zNzYsNyArMzc2LDkgQEAgaW50IGRtYV9yZXN2X2NvcHlfZmVuY2VzKHN0cnVjdCBkbWFf cmVzdiAqZHN0LCBzdHJ1Y3QgZG1hX3Jlc3YgKnNyYykKPiA+ICAgICAgICAgICAgICAgZHN0X2xp c3QgPSBOVUxMOwo+ID4gICAgICAgfQo+ID4KPiA+IC0gICAgIG5ldyA9IGRtYV9mZW5jZV9nZXRf cmN1X3NhZmUoJnNyYy0+ZmVuY2VfZXhjbCk7Cj4gPiArICAgICBuZXcgPSByY3VfZGVyZWZlcmVu Y2Uoc3JjLT5mZW5jZV9leGNsKTsKPiA+ICsgICAgIGlmIChuZXcpCj4gPiArICAgICAgICAgICAg IG5ldyA9IGRtYV9mZW5jZV9nZXRfcmN1KG5ldyk7Cj4gPiAgICAgICByY3VfcmVhZF91bmxvY2so KTsKPiA+Cj4gPiAgICAgICBzcmNfbGlzdCA9IGRtYV9yZXN2X3NoYXJlZF9saXN0KGRzdCk7Cj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ZlbmNlLmMg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZmVuY2UuYwo+ID4gaW5kZXggNzJk OWI5MmIxNzU0Ny4uMGFlYjYxMTdmMzg5MyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9mZW5jZS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfZmVuY2UuYwo+ID4gQEAgLTE2MSw3ICsxNjEsOSBAQCBpbnQgYW1kZ3B1 X2ZlbmNlX2VtaXQoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBzdHJ1Y3QgZG1hX2ZlbmNlICoq ZiwKPiA+ICAgICAgICAgICAgICAgc3RydWN0IGRtYV9mZW5jZSAqb2xkOwo+ID4KPiA+ICAgICAg ICAgICAgICAgcmN1X3JlYWRfbG9jaygpOwo+ID4gLSAgICAgICAgICAgICBvbGQgPSBkbWFfZmVu Y2VfZ2V0X3JjdV9zYWZlKHB0cik7Cj4gPiArICAgICAgICAgICAgIG9sZCA9IHJjdV9kZXJlZmVy ZW5jZSgqcHRyKTsKPiA+ICsgICAgICAgICAgICAgaWYgKG9sZCkKPiA+ICsgICAgICAgICAgICAg ICAgICAgICBvbGQgPSBkbWFfZmVuY2VfZ2V0X3JjdShvbGQpOwo+ID4gICAgICAgICAgICAgICBy Y3VfcmVhZF91bmxvY2soKTsKPiA+Cj4gPiAgICAgICAgICAgICAgIGlmIChvbGQpIHsKPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2FjdGl2ZS5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9hY3RpdmUuaAo+ID4gaW5kZXggZDBmZWRhNjhiODc0Zi4uYmQ4OWNm YzgwNmNhNSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfYWN0aXZl LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfYWN0aXZlLmgKPiA+IEBAIC0x MDMsNyArMTAzLDkgQEAgaTkxNV9hY3RpdmVfZmVuY2VfZ2V0KHN0cnVjdCBpOTE1X2FjdGl2ZV9m ZW5jZSAqYWN0aXZlKQo+ID4gICAgICAgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7Cj4gPgo+ID4g ICAgICAgcmN1X3JlYWRfbG9jaygpOwo+ID4gLSAgICAgZmVuY2UgPSBkbWFfZmVuY2VfZ2V0X3Jj dV9zYWZlKCZhY3RpdmUtPmZlbmNlKTsKPiA+ICsgICAgIGZlbmNlID0gcmN1X2RlcmVmZXJlbmNl KGFjdGl2ZS0+ZmVuY2UpOwo+ID4gKyAgICAgaWYgKGZlbmNlKQo+ID4gKyAgICAgICAgICAgICBm ZW5jZSA9IGRtYV9mZW5jZV9nZXRfcmN1KGZlbmNlKTsKPiA+ICAgICAgIHJjdV9yZWFkX3VubG9j aygpOwo+ID4KPiA+ICAgICAgIHJldHVybiBmZW5jZTsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEu Ywo+ID4gaW5kZXggMGYyMjdmMjhiMjgwMi4uZWQwMzg4ZDk5MTk3ZSAxMDA2NDQKPiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfdm1hLmMKPiA+IEBAIC0zNTEsNyArMzUxLDkgQEAgaW50IGk5MTVfdm1hX3dh aXRfZm9yX2JpbmQoc3RydWN0IGk5MTVfdm1hICp2bWEpCj4gPiAgICAgICAgICAgICAgIHN0cnVj dCBkbWFfZmVuY2UgKmZlbmNlOwo+ID4KPiA+ICAgICAgICAgICAgICAgcmN1X3JlYWRfbG9jaygp Owo+ID4gLSAgICAgICAgICAgICBmZW5jZSA9IGRtYV9mZW5jZV9nZXRfcmN1X3NhZmUoJnZtYS0+ YWN0aXZlLmV4Y2wuZmVuY2UpOwo+ID4gKyAgICAgICAgICAgICBmZW5jZSA9IHJjdV9kZXJlZmVy ZW5jZSh2bWEtPmFjdGl2ZS5leGNsLmZlbmNlKTsKPiA+ICsgICAgICAgICAgICAgaWYgKGZlbmNl KQo+ID4gKyAgICAgICAgICAgICAgICAgICAgIGZlbmNlID0gZG1hX2ZlbmNlX2dldF9yY3UoZmVu Y2UpOwo+ID4gICAgICAgICAgICAgICByY3VfcmVhZF91bmxvY2soKTsKPiA+ICAgICAgICAgICAg ICAgaWYgKGZlbmNlKSB7Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgZXJyID0gZG1hX2ZlbmNl X3dhaXQoZmVuY2UsIE1BWF9TQ0hFRFVMRV9USU1FT1VUKTsKPiA+IGRpZmYgLS1naXQgYS9pbmNs dWRlL2RybS9kcm1fc3luY29iai5oIGIvaW5jbHVkZS9kcm0vZHJtX3N5bmNvYmouaAo+ID4gaW5k ZXggNmNmNzI0M2ExZGM1ZS4uNmM0NWQ1Mjk4OGJjYyAxMDA2NDQKPiA+IC0tLSBhL2luY2x1ZGUv ZHJtL2RybV9zeW5jb2JqLmgKPiA+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9zeW5jb2JqLmgKPiA+ IEBAIC0xMDUsNyArMTA1LDkgQEAgZHJtX3N5bmNvYmpfZmVuY2VfZ2V0KHN0cnVjdCBkcm1fc3lu Y29iaiAqc3luY29iaikKPiA+ICAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwo+ID4KPiA+ ICAgICAgIHJjdV9yZWFkX2xvY2soKTsKPiA+IC0gICAgIGZlbmNlID0gZG1hX2ZlbmNlX2dldF9y Y3Vfc2FmZSgmc3luY29iai0+ZmVuY2UpOwo+ID4gKyAgICAgZmVuY2UgPSByY3VfZGVyZWZlcmVu Y2Uoc3luY29iai0+ZmVuY2UpOwo+ID4gKyAgICAgaWYgKGZlbmNlKQo+ID4gKyAgICAgICAgICAg ICBmZW5jZSA9IGRtYV9mZW5jZV9nZXRfcmN1KHN5bmNvYmotPmZlbmNlKTsKPiA+ICAgICAgIHJj dV9yZWFkX3VubG9jaygpOwo+ID4KPiA+ICAgICAgIHJldHVybiBmZW5jZTsKPiA+IGRpZmYgLS1n aXQgYS9pbmNsdWRlL2xpbnV4L2RtYS1mZW5jZS5oIGIvaW5jbHVkZS9saW51eC9kbWEtZmVuY2Uu aAo+ID4gaW5kZXggNmZmYjRiMmM2MzcxNS4uZjRhMmFiMmIxYWU0NiAxMDA2NDQKPiA+IC0tLSBh L2luY2x1ZGUvbGludXgvZG1hLWZlbmNlLmgKPiA+ICsrKyBiL2luY2x1ZGUvbGludXgvZG1hLWZl bmNlLmgKPiA+IEBAIC0zMDcsNTYgKzMwNyw2IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGRtYV9m ZW5jZSAqZG1hX2ZlbmNlX2dldF9yY3Uoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCj4gPiAgICAg ICAgICAgICAgIHJldHVybiBOVUxMOwo+ID4gICB9Cj4gPgo+ID4gLS8qKgo+ID4gLSAqIGRtYV9m ZW5jZV9nZXRfcmN1X3NhZmUgIC0gYWNxdWlyZSBhIHJlZmVyZW5jZSB0byBhbiBSQ1UgdHJhY2tl ZCBmZW5jZQo+ID4gLSAqIEBmZW5jZXA6IHBvaW50ZXIgdG8gZmVuY2UgdG8gaW5jcmVhc2UgcmVm Y291bnQgb2YKPiA+IC0gKgo+ID4gLSAqIEZ1bmN0aW9uIHJldHVybnMgTlVMTCBpZiBubyByZWZj b3VudCBjb3VsZCBiZSBvYnRhaW5lZCwgb3IgdGhlIGZlbmNlLgo+ID4gLSAqIFRoaXMgZnVuY3Rp b24gaGFuZGxlcyBhY3F1aXJpbmcgYSByZWZlcmVuY2UgdG8gYSBmZW5jZSB0aGF0IG1heSBiZQo+ ID4gLSAqIHJlYWxsb2NhdGVkIHdpdGhpbiB0aGUgUkNVIGdyYWNlIHBlcmlvZCAoc3VjaCBhcyB3 aXRoIFNMQUJfVFlQRVNBRkVfQllfUkNVKSwKPiA+IC0gKiBzbyBsb25nIGFzIHRoZSBjYWxsZXIg aXMgdXNpbmcgUkNVIG9uIHRoZSBwb2ludGVyIHRvIHRoZSBmZW5jZS4KPiA+IC0gKgo+ID4gLSAq IEFuIGFsdGVybmF0aXZlIG1lY2hhbmlzbSBpcyB0byBlbXBsb3kgYSBzZXFsb2NrIHRvIHByb3Rl Y3QgYSBidW5jaCBvZgo+ID4gLSAqIGZlbmNlcywgc3VjaCBhcyB1c2VkIGJ5IHN0cnVjdCBkbWFf cmVzdi4gV2hlbiB1c2luZyBhIHNlcWxvY2ssCj4gPiAtICogdGhlIHNlcWxvY2sgbXVzdCBiZSB0 YWtlbiBiZWZvcmUgYW5kIGNoZWNrZWQgYWZ0ZXIgYSByZWZlcmVuY2UgdG8gdGhlCj4gPiAtICog ZmVuY2UgaXMgYWNxdWlyZWQgKGFzIHNob3duIGhlcmUpLgo+ID4gLSAqCj4gPiAtICogVGhlIGNh bGxlciBpcyByZXF1aXJlZCB0byBob2xkIHRoZSBSQ1UgcmVhZCBsb2NrLgo+ID4gLSAqLwo+ID4g LXN0YXRpYyBpbmxpbmUgc3RydWN0IGRtYV9mZW5jZSAqCj4gPiAtZG1hX2ZlbmNlX2dldF9yY3Vf c2FmZShzdHJ1Y3QgZG1hX2ZlbmNlIF9fcmN1ICoqZmVuY2VwKQo+ID4gLXsKPiA+IC0gICAgIGRv IHsKPiA+IC0gICAgICAgICAgICAgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7Cj4gPiAtCj4gPiAt ICAgICAgICAgICAgIGZlbmNlID0gcmN1X2RlcmVmZXJlbmNlKCpmZW5jZXApOwo+ID4gLSAgICAg ICAgICAgICBpZiAoIWZlbmNlKQo+ID4gLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOVUxM Owo+ID4gLQo+ID4gLSAgICAgICAgICAgICBpZiAoIWRtYV9mZW5jZV9nZXRfcmN1KGZlbmNlKSkK PiA+IC0gICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKPiA+IC0KPiA+IC0gICAgICAgICAg ICAgLyogVGhlIGF0b21pY19pbmNfbm90X3plcm8oKSBpbnNpZGUgZG1hX2ZlbmNlX2dldF9yY3Uo KQo+ID4gLSAgICAgICAgICAgICAgKiBwcm92aWRlcyBhIGZ1bGwgbWVtb3J5IGJhcnJpZXIgdXBv biBzdWNjZXNzIChzdWNoIGFzIG5vdykuCj4gPiAtICAgICAgICAgICAgICAqIFRoaXMgaXMgcGFp cmVkIHdpdGggdGhlIHdyaXRlIGJhcnJpZXIgZnJvbSBhc3NpZ25pbmcKPiA+IC0gICAgICAgICAg ICAgICogdG8gdGhlIF9fcmN1IHByb3RlY3RlZCBmZW5jZSBwb2ludGVyIHNvIHRoYXQgaWYgdGhh dAo+ID4gLSAgICAgICAgICAgICAgKiBwb2ludGVyIHN0aWxsIG1hdGNoZXMgdGhlIGN1cnJlbnQg ZmVuY2UsIHdlIGtub3cgd2UKPiA+IC0gICAgICAgICAgICAgICogaGF2ZSBzdWNjZXNzZnVsbHkg YWNxdWlyZSBhIHJlZmVyZW5jZSB0byBpdC4gSWYgaXQgbm8KPiA+IC0gICAgICAgICAgICAgICog bG9uZ2VyIG1hdGNoZXMsIHdlIGFyZSBob2xkaW5nIGEgcmVmZXJlbmNlIHRvIHNvbWUgb3RoZXIK PiA+IC0gICAgICAgICAgICAgICogcmVhbGxvY2F0ZWQgcG9pbnRlci4gVGhpcyBpcyBwb3NzaWJs ZSBpZiB0aGUgYWxsb2NhdG9yCj4gPiAtICAgICAgICAgICAgICAqIGlzIHVzaW5nIGEgZnJlZWxp c3QgbGlrZSBTTEFCX1RZUEVTQUZFX0JZX1JDVSB3aGVyZSB0aGUKPiA+IC0gICAgICAgICAgICAg ICogZmVuY2UgcmVtYWlucyB2YWxpZCBmb3IgdGhlIFJDVSBncmFjZSBwZXJpb2QsIGJ1dCBpdAo+ ID4gLSAgICAgICAgICAgICAgKiBtYXkgYmUgcmVhbGxvY2F0ZWQuIFdoZW4gdXNpbmcgc3VjaCBh bGxvY2F0b3JzLCB3ZSBhcmUKPiA+IC0gICAgICAgICAgICAgICogcmVzcG9uc2libGUgZm9yIGVu c3VyaW5nIHRoZSByZWZlcmVuY2Ugd2UgZ2V0IGlzIHRvCj4gPiAtICAgICAgICAgICAgICAqIHRo ZSByaWdodCBmZW5jZSwgYXMgYmVsb3cuCj4gPiAtICAgICAgICAgICAgICAqLwo+ID4gLSAgICAg ICAgICAgICBpZiAoZmVuY2UgPT0gcmN1X2FjY2Vzc19wb2ludGVyKCpmZW5jZXApKQo+ID4gLSAg ICAgICAgICAgICAgICAgICAgIHJldHVybiByY3VfcG9pbnRlcl9oYW5kb2ZmKGZlbmNlKTsKPiA+ IC0KPiA+IC0gICAgICAgICAgICAgZG1hX2ZlbmNlX3B1dChmZW5jZSk7Cj4gPiAtICAgICB9IHdo aWxlICgxKTsKPiA+IC19Cj4gPiAtCj4gPiAgICNpZmRlZiBDT05GSUdfTE9DS0RFUAo+ID4gICBi b29sIGRtYV9mZW5jZV9iZWdpbl9zaWduYWxsaW5nKHZvaWQpOwo+ID4gICB2b2lkIGRtYV9mZW5j ZV9lbmRfc2lnbmFsbGluZyhib29sIGNvb2tpZSk7Cj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9s aW51eC9kbWEtcmVzdi5oIGIvaW5jbHVkZS9saW51eC9kbWEtcmVzdi5oCj4gPiBpbmRleCA1NjJi ODg1Y2Y5YzNkLi5hMzhjMDIxZjM3OWFmIDEwMDY0NAo+ID4gLS0tIGEvaW5jbHVkZS9saW51eC9k bWEtcmVzdi5oCj4gPiArKysgYi9pbmNsdWRlL2xpbnV4L2RtYS1yZXN2LmgKPiA+IEBAIC0yNDgs NyArMjQ4LDkgQEAgZG1hX3Jlc3ZfZ2V0X2V4Y2xfdW5sb2NrZWQoc3RydWN0IGRtYV9yZXN2ICpv YmopCj4gPiAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwo+ID4KPiA+ICAgICAgIHJjdV9yZWFk X2xvY2soKTsKPiA+IC0gICAgIGZlbmNlID0gZG1hX2ZlbmNlX2dldF9yY3Vfc2FmZSgmb2JqLT5m ZW5jZV9leGNsKTsKPiA+ICsgICAgIGZlbmNlID0gcmN1X2RlcmVmZXJlbmNlKG9iai0+ZmVuY2Vf ZXhjbCk7Cj4gPiArICAgICBpZiAoZmVuY2UpCj4gPiArICAgICAgICAgICAgIGZlbmNlID0gZG1h X2ZlbmNlX2dldF9yY3UoZmVuY2UpOwo+ID4gICAgICAgcmN1X3JlYWRfdW5sb2NrKCk7Cj4gPgo+ ID4gICAgICAgcmV0dXJuIGZlbmNlOwo+Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2A57FC48BE6 for ; Thu, 10 Jun 2021 13:59:19 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id E734B613E9 for ; Thu, 10 Jun 2021 13:59:18 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E734B613E9 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=jlekstrand.net Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 354BB6ED6B; Thu, 10 Jun 2021 13:59:18 +0000 (UTC) Received: from mail-yb1-xb2b.google.com (mail-yb1-xb2b.google.com [IPv6:2607:f8b0:4864:20::b2b]) by gabe.freedesktop.org (Postfix) with ESMTPS id 239346ED72 for ; Thu, 10 Jun 2021 13:59:15 +0000 (UTC) Received: by mail-yb1-xb2b.google.com with SMTP id i4so40962718ybe.2 for ; Thu, 10 Jun 2021 06:59:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jlekstrand-net.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=vz88TG2t3wHyHeHSsfk4XrpWiwqZ6jeUeTjx+9bno9Q=; b=J2oDJRyUK6lsyWJdmXmHIRRIyctFK+q0ttIfn/P7XdwzBUeWVCGRRU7AXn395A/fWX uy+m5mGiOiabDoGhSQg7kySuwXeTqPIde4NgotHjAyENTHSzR4YvGo2v5JwnepDzVCGg twoA7Dx0/mOcl37gC6UJliBuDw9P9sE99ZxPi4wHpnrHhtAZtqHpBzJ2ILe+RPvC+bA3 PMuEu8FZaSpHV6s73VreAfqWqM3/OIcyB8e37mB7n+ieZAo9q3pl2HdiPKcjAjVx71ia hJP31TT3a9XDw7LxL6JG3ZuUruLzhjTYFL9FDqUEWak3d7PWie9ChinEQ2r3R101uw1F F0PA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=vz88TG2t3wHyHeHSsfk4XrpWiwqZ6jeUeTjx+9bno9Q=; b=S8tYWXEbHnfbz/I2yV9X157OCLIBqtaLRqqHCd/TrNfbMBydj95Ciuwe7cuxjVbGj+ WRxj+tvGqsm8CfTivXX11ChDIegGNj2mZWH4yczvJ2g4QnRT0zRfRpqVG5576t1eRQSP SzTt8Dqz18GzOGePsoPNvFpQB2o+pvkiv90QhjgKGafCaFP0LegYqarHmfaTM6DYpIbT Xn0L1UytjdHvGgDHaQzmGvTXrBd8F3FmA2DZJR+I10HvTSqbLGIktrakXfEDxPZn0Gta nOKKyvQYpUNw5knK5OaWvXBM040eNOSz0kKrJtUcnhPv4amdu4ykLyK15F4V3Ro3xGCt dgpg== X-Gm-Message-State: AOAM5318gq6268OxRIRaaKUVyOeAwuS0Em9qNml1Gtmwr9iQe5hDIkDy bn20Rh0unja/2ItTETJufwFog8RSwgEk80Z7IrKRYQ== X-Google-Smtp-Source: ABdhPJzoiTM4MToa9/DidIlMjXB/t1IsDNscu7OH2tmdnBFEzox2aTWugVcTtrXOdZGKIKcU2aMa/DqWtaf03O2D008= X-Received: by 2002:a25:a2c5:: with SMTP id c5mr7481369ybn.432.1623333554134; Thu, 10 Jun 2021 06:59:14 -0700 (PDT) MIME-Version: 1.0 References: <20210609212959.471209-1-jason@jlekstrand.net> <20210609212959.471209-6-jason@jlekstrand.net> In-Reply-To: From: Jason Ekstrand Date: Thu, 10 Jun 2021 08:59:03 -0500 Message-ID: Subject: Re: [PATCH 5/5] DONOTMERGE: dma-buf: Get rid of dma_fence_get_rcu_safe To: =?UTF-8?Q?Christian_K=C3=B6nig?= Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , Intel GFX , Matthew Auld , Maling list - DRI developers Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" On Thu, Jun 10, 2021 at 1:51 AM Christian K=C3=B6nig wrote: > > Am 09.06.21 um 23:29 schrieb Jason Ekstrand: > > This helper existed to handle the weird corner-cases caused by using > > SLAB_TYPESAFE_BY_RCU for backing dma_fence. Now that no one is using > > that anymore (i915 was the only real user), dma_fence_get_rcu is > > sufficient. The one slightly annoying thing we have to deal with here > > is that dma_fence_get_rcu_safe did an rcu_dereference as well as a > > SLAB_TYPESAFE_BY_RCU-safe dma_fence_get_rcu. This means each call site > > ends up being 3 lines instead of 1. > > That's an outright NAK. > > The loop in dma_fence_get_rcu_safe is necessary because the underlying > fence object can be replaced while taking the reference. Right. I had missed a bit of that when I first read through it. I see the need for the loop now. But there are some other tricky bits in there besides just the loop. > This is completely unrelated to SLAB_TYPESAFE_BY_RCU. See the > dma_fence_chain usage for reference. > > What you can remove is the sequence number handling in dma-buf. That > should make adding fences quite a bit quicker. I'll look at that and try to understand what's going on there. --Jason > Regards, > Christian. > > > > > Signed-off-by: Jason Ekstrand > > Cc: Daniel Vetter > > Cc: Christian K=C3=B6nig > > Cc: Matthew Auld > > Cc: Maarten Lankhorst > > --- > > drivers/dma-buf/dma-fence-chain.c | 8 ++-- > > drivers/dma-buf/dma-resv.c | 4 +- > > drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 4 +- > > drivers/gpu/drm/i915/i915_active.h | 4 +- > > drivers/gpu/drm/i915/i915_vma.c | 4 +- > > include/drm/drm_syncobj.h | 4 +- > > include/linux/dma-fence.h | 50 ----------------------= - > > include/linux/dma-resv.h | 4 +- > > 8 files changed, 23 insertions(+), 59 deletions(-) > > > > diff --git a/drivers/dma-buf/dma-fence-chain.c b/drivers/dma-buf/dma-fe= nce-chain.c > > index 7d129e68ac701..46dfc7d94d8ed 100644 > > --- a/drivers/dma-buf/dma-fence-chain.c > > +++ b/drivers/dma-buf/dma-fence-chain.c > > @@ -15,15 +15,17 @@ static bool dma_fence_chain_enable_signaling(struct= dma_fence *fence); > > * dma_fence_chain_get_prev - use RCU to get a reference to the previ= ous fence > > * @chain: chain node to get the previous node from > > * > > - * Use dma_fence_get_rcu_safe to get a reference to the previous fence= of the > > - * chain node. > > + * Use rcu_dereference and dma_fence_get_rcu to get a reference to the > > + * previous fence of the chain node. > > */ > > static struct dma_fence *dma_fence_chain_get_prev(struct dma_fence_ch= ain *chain) > > { > > struct dma_fence *prev; > > > > rcu_read_lock(); > > - prev =3D dma_fence_get_rcu_safe(&chain->prev); > > + prev =3D rcu_dereference(chain->prev); > > + if (prev) > > + prev =3D dma_fence_get_rcu(prev); > > rcu_read_unlock(); > > return prev; > > } > > diff --git a/drivers/dma-buf/dma-resv.c b/drivers/dma-buf/dma-resv.c > > index f26c71747d43a..cfe0db3cca292 100644 > > --- a/drivers/dma-buf/dma-resv.c > > +++ b/drivers/dma-buf/dma-resv.c > > @@ -376,7 +376,9 @@ int dma_resv_copy_fences(struct dma_resv *dst, stru= ct dma_resv *src) > > dst_list =3D NULL; > > } > > > > - new =3D dma_fence_get_rcu_safe(&src->fence_excl); > > + new =3D rcu_dereference(src->fence_excl); > > + if (new) > > + new =3D dma_fence_get_rcu(new); > > rcu_read_unlock(); > > > > src_list =3D dma_resv_shared_list(dst); > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c b/drivers/gpu/dr= m/amd/amdgpu/amdgpu_fence.c > > index 72d9b92b17547..0aeb6117f3893 100644 > > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c > > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c > > @@ -161,7 +161,9 @@ int amdgpu_fence_emit(struct amdgpu_ring *ring, str= uct dma_fence **f, > > struct dma_fence *old; > > > > rcu_read_lock(); > > - old =3D dma_fence_get_rcu_safe(ptr); > > + old =3D rcu_dereference(*ptr); > > + if (old) > > + old =3D dma_fence_get_rcu(old); > > rcu_read_unlock(); > > > > if (old) { > > diff --git a/drivers/gpu/drm/i915/i915_active.h b/drivers/gpu/drm/i915/= i915_active.h > > index d0feda68b874f..bd89cfc806ca5 100644 > > --- a/drivers/gpu/drm/i915/i915_active.h > > +++ b/drivers/gpu/drm/i915/i915_active.h > > @@ -103,7 +103,9 @@ i915_active_fence_get(struct i915_active_fence *act= ive) > > struct dma_fence *fence; > > > > rcu_read_lock(); > > - fence =3D dma_fence_get_rcu_safe(&active->fence); > > + fence =3D rcu_dereference(active->fence); > > + if (fence) > > + fence =3D dma_fence_get_rcu(fence); > > rcu_read_unlock(); > > > > return fence; > > diff --git a/drivers/gpu/drm/i915/i915_vma.c b/drivers/gpu/drm/i915/i91= 5_vma.c > > index 0f227f28b2802..ed0388d99197e 100644 > > --- a/drivers/gpu/drm/i915/i915_vma.c > > +++ b/drivers/gpu/drm/i915/i915_vma.c > > @@ -351,7 +351,9 @@ int i915_vma_wait_for_bind(struct i915_vma *vma) > > struct dma_fence *fence; > > > > rcu_read_lock(); > > - fence =3D dma_fence_get_rcu_safe(&vma->active.excl.fence)= ; > > + fence =3D rcu_dereference(vma->active.excl.fence); > > + if (fence) > > + fence =3D dma_fence_get_rcu(fence); > > rcu_read_unlock(); > > if (fence) { > > err =3D dma_fence_wait(fence, MAX_SCHEDULE_TIMEOU= T); > > diff --git a/include/drm/drm_syncobj.h b/include/drm/drm_syncobj.h > > index 6cf7243a1dc5e..6c45d52988bcc 100644 > > --- a/include/drm/drm_syncobj.h > > +++ b/include/drm/drm_syncobj.h > > @@ -105,7 +105,9 @@ drm_syncobj_fence_get(struct drm_syncobj *syncobj) > > struct dma_fence *fence; > > > > rcu_read_lock(); > > - fence =3D dma_fence_get_rcu_safe(&syncobj->fence); > > + fence =3D rcu_dereference(syncobj->fence); > > + if (fence) > > + fence =3D dma_fence_get_rcu(syncobj->fence); > > rcu_read_unlock(); > > > > return fence; > > diff --git a/include/linux/dma-fence.h b/include/linux/dma-fence.h > > index 6ffb4b2c63715..f4a2ab2b1ae46 100644 > > --- a/include/linux/dma-fence.h > > +++ b/include/linux/dma-fence.h > > @@ -307,56 +307,6 @@ static inline struct dma_fence *dma_fence_get_rcu(= struct dma_fence *fence) > > return NULL; > > } > > > > -/** > > - * dma_fence_get_rcu_safe - acquire a reference to an RCU tracked fen= ce > > - * @fencep: pointer to fence to increase refcount of > > - * > > - * Function returns NULL if no refcount could be obtained, or the fenc= e. > > - * This function handles acquiring a reference to a fence that may be > > - * reallocated within the RCU grace period (such as with SLAB_TYPESAFE= _BY_RCU), > > - * so long as the caller is using RCU on the pointer to the fence. > > - * > > - * An alternative mechanism is to employ a seqlock to protect a bunch = of > > - * fences, such as used by struct dma_resv. When using a seqlock, > > - * the seqlock must be taken before and checked after a reference to t= he > > - * fence is acquired (as shown here). > > - * > > - * The caller is required to hold the RCU read lock. > > - */ > > -static inline struct dma_fence * > > -dma_fence_get_rcu_safe(struct dma_fence __rcu **fencep) > > -{ > > - do { > > - struct dma_fence *fence; > > - > > - fence =3D rcu_dereference(*fencep); > > - if (!fence) > > - return NULL; > > - > > - if (!dma_fence_get_rcu(fence)) > > - continue; > > - > > - /* The atomic_inc_not_zero() inside dma_fence_get_rcu() > > - * provides a full memory barrier upon success (such as n= ow). > > - * This is paired with the write barrier from assigning > > - * to the __rcu protected fence pointer so that if that > > - * pointer still matches the current fence, we know we > > - * have successfully acquire a reference to it. If it no > > - * longer matches, we are holding a reference to some oth= er > > - * reallocated pointer. This is possible if the allocator > > - * is using a freelist like SLAB_TYPESAFE_BY_RCU where th= e > > - * fence remains valid for the RCU grace period, but it > > - * may be reallocated. When using such allocators, we are > > - * responsible for ensuring the reference we get is to > > - * the right fence, as below. > > - */ > > - if (fence =3D=3D rcu_access_pointer(*fencep)) > > - return rcu_pointer_handoff(fence); > > - > > - dma_fence_put(fence); > > - } while (1); > > -} > > - > > #ifdef CONFIG_LOCKDEP > > bool dma_fence_begin_signalling(void); > > void dma_fence_end_signalling(bool cookie); > > diff --git a/include/linux/dma-resv.h b/include/linux/dma-resv.h > > index 562b885cf9c3d..a38c021f379af 100644 > > --- a/include/linux/dma-resv.h > > +++ b/include/linux/dma-resv.h > > @@ -248,7 +248,9 @@ dma_resv_get_excl_unlocked(struct dma_resv *obj) > > return NULL; > > > > rcu_read_lock(); > > - fence =3D dma_fence_get_rcu_safe(&obj->fence_excl); > > + fence =3D rcu_dereference(obj->fence_excl); > > + if (fence) > > + fence =3D dma_fence_get_rcu(fence); > > rcu_read_unlock(); > > > > return fence; >