From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [RFC 1/8] dma-buf/fence: add fence_collection fences Date: Fri, 15 Apr 2016 10:02:54 +0200 Message-ID: <20160415080254.GQ2510@phenom.ffwll.local> References: <1460683781-22535-1-git-send-email-gustavo@padovan.org> <1460683781-22535-2-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-wm0-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id CE7396E021 for ; Fri, 15 Apr 2016 08:02:58 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id y144so3869264wmd.0 for ; Fri, 15 Apr 2016 01:02:58 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1460683781-22535-2-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: Gustavo Padovan Cc: marcheu@google.com, Daniel Stone , seanpaul@google.com, Daniel Vetter , Arve =?iso-8859-1?B?SGr4bm5lduVn?= , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Riley Andrews , m.chehab@samsung.com, Gustavo Padovan , John Harrison , laurent.pinchart@ideasonboard.com List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBBcHIgMTQsIDIwMTYgYXQgMDY6Mjk6MzRQTSAtMDcwMCwgR3VzdGF2byBQYWRvdmFu IHdyb3RlOgo+IEZyb206IEd1c3Rhdm8gUGFkb3ZhbiA8Z3VzdGF2by5wYWRvdmFuQGNvbGxhYm9y YS5jby51az4KPiAKPiBzdHJ1Y3QgZmVuY2VfY29sbGVjdGlvbiBpbmhlcml0cyBmcm9tIHN0cnVj dCBmZW5jZSBhbmQgY2FycmllcyBhCj4gY29sbGVjdGlvbiBvZiBmZW5jZXMgdGhhdCBuZWVkcyB0 byBiZSB3YWl0ZWQgdG9nZXRoZXIuCj4gCj4gSXQgaXMgdXNlZnVsIHRvIHRyYW5zbGF0ZSBhIHN5 bmNfZmlsZSB0byBhIGZlbmNlIHRvIHJlbW92ZSB0aGUgY29tcGxleGl0eQo+IG9mIGRlYWxpbmcg d2l0aCBzeW5jX2ZpbGVzIGZyb20gRFJNIGRyaXZlcnMuIFNvIGV2ZW4gaWYgdGhlcmUgYXJlIG1h bnkKPiBmZW5jZXMgaW4gdGhlIHN5bmNfZmlsZSB0aGF0IG5lZWRzIHRvIHdhaXRlZCBmb3IgYSBj b21taXQgdG8gaGFwcGVuCj4gZHJpdmVycyB3b3VsZCBvbmx5IHdvcnJ5IGFib3V0IGEgc3RhbmRh cmQgc3RydWN0IGZlbmNlLlRoYXQgbWVhbnMgdGhhdCBubwo+IGNoYW5nZXMgbmVlZGVkIHRvIGFu eSBkcml2ZXIgYmVzaWRlcyBzdXBwb3J0aW5nIGZlbmNlcy4KPiAKPiBmZW5jZV9jb2xsZWN0aW9u J3MgZmVuY2UgZG9lc24ndCBiZWxvbmcgdG8gYW55IHRpbWVsaW5lIGNvbnRleHQuCj4gCj4gU2ln bmVkLW9mZi1ieTogR3VzdGF2byBQYWRvdmFuIDxndXN0YXZvLnBhZG92YW5AY29sbGFib3JhLmNv LnVrPgo+IC0tLQo+ICBkcml2ZXJzL2RtYS1idWYvTWFrZWZpbGUgICAgICAgICAgIHwgICAyICst Cj4gIGRyaXZlcnMvZG1hLWJ1Zi9mZW5jZS1jb2xsZWN0aW9uLmMgfCAxMzggKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKwo+ICBkcml2ZXJzL2RtYS1idWYvZmVuY2UuYyAgICAg ICAgICAgIHwgICAyICstCj4gIGluY2x1ZGUvbGludXgvZmVuY2UtY29sbGVjdGlvbi5oICAgfCAg NTYgKysrKysrKysrKysrKysrCj4gIGluY2x1ZGUvbGludXgvZmVuY2UuaCAgICAgICAgICAgICAg fCAgIDIgKwo+ICA1IGZpbGVzIGNoYW5nZWQsIDE5OCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9u cygtKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9kbWEtYnVmL2ZlbmNlLWNvbGxlY3Rp b24uYwo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9saW51eC9mZW5jZS1jb2xsZWN0aW9u LmgKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL01ha2VmaWxlIGIvZHJpdmVycy9k bWEtYnVmL01ha2VmaWxlCj4gaW5kZXggNDMzMjVhMS4uMzBiODQ2NCAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2RtYS1idWYvTWFrZWZpbGUKPiArKysgYi9kcml2ZXJzL2RtYS1idWYvTWFrZWZpbGUK PiBAQCAtMSwzICsxLDMgQEAKPiAtb2JqLXkgOj0gZG1hLWJ1Zi5vIGZlbmNlLm8gcmVzZXJ2YXRp b24ubyBzZXFuby1mZW5jZS5vCj4gK29iai15IDo9IGRtYS1idWYubyBmZW5jZS5vIHJlc2VydmF0 aW9uLm8gc2Vxbm8tZmVuY2UubyBmZW5jZS1jb2xsZWN0aW9uLm8KPiAgb2JqLSQoQ09ORklHX1NZ TkNfRklMRSkJCSs9IHN5bmNfZmlsZS5vIHN5bmNfdGltZWxpbmUubyBzeW5jX2RlYnVnLm8KPiAg b2JqLSQoQ09ORklHX1NXX1NZTkMpCQkrPSBzd19zeW5jLm8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9kbWEtYnVmL2ZlbmNlLWNvbGxlY3Rpb24uYyBiL2RyaXZlcnMvZG1hLWJ1Zi9mZW5jZS1jb2xs ZWN0aW9uLmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLjhhNGVjYjAK PiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJpdmVycy9kbWEtYnVmL2ZlbmNlLWNvbGxlY3Rpb24u Ywo+IEBAIC0wLDAgKzEsMTM4IEBACj4gKy8qCj4gKyAqIGZlbmNlLWNvbGxlY3Rpb246IGFnZ3Jl Z2F0ZSBmZW5jZXMgdG8gYmUgd2FpdGVkIHRvZ2V0aGVyCj4gKyAqCj4gKyAqIENvcHlyaWdodCAo QykgMjAxNiBDb2xsYWJvcmEgTHRkCj4gKyAqIEF1dGhvcnM6Cj4gKyAqCUd1c3Rhdm8gUGFkb3Zh biA8Z3VzdGF2b0BwYWRvdmFuLm9yZz4KPiArICoKPiArICogVGhpcyBwcm9ncmFtIGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKPiArICog dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9u IDIgYXMgcHVibGlzaGVkIGJ5Cj4gKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCj4g KyAqCj4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAo+ICsgKiBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IKPiArICogRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvcgo+ICsgKiBtb3JlIGRldGFpbHMuCj4gKyAqLwo+ICsKPiArI2luY2x1ZGUg PGxpbnV4L2V4cG9ydC5oPgo+ICsjaW5jbHVkZSA8bGludXgvc2xhYi5oPgo+ICsjaW5jbHVkZSA8 bGludXgvZmVuY2UtY29sbGVjdGlvbi5oPgo+ICsKPiArc3RhdGljIGNvbnN0IGNoYXIgKmZlbmNl X2NvbGxlY3Rpb25fZ2V0X2RyaXZlcl9uYW1lKHN0cnVjdCBmZW5jZSAqZmVuY2UpCj4gK3sKPiAr CXN0cnVjdCBmZW5jZV9jb2xsZWN0aW9uICpjb2xsZWN0aW9uID0gdG9fZmVuY2VfY29sbGVjdGlv bihmZW5jZSk7Cj4gKwlzdHJ1Y3QgZmVuY2UgKmYgPSBjb2xsZWN0aW9uLT5mZW5jZXNbMF0uZmVu Y2U7Cj4gKwo+ICsJcmV0dXJuIGYtPm9wcy0+Z2V0X2RyaXZlcl9uYW1lKGZlbmNlKTsKPiArfQo+ ICsKPiArc3RhdGljIGNvbnN0IGNoYXIgKmZlbmNlX2NvbGxlY3Rpb25fZ2V0X3RpbWVsaW5lX25h bWUoc3RydWN0IGZlbmNlICpmZW5jZSkKPiArewo+ICsJcmV0dXJuICJubyBjb250ZXh0IjsKPiAr fQo+ICsKPiArc3RhdGljIGJvb2wgZmVuY2VfY29sbGVjdGlvbl9lbmFibGVfc2lnbmFsaW5nKHN0 cnVjdCBmZW5jZSAqZmVuY2UpCj4gK3sKPiArCXN0cnVjdCBmZW5jZV9jb2xsZWN0aW9uICpjb2xs ZWN0aW9uID0gdG9fZmVuY2VfY29sbGVjdGlvbihmZW5jZSk7Cj4gKwo+ICsJcmV0dXJuIGF0b21p Y19yZWFkKCZjb2xsZWN0aW9uLT5udW1fcGVuZGluZ19mZW5jZXMpOwo+ICt9Cj4gKwo+ICtzdGF0 aWMgYm9vbCBmZW5jZV9jb2xsZWN0aW9uX3NpZ25hbGVkKHN0cnVjdCBmZW5jZSAqZmVuY2UpCj4g K3sKPiArCXN0cnVjdCBmZW5jZV9jb2xsZWN0aW9uICpjb2xsZWN0aW9uID0gdG9fZmVuY2VfY29s bGVjdGlvbihmZW5jZSk7Cj4gKwo+ICsJcmV0dXJuIChhdG9taWNfcmVhZCgmY29sbGVjdGlvbi0+ bnVtX3BlbmRpbmdfZmVuY2VzKSA9PSAwKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgZmVuY2Vf Y29sbGVjdGlvbl9yZWxlYXNlKHN0cnVjdCBmZW5jZSAqZmVuY2UpCj4gK3sKPiArCXN0cnVjdCBm ZW5jZV9jb2xsZWN0aW9uICpjb2xsZWN0aW9uID0gdG9fZmVuY2VfY29sbGVjdGlvbihmZW5jZSk7 Cj4gKwlpbnQgaTsKPiArCj4gKwlmb3IgKGkgPSAwIDsgaSA8IGNvbGxlY3Rpb24tPm51bV9mZW5j ZXMgOyBpKyspIHsKPiArCQlmZW5jZV9yZW1vdmVfY2FsbGJhY2soY29sbGVjdGlvbi0+ZmVuY2Vz W2ldLmZlbmNlLAo+ICsJCQkJICAgICAgJmNvbGxlY3Rpb24tPmZlbmNlc1tpXS5jYik7Cj4gKwkJ ZmVuY2VfcHV0KGNvbGxlY3Rpb24tPmZlbmNlc1tpXS5mZW5jZSk7Cj4gKwl9Cj4gKwo+ICsJZmVu Y2VfZnJlZShmZW5jZSk7Cj4gK30KPiArCj4gK3N0YXRpYyBzaWduZWQgbG9uZyBmZW5jZV9jb2xs ZWN0aW9uX3dhaXQoc3RydWN0IGZlbmNlICpmZW5jZSwgYm9vbCBpbnRyLAo+ICsJCQkJCSBzaWdu ZWQgbG9uZyB0aW1lb3V0KQo+ICt7Cj4gKwlzdHJ1Y3QgZmVuY2VfY29sbGVjdGlvbiAqY29sbGVj dGlvbiA9IHRvX2ZlbmNlX2NvbGxlY3Rpb24oZmVuY2UpOwo+ICsJaW50IGk7Cj4gKwo+ICsJZm9y IChpID0gMCA7IGkgPCBjb2xsZWN0aW9uLT5udW1fZmVuY2VzIDsgaSsrKSB7Cj4gKwkJdGltZW91 dCA9IGZlbmNlX3dhaXQoY29sbGVjdGlvbi0+ZmVuY2VzW2ldLmZlbmNlLCBpbnRyKTsKPiArCQlp ZiAodGltZW91dCA8IDApCj4gKwkJCXJldHVybiB0aW1lb3V0Owo+ICsJfQo+ICsKPiArCXJldHVy biB0aW1lb3V0Owo+ICt9Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGZlbmNlX29wcyBmZW5j ZV9jb2xsZWN0aW9uX29wcyA9IHsKPiArCS5nZXRfZHJpdmVyX25hbWUgPSBmZW5jZV9jb2xsZWN0 aW9uX2dldF9kcml2ZXJfbmFtZSwKPiArCS5nZXRfdGltZWxpbmVfbmFtZSA9IGZlbmNlX2NvbGxl Y3Rpb25fZ2V0X3RpbWVsaW5lX25hbWUsCj4gKwkuZW5hYmxlX3NpZ25hbGluZyA9IGZlbmNlX2Nv bGxlY3Rpb25fZW5hYmxlX3NpZ25hbGluZywKPiArCS5zaWduYWxlZCA9IGZlbmNlX2NvbGxlY3Rp b25fc2lnbmFsZWQsCj4gKwkud2FpdCA9IGZlbmNlX2NvbGxlY3Rpb25fd2FpdCwKPiArCS5yZWxl YXNlID0gZmVuY2VfY29sbGVjdGlvbl9yZWxlYXNlLAo+ICt9Owo+ICsKPiArc3RhdGljIHZvaWQg Y29sbGVjdGlvbl9jaGVja19jYl9mdW5jKHN0cnVjdCBmZW5jZSAqZmVuY2UsIHN0cnVjdCBmZW5j ZV9jYiAqY2IpCj4gK3sKPiArCXN0cnVjdCBmZW5jZV9jb2xsZWN0aW9uX2NiICpmX2NiOwo+ICsJ c3RydWN0IGZlbmNlX2NvbGxlY3Rpb24gKmNvbGxlY3Rpb247Cj4gKwo+ICsJZl9jYiA9IGNvbnRh aW5lcl9vZihjYiwgc3RydWN0IGZlbmNlX2NvbGxlY3Rpb25fY2IsIGNiKTsKPiArCWNvbGxlY3Rp b24gPSBmX2NiLT5jb2xsZWN0aW9uOwo+ICsKPiArCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZj b2xsZWN0aW9uLT5udW1fcGVuZGluZ19mZW5jZXMpKQo+ICsJCWZlbmNlX3NpZ25hbCgmY29sbGVj dGlvbi0+YmFzZSk7Cj4gK30KPiArCj4gK3ZvaWQgZmVuY2VfY29sbGVjdGlvbl9hZGQoc3RydWN0 IGZlbmNlX2NvbGxlY3Rpb24gKmNvbGxlY3Rpb24sCj4gKwkJCSAgc3RydWN0IGZlbmNlICpmZW5j ZSkKPiArewo+ICsJaW50IG4gPSBjb2xsZWN0aW9uLT5udW1fZmVuY2VzOwo+ICsKPiArCWNvbGxl Y3Rpb24tPmZlbmNlc1tuXS5jb2xsZWN0aW9uID0gY29sbGVjdGlvbjsKPiArCWNvbGxlY3Rpb24t PmZlbmNlc1tuXS5mZW5jZSA9IGZlbmNlOwo+ICsKPiArCWlmIChmZW5jZV9hZGRfY2FsbGJhY2so ZmVuY2UsICZjb2xsZWN0aW9uLT5mZW5jZXNbbl0uY2IsCj4gKwkJCQkgY29sbGVjdGlvbl9jaGVj a19jYl9mdW5jKSkKPiArCQlyZXR1cm47Cj4gKwo+ICsJZmVuY2VfZ2V0KGZlbmNlKTsKPiArCj4g Kwljb2xsZWN0aW9uLT5udW1fZmVuY2VzKys7Cj4gKwlhdG9taWNfaW5jKCZjb2xsZWN0aW9uLT5u dW1fcGVuZGluZ19mZW5jZXMpOwo+ICt9CgpGb3IgdGhlIGludGVyZmFjZSBJIHRoaW5rIHdlIHNo b3VsZCBub3Qgc3BsaXQgaXQgaW50byBfaW5pdCBhbmQgX2FkZCAtIGl0CnNob3VsZG4ndCBiZSBh bGxvd2VkIHRvIGNoYW5nZSBhIGNvbGxlY3Rpb24gb25jZSBpdCdzIGNyZWF0ZWQuIFNvIHByb2Jh Ymx5CmNsZWFuZXIgaWYgd2UgYWRkIGFuIGFycmF5IG9mIGZlbmNlIHBvaW50ZXJzIHRvIF9pbml0 LgoKT3RoZXIgbml0cGljazogQWRkaW5nIHRoZSBjYWxsYmFjayBzaG91bGQgKEkgdGhpbmspIG9u bHkgYmUgZG9uZSBpbgotPmVuYWJsZV9zaWduYWxsaW5nLgoKRmluYWxseTogSGF2ZSB5b3UgbG9v a2VkIGludG8gc3RpdGNoaW5nIHRvZ2V0aGVyIGEgZmV3IHVuaXQgdGVzdHMgZm9yCmZlbmNlX2Nv bGxlY3Rpb24/CgpGZW5jZSBjb2xsZWN0aW9ucyBhbHNvIGJyZWFrIHRoZSBhc3N1bXB0aW9uIHRo YXQgZXZlcnkgZmVuY2UgaXMgb24gYQp0aW1lbGluZS4gZmVuY2VfbGF0ZXIgYW5kIGZlbmNlX2lz X2xhdGVyIG5lZWQgdG8gYmUgYWRqdXN0ZWQuIFdlIGFsc28gbmVlZAphIHNwZWNpYWwgY29sbGVj dGlvbiBjb250ZXh0IHRvIGZpbHRlciB0aGVzZSBvdXQuIFRoaXMgbWVhbnMKZmVuY2VfY29sbGVj dGlvbiBpc24ndCBwZXJmZWN0bHkgb3BhcXVlIGFic3RyYWN0aW9uLgo+ICsKPiArc3RydWN0IGZl bmNlX2NvbGxlY3Rpb24gKmZlbmNlX2NvbGxlY3Rpb25faW5pdChpbnQgbnVtX2ZlbmNlcykKPiAr ewo+ICsJc3RydWN0IGZlbmNlX2NvbGxlY3Rpb24gKmNvbGxlY3Rpb247Cj4gKwo+ICsJY29sbGVj dGlvbiA9IGt6YWxsb2Mob2Zmc2V0b2Yoc3RydWN0IGZlbmNlX2NvbGxlY3Rpb24sCj4gKwkJCQkg ICAgICBmZW5jZXNbbnVtX2ZlbmNlc10pLCBHRlBfS0VSTkVMKTsKPiArCWlmICghY29sbGVjdGlv bikKPiArCQlyZXR1cm4gTlVMTDsKPiArCj4gKwlzcGluX2xvY2tfaW5pdCgmY29sbGVjdGlvbi0+ bG9jayk7Cj4gKwlmZW5jZV9pbml0KCZjb2xsZWN0aW9uLT5iYXNlLCAmZmVuY2VfY29sbGVjdGlv bl9vcHMsICZjb2xsZWN0aW9uLT5sb2NrLAo+ICsJCSAgIEZFTkNFX05PX0NPTlRFWFQsIDApOwo+ ICsKPiArCXJldHVybiBjb2xsZWN0aW9uOwo+ICt9Cj4gK0VYUE9SVF9TWU1CT0woZmVuY2VfY29s bGVjdGlvbl9pbml0KTsKPiArCj4gK3ZvaWQgZmVuY2VfY29sbGVjdGlvbl9wdXQoc3RydWN0IGZl bmNlX2NvbGxlY3Rpb24gKmNvbGxlY3Rpb24pCj4gK3sKPiArCWZlbmNlX3B1dCgmY29sbGVjdGlv bi0+YmFzZSk7CgpOb3Qgc3VyZSBhIHNwZWNpYWxpemVkIF9wdXQgZnVuY3Rpb24gaXMgdXNlZnVs LCBJJ2QgbGVhdmUgaXQgb3V0LgoKPiArfQo+ICtFWFBPUlRfU1lNQk9MKGZlbmNlX2NvbGxlY3Rp b25fcHV0KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL2ZlbmNlLmMgYi9kcml2ZXJz L2RtYS1idWYvZmVuY2UuYwo+IGluZGV4IDdiMDVkYmUuLjQ4NmU5NWMgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9kbWEtYnVmL2ZlbmNlLmMKPiArKysgYi9kcml2ZXJzL2RtYS1idWYvZmVuY2UuYwo+ IEBAIC0zNSw3ICszNSw3IEBAIEVYUE9SVF9UUkFDRVBPSU5UX1NZTUJPTChmZW5jZV9lbWl0KTsK PiAgICogY29udGV4dCBvciBub3QuIE9uZSBkZXZpY2UgY2FuIGhhdmUgbXVsdGlwbGUgc2VwYXJh dGUgY29udGV4dHMsCj4gICAqIGFuZCB0aGV5J3JlIHVzZWQgaWYgc29tZSBlbmdpbmUgY2FuIHJ1 biBpbmRlcGVuZGVudGx5IG9mIGFub3RoZXIuCj4gICAqLwo+IC1zdGF0aWMgYXRvbWljX3QgZmVu Y2VfY29udGV4dF9jb3VudGVyID0gQVRPTUlDX0lOSVQoMCk7Cj4gK3N0YXRpYyBhdG9taWNfdCBm ZW5jZV9jb250ZXh0X2NvdW50ZXIgPSBBVE9NSUNfSU5JVCgxKTsKPiAgCj4gIC8qKgo+ICAgKiBm ZW5jZV9jb250ZXh0X2FsbG9jIC0gYWxsb2NhdGUgYW4gYXJyYXkgb2YgZmVuY2UgY29udGV4dHMK PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9mZW5jZS1jb2xsZWN0aW9uLmggYi9pbmNsdWRl L2xpbnV4L2ZlbmNlLWNvbGxlY3Rpb24uaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXgg MDAwMDAwMC4uYTc5ODkyNQo+IC0tLSAvZGV2L251bGwKPiArKysgYi9pbmNsdWRlL2xpbnV4L2Zl bmNlLWNvbGxlY3Rpb24uaAo+IEBAIC0wLDAgKzEsNTYgQEAKPiArLyoKPiArICogZmVuY2UtY29s bGVjdGlvbjogYWdncmVnYXRlcyBmZW5jZSB0byBiZSB3YWl0ZWQgdG9nZXRoZXIKPiArICoKPiAr ICogQ29weXJpZ2h0IChDKSAyMDE2IENvbGxhYm9yYSBMdGQKPiArICogQXV0aG9yczoKPiArICoJ R3VzdGF2byBQYWRvdmFuIDxndXN0YXZvQHBhZG92YW4ub3JnPgo+ICsgKgo+ICsgKiBUaGlzIHBy b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeSBpdAo+ICsgKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIHZlcnNpb24gMiBhcyBwdWJsaXNoZWQgYnkKPiArICogdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbi4KPiArICoKPiArICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCj4gKyAqIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU WSBvcgo+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yCj4gKyAqIG1vcmUgZGV0YWlscy4KPiArICovCj4g Kwo+ICsjaWZuZGVmIF9fTElOVVhfRkVOQ0VfQ09MTEVDVElPTl9ICj4gKyNkZWZpbmUgX19MSU5V WF9GRU5DRV9DT0xMRUNUSU9OX0gKPiArCj4gKyNpbmNsdWRlIDxsaW51eC9mZW5jZS5oPgo+ICsK PiArc3RydWN0IGZlbmNlX2NvbGxlY3Rpb25fY2Igewo+ICsJc3RydWN0IGZlbmNlX2NiIGNiOwo+ ICsJc3RydWN0IGZlbmNlICpmZW5jZTsKPiArCXN0cnVjdCBmZW5jZV9jb2xsZWN0aW9uICpjb2xs ZWN0aW9uOwo+ICt9Owo+ICsKPiArc3RydWN0IGZlbmNlX2NvbGxlY3Rpb24gewo+ICsJc3RydWN0 IGZlbmNlIGJhc2U7Cj4gKwo+ICsJc3BpbmxvY2tfdCBsb2NrOwo+ICsJc3RydWN0IGZlbmNlX2Ni IGZlbmNlX2NiOwo+ICsJYXRvbWljX3QgbnVtX3BlbmRpbmdfZmVuY2VzOwo+ICsJaW50IG51bV9m ZW5jZXM7Cj4gKwlzdHJ1Y3QgZmVuY2VfY29sbGVjdGlvbl9jYiBmZW5jZXNbXTsKPiArfTsKPiAr Cj4gKy8qKgo+ICsgKiB0b19mZW5jZV9jb2xsZWN0aW9uIC0gY2FzdCBhIGZlbmNlIHRvIGEgZmVu Y2VfY29sbGVjdGlvbgo+ICsgKiBAZmVuY2U6IGZlbmNlIHRvIGNhc3QgdG8gYSBmZW5jZV9jb2xs ZWN0aW9uCj4gKyAqCj4gKyAqIFJldHVybnMgTlVMTCBpZiB0aGUgZmVuY2UgaXMgbm90IGEgZmVu Y2VfY29sbGVjdGlvbiwKPiArICogb3IgdGhlIGZlbmNlX2NvbGxlY3Rpb24gb3RoZXJ3aXNlLgo+ ICsgKi8KPiArc3RhdGljIGlubGluZSBzdHJ1Y3QgZmVuY2VfY29sbGVjdGlvbiAqIHRvX2ZlbmNl X2NvbGxlY3Rpb24oc3RydWN0IGZlbmNlICpmZW5jZSkKPiArewoKS2VybmVsZG9jIGNsYWltcyBp dCwgYnV0IHlvdSBkb24ndCBjaGVjayB0aGF0IHRoZSBmZW5jZSBpcyBpbmRlZWQgYQpmZW5jZV9j b2xsZWN0aW9uLiBUaGF0J3MgdXN1YWxseSBkb25lIGJ5IGNvbXBhcmluZyB0aGUgb3BzIHBvaW50 ZXIuCgo+ICsJcmV0dXJuIGNvbnRhaW5lcl9vZihmZW5jZSwgc3RydWN0IGZlbmNlX2NvbGxlY3Rp b24sIGJhc2UpOwo+ICt9Cj4gKwo+ICtzdHJ1Y3QgZmVuY2VfY29sbGVjdGlvbiAqZmVuY2VfY29s bGVjdGlvbl9pbml0KGludCBudW1fZmVuY2VzKTsKPiArdm9pZCBmZW5jZV9jb2xsZWN0aW9uX2Fk ZChzdHJ1Y3QgZmVuY2VfY29sbGVjdGlvbiAqY29sbGVjdGlvbiwKPiArCQkJICBzdHJ1Y3QgZmVu Y2UgKmZlbmNlKTsKPiArdm9pZCBmZW5jZV9jb2xsZWN0aW9uX3B1dChzdHJ1Y3QgZmVuY2VfY29s bGVjdGlvbiAqY29sbGVjdGlvbik7Cj4gKwo+ICsjZW5kaWYgLyogX19MSU5VWF9GRU5DRV9DT0xM RUNUSU9OX0ggKi8KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9mZW5jZS5oIGIvaW5jbHVk ZS9saW51eC9mZW5jZS5oCj4gaW5kZXggMmIxNzY5OC4uMDIxNzBkZCAxMDA2NDQKPiAtLS0gYS9p bmNsdWRlL2xpbnV4L2ZlbmNlLmgKPiArKysgYi9pbmNsdWRlL2xpbnV4L2ZlbmNlLmgKPiBAQCAt MzAsNiArMzAsOCBAQAo+ICAjaW5jbHVkZSA8bGludXgvcHJpbnRrLmg+Cj4gICNpbmNsdWRlIDxs aW51eC9yY3VwZGF0ZS5oPgo+ICAKPiArI2RlZmluZSBGRU5DRV9OT19DT05URVhUIDAKPiArCj4g IHN0cnVjdCBmZW5jZTsKPiAgc3RydWN0IGZlbmNlX29wczsKPiAgc3RydWN0IGZlbmNlX2NiOwo+ IC0tIAo+IDIuNS41Cj4gCgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50 ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==