From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jason Ekstrand Subject: [PATCH 8/9] dma-buf/dma-fence: Add a mechanism for proxy fences Date: Fri, 11 Aug 2017 15:39:33 -0700 Message-ID: <1502491174-10913-9-git-send-email-jason.ekstrand@intel.com> References: <1502232369-19753-1-git-send-email-jason.ekstrand@intel.com> <1502491174-10913-1-git-send-email-jason.ekstrand@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pg0-x243.google.com (mail-pg0-x243.google.com [IPv6:2607:f8b0:400e:c05::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 652E46E76E for ; Fri, 11 Aug 2017 22:39:57 +0000 (UTC) Received: by mail-pg0-x243.google.com with SMTP id u185so4058607pgb.0 for ; Fri, 11 Aug 2017 15:39:57 -0700 (PDT) In-Reply-To: <1502491174-10913-1-git-send-email-jason.ekstrand@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Jason Ekstrand List-Id: dri-devel@lists.freedesktop.org RnJvbTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CgpQcm94eSBmZW5j ZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHBsYWNlLWhvbGRlciBmZW5jZSB3aGljaCB5b3UgY2Fu CmxhdGVyIGFzc2lnbiB0byB0aGUgInJlYWwiIGZlbmNlIGF0IHdoaWNoIHBvaW50IHRoZSB0d28g bG9vawppbmRpc3Rpbmd1aXNoYWJsZSB0byBhbnlvbmUgb3RoZXIgdGhhbiB0aGUgZHJpdmVyIHdo aWNoIGNyZWF0ZWQgdGhlCnJlYWwgZmVuY2UuICBUaGVzZSBzaG91bGQgYmUgdXNlZCB3aXRoIGNh cmUgYXMgaXQgaXMgdGhlIHJlc3BvbnNpYmlsaXR5Cm9mIHByb3h5IGZlbmNlcyBjcmVhdG9yIHRv IGVuc3VyZSB0aGF0IGl0IGV2ZW50dWFsbHkgZ2V0cyBhc3NpZ25lZCBhCnJlYWwgZmVuY2Ugc28g aXQgZ2V0cyBzaWduYWxlZC4KClNpZ25lZC1vZmYtYnk6IEphc29uIEVrc3RyYW5kIDxqYXNvbkBq bGVrc3RyYW5kLm5ldD4KLS0tCiBkcml2ZXJzL2RtYS1idWYvTWFrZWZpbGUgICAgICAgICAgfCAg IDQgKy0KIGRyaXZlcnMvZG1hLWJ1Zi9kbWEtZmVuY2UtcHJveHkuYyB8IDE4NiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS9saW51eC9kbWEtZmVuY2UtcHJv eHkuaCAgIHwgIDI1ICsrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDIxNCBpbnNlcnRpb25zKCspLCAx IGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9kbWEtYnVmL2RtYS1mZW5j ZS1wcm94eS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9saW51eC9kbWEtZmVuY2UtcHJv eHkuaAoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hLWJ1Zi9NYWtlZmlsZSBiL2RyaXZlcnMvZG1h LWJ1Zi9NYWtlZmlsZQppbmRleCBjMzNiZjg4Li5lNDY4MjE1IDEwMDY0NAotLS0gYS9kcml2ZXJz L2RtYS1idWYvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9kbWEtYnVmL01ha2VmaWxlCkBAIC0xLDMg KzEsNSBAQAotb2JqLXkgOj0gZG1hLWJ1Zi5vIGRtYS1mZW5jZS5vIGRtYS1mZW5jZS1hcnJheS5v IHJlc2VydmF0aW9uLm8gc2Vxbm8tZmVuY2Uubworb2JqLXkgOj0gZG1hLWJ1Zi5vIFwKKwlkbWEt ZmVuY2UubyBkbWEtZmVuY2UtYXJyYXkubyBkbWEtZmVuY2UtcHJveHkubyBcCisJcmVzZXJ2YXRp b24ubyBzZXFuby1mZW5jZS5vCiBvYmotJChDT05GSUdfU1lOQ19GSUxFKQkJKz0gc3luY19maWxl Lm8KIG9iai0kKENPTkZJR19TV19TWU5DKQkJKz0gc3dfc3luYy5vIHN5bmNfZGVidWcubwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL2RtYS1mZW5jZS1wcm94eS5jIGIvZHJpdmVycy9kbWEt YnVmL2RtYS1mZW5jZS1wcm94eS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjYxYmY4ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2RtYS1idWYvZG1hLWZlbmNlLXBy b3h5LmMKQEAgLTAsMCArMSwxODYgQEAKKy8qCisgKiBkbWEtZmVuY2UtcHJveHk6IHBsYWNlaG9s ZGVyIHVuc2lnbmFsZWQgZmVuY2UKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSW50ZWwgQ29y cG9yYXRpb24KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICogdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMgcHVibGlzaGVkIGJ5Cisg KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9V VAorICogQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Yg TUVSQ0hBTlRBQklMSVRZIG9yCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g IFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yCisgKiBtb3JlIGRldGFpbHMu CisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2RtYS1mZW5jZS5oPgorI2luY2x1ZGUgPGxpbnV4L2V4 cG9ydC5oPgorI2luY2x1ZGUgPGxpbnV4L2lycV93b3JrLmg+CisjaW5jbHVkZSA8bGludXgvc2xh Yi5oPgorCitzdHJ1Y3QgZG1hX2ZlbmNlX3Byb3h5IHsKKwlzdHJ1Y3QgZG1hX2ZlbmNlIGJhc2U7 CisJc3BpbmxvY2tfdCBsb2NrOworCisJY29uc3QgY2hhciAqZHJpdmVyX25hbWU7CisJdm9pZCAq dGFnOworCisJc3RydWN0IGRtYV9mZW5jZSAqcmVhbDsKKwlzdHJ1Y3QgZG1hX2ZlbmNlX2NiIGNi OworCXN0cnVjdCBpcnFfd29yayB3b3JrOworfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKnByb3h5 X2dldF9kcml2ZXJfbmFtZShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKK3sKKwlzdHJ1Y3QgZG1h X2ZlbmNlX3Byb3h5ICpwID0gY29udGFpbmVyX29mKGZlbmNlLCB0eXBlb2YoKnApLCBiYXNlKTsK KworCXJldHVybiBwLT5yZWFsID8gcC0+cmVhbC0+b3BzLT5nZXRfZHJpdmVyX25hbWUocC0+cmVh bCkgOiBwLT5kcml2ZXJfbmFtZTsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKnByb3h5X2dldF90 aW1lbGluZV9uYW1lKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQoreworCXN0cnVjdCBkbWFfZmVu Y2VfcHJveHkgKnAgPSBjb250YWluZXJfb2YoZmVuY2UsIHR5cGVvZigqcCksIGJhc2UpOworCisJ cmV0dXJuIHAtPnJlYWwgPyBwLT5yZWFsLT5vcHMtPmdldF90aW1lbGluZV9uYW1lKHAtPnJlYWwp IDogInVuc2V0IjsKK30KKworc3RhdGljIHZvaWQgcHJveHlfaXJxX3dvcmsoc3RydWN0IGlycV93 b3JrICp3b3JrKQoreworCXN0cnVjdCBkbWFfZmVuY2VfcHJveHkgKnAgPSBjb250YWluZXJfb2Yo d29yaywgdHlwZW9mKCpwKSwgd29yayk7CisKKwlkbWFfZmVuY2Vfc2lnbmFsKCZwLT5iYXNlKTsK KwlkbWFfZmVuY2VfcHV0KCZwLT5iYXNlKTsKK30KKworc3RhdGljIHZvaWQgcHJveHlfY2FsbGJh Y2soc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsIHN0cnVjdCBkbWFfZmVuY2VfY2IgKmNiKQorewor CXN0cnVjdCBkbWFfZmVuY2VfcHJveHkgKnAgPSBjb250YWluZXJfb2YoY2IsIHR5cGVvZigqcCks IGNiKTsKKworCS8qIGJld2FyZSB0aGUgYWxsZWdlZCBzcGlubG9jayBpbnZlcnNpb24gKi8KKwlp cnFfd29ya19xdWV1ZSgmcC0+d29yayk7Cit9CisKK3N0YXRpYyBib29sIHByb3h5X2VuYWJsZV9z aWduYWxpbmcoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCit7CisJc3RydWN0IGRtYV9mZW5jZV9w cm94eSAqcCA9IGNvbnRhaW5lcl9vZihmZW5jZSwgdHlwZW9mKCpwKSwgYmFzZSk7CisKKwlpZiAo IXAtPnJlYWwpCisJCXJldHVybiB0cnVlOworCisJaWYgKGRtYV9mZW5jZV9hZGRfY2FsbGJhY2so cC0+cmVhbCwgJnAtPmNiLCBwcm94eV9jYWxsYmFjaykpCisJCXJldHVybiBmYWxzZTsKKworCWRt YV9mZW5jZV9nZXQoZmVuY2UpOworCXJldHVybiB0cnVlOworfQorCitzdGF0aWMgYm9vbCBwcm94 eV9zaWduYWxlZChzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKK3sKKwlzdHJ1Y3QgZG1hX2ZlbmNl X3Byb3h5ICpwID0gY29udGFpbmVyX29mKGZlbmNlLCB0eXBlb2YoKnApLCBiYXNlKTsKKworCXJl dHVybiBwLT5yZWFsID8gZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKHAtPnJlYWwpIDogZmFsc2U7Cit9 CisKK3N0YXRpYyB2b2lkIHByb3h5X3JlbGVhc2Uoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCit7 CisJc3RydWN0IGRtYV9mZW5jZV9wcm94eSAqcCA9IGNvbnRhaW5lcl9vZihmZW5jZSwgdHlwZW9m KCpwKSwgYmFzZSk7CisKKwlpZiAoIXAtPnJlYWwpCisJCWRtYV9mZW5jZV9zaWduYWwoJnAtPmJh c2UpOworCisJZG1hX2ZlbmNlX3B1dChwLT5yZWFsKTsKKwlkbWFfZmVuY2VfZnJlZSgmcC0+YmFz ZSk7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZG1hX2ZlbmNlX29wcyBkbWFfZmVuY2VfcHJv eHlfb3BzID0geworCS5nZXRfZHJpdmVyX25hbWUgPSBwcm94eV9nZXRfZHJpdmVyX25hbWUsCisJ LmdldF90aW1lbGluZV9uYW1lID0gcHJveHlfZ2V0X3RpbWVsaW5lX25hbWUsCisJLmVuYWJsZV9z aWduYWxpbmcgPSBwcm94eV9lbmFibGVfc2lnbmFsaW5nLAorCS5zaWduYWxlZCA9IHByb3h5X3Np Z25hbGVkLAorCS53YWl0ID0gZG1hX2ZlbmNlX2RlZmF1bHRfd2FpdCwKKwkucmVsZWFzZSA9IHBy b3h5X3JlbGVhc2UsCit9OworCisvKioKKyAqIGRtYV9mZW5jZV9wcm95X2NyZWF0ZSAtIENyZWF0 ZSBhbiB1bnNldCBwcm94eSBkbWEtZmVuY2UKKyAqIEBkcml2ZXJfbmFtZTogVGhlIGRyaXZlciBu YW1lIHRvIHJlcG9ydDsgbXVzdCBvdXRsaXZlIHRoZSBmZW5jZQorICogQHRhZzogQSBwb2ludGVy IHdoaWNoIHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIGNyZWF0b3IKKyAqLworc3RydWN0IGRtYV9m ZW5jZSAqZG1hX2ZlbmNlX2NyZWF0ZV9wcm94eShjb25zdCBjaGFyICpkcml2ZXJfbmFtZSwgdm9p ZCAqdGFnKQoreworCXN0cnVjdCBkbWFfZmVuY2VfcHJveHkgKnA7CisKKwlwID0ga3phbGxvYyhz aXplb2YoKnApLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXApCisJCXJldHVybiBOVUxMOworCisJcC0+ ZHJpdmVyX25hbWUgPSBkcml2ZXJfbmFtZTsKKwlwLT50YWcgPSB0YWc7CisJc3Bpbl9sb2NrX2lu aXQoJnAtPmxvY2spOworCWRtYV9mZW5jZV9pbml0KCZwLT5iYXNlLCAmZG1hX2ZlbmNlX3Byb3h5 X29wcywgJnAtPmxvY2ssIDAsIDApOworCWluaXRfaXJxX3dvcmsoJnAtPndvcmssIHByb3h5X2ly cV93b3JrKTsKKworCXJldHVybiAmcC0+YmFzZTsKK30KK0VYUE9SVF9TWU1CT0woZG1hX2ZlbmNl X2NyZWF0ZV9wcm94eSk7CisKK3N0YXRpYyBib29sIGRtYV9mZW5jZV9pc19wcm94eShzdHJ1Y3Qg ZG1hX2ZlbmNlICpmZW5jZSkKK3sKKwlyZXR1cm4gZmVuY2UtPm9wcyA9PSAmZG1hX2ZlbmNlX3By b3h5X29wczsKK30KKworLyoqCisgKiBkbWFfZmVuY2VfaXNfcHJveHlfdGFnZ2VkIC0gaWRlbnRp ZnkgYSBwcm94eSBmZW5jZQorICogQGZlbmNlOiBUaGUgZmVuY2UgdG8gaWRlbnRpZnkKKyAqIEB0 YWc6IFRoZSB0YWcgcG9pbnRlciBwcm92aWRlZCB0byBkbWFfZmVuY2VfY3JlYXRlX3Byb3h5Cisg KgorICogVGhpcyByZXR1cm5zIHRydWUgaWYgdGhpcyBpcyBhIHByb3h5IGZlbmNlIHRhZyBpcyB0 aGUgc2FtZSBwb2ludGVyIGFzCisgKiB0aGUgdGFnIHByb3ZpZGVkIHRvIGRtYV9mZW5jZV9jcmVh dGVfcHJveHkuCisgKi8KK2Jvb2wgZG1hX2ZlbmNlX2lzX3Byb3h5X3RhZ2dlZChzdHJ1Y3QgZG1h X2ZlbmNlICpmZW5jZSwgdm9pZCAqdGFnKQoreworCXN0cnVjdCBkbWFfZmVuY2VfcHJveHkgKnAg PSBjb250YWluZXJfb2YoZmVuY2UsIHR5cGVvZigqcCksIGJhc2UpOworCisJaWYgKCFkbWFfZmVu Y2VfaXNfcHJveHkoZmVuY2UpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlyZXR1cm4gcC0+dGFnID09 IHRhZzsKK30KK0VYUE9SVF9TWU1CT0woZG1hX2ZlbmNlX2lzX3Byb3h5X3RhZ2dlZCk7CisKKy8q KgorICogZG1hX2ZlbmNlX3Byb3h5X2Fzc2lnbiAtIGFzc2lnbiBhIGZlbmNlIHRvIGEgcHJveHkg ZmVuY2UKKyAqIEBwcm94eTogVGhlIHByb3h5IGZlbmNlCisgKiBAcmVhbDogVGhlIHJlYWwgZmVu Y2UgdG8gYXNzaWduIHRvIHByb3h5CisgKgorICogVGhpcyBhc3NpZ25zIHRoZSBnaXZlbiByZWFs IGZlbmNlIHRvIHRoZSBwcm94eSBmZW5jZS4gIEZyb20gdGhpcyBwb2ludAorICogZm9yd2FyZCwg dGhlIHByb3h5IGZlbmNlIHdpbGwgYmUgYWxtb3N0IGluZGlzdGluZ3Vpc2hhYmxlIGZyb20gdGhl IHJlYWwKKyAqIGZlbmNlLiAgSXQgd2lsbCByZXBvcnQgdGhlIHNhbWUgZHJpdmVyIGFuZCB0aW1l bGluZSBuYW1lcyBhbmQgd2lsbAorICogc2lnbmFsIHdoZW4gdGhlIHJlYWwgZmVuY2Ugc2lnbmFs cy4gIElmIHRoZSByZWFsIGZlbmNlIGlzIGFscmVhZHkKKyAqIHNpZ25hbGVkIHdoZW4gdGhpcyBm dW5jdGlvbiBpcyBjYWxsZWQsIGl0IHdpbGwgc2lnbmFsIGFzIHNvb24gYXMgaXQgaGFzCisgKiBh bnkgbGlzdGVuZXJzLCBwb3NzaWJseSBpbW1lZGlhdGVseS4KKyAqLwordm9pZCBkbWFfZmVuY2Vf cHJveHlfYXNzaWduKHN0cnVjdCBkbWFfZmVuY2UgKnByb3h5LCBzdHJ1Y3QgZG1hX2ZlbmNlICpy ZWFsKQoreworCXN0cnVjdCBkbWFfZmVuY2VfcHJveHkgKnAgPSBjb250YWluZXJfb2YocHJveHks IHR5cGVvZigqcCksIGJhc2UpOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlCVUdfT04oIWRt YV9mZW5jZV9pc19wcm94eShwcm94eSkpOworCUJVR19PTihwLT5yZWFsKTsKKworCXNwaW5fbG9j a19pcnFzYXZlKHAtPmJhc2UubG9jaywgZmxhZ3MpOworCisJcC0+cmVhbCA9IGRtYV9mZW5jZV9n ZXQocmVhbCk7CisKKwlpZiAodGVzdF9iaXQoRE1BX0ZFTkNFX0ZMQUdfRU5BQkxFX1NJR05BTF9C SVQsICZwLT5iYXNlLmZsYWdzKSkgeworCQlpZiAoZG1hX2ZlbmNlX2FkZF9jYWxsYmFjayhyZWFs LCAmcC0+Y2IsIHByb3h5X2NhbGxiYWNrKSkKKwkJCWRtYV9mZW5jZV9zaWduYWxfbG9ja2VkKCZw LT5iYXNlKTsKKwkJZWxzZQorCQkJZG1hX2ZlbmNlX2dldCgmcC0+YmFzZSk7CisJfSBlbHNlIGlm IChkbWFfZmVuY2VfaXNfc2lnbmFsZWQocmVhbCkpIHsKKwkJZG1hX2ZlbmNlX3NpZ25hbF9sb2Nr ZWQoJnAtPmJhc2UpOworCX0KKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUocC0+YmFzZS5sb2Nr LCBmbGFncyk7Cit9CitFWFBPUlRfU1lNQk9MKGRtYV9mZW5jZV9wcm94eV9hc3NpZ24pOwpkaWZm IC0tZ2l0IGEvaW5jbHVkZS9saW51eC9kbWEtZmVuY2UtcHJveHkuaCBiL2luY2x1ZGUvbGludXgv ZG1hLWZlbmNlLXByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTc3 YTUxNjUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2xpbnV4L2RtYS1mZW5jZS1wcm94eS5o CkBAIC0wLDAgKzEsMjUgQEAKKy8qCisgKiBkbWEtZmVuY2UtcHJveHk6IGFsbG93cyB3YWl0aW5n IHVwb24gdW5zZXQgZmVuY2VzCisgKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEludGVsIENvcnBv cmF0aW9uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzIHB1Ymxpc2hlZCBieQorICog dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQK KyAqIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1F UkNIQU5UQUJJTElUWSBvcgorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvcgorICogbW9yZSBkZXRhaWxzLgor ICovCisKKyNpZm5kZWYgX19MSU5VWF9ETUFfRkVOQ0VfUFJPWFlfSAorI2RlZmluZSBfX0xJTlVY X0RNQV9GRU5DRV9QUk9YWV9ICisKKyNpbmNsdWRlIDxsaW51eC9kbWEtZmVuY2UuaD4KKworc3Ry dWN0IGRtYV9mZW5jZSAqZG1hX2ZlbmNlX2NyZWF0ZV9wcm94eShjb25zdCBjaGFyICpkcml2ZXJf bmFtZSwgdm9pZCAqdGFnKTsKK2Jvb2wgZG1hX2ZlbmNlX2lzX3Byb3h5X3RhZ2dlZChzdHJ1Y3Qg ZG1hX2ZlbmNlICpmZW5jZSwgdm9pZCAqdGFnKTsKK3ZvaWQgZG1hX2ZlbmNlX3Byb3h5X2Fzc2ln bihzdHJ1Y3QgZG1hX2ZlbmNlICpwcm94eSwgc3RydWN0IGRtYV9mZW5jZSAqcmVhbCk7CisKKyNl bmRpZiAvKiBfX0xJTlVYX0RNQV9GRU5DRV9QUk9YWV9IICovCi0tIAoyLjUuMC40MDAuZ2ZmODZm YWYKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1k ZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=