From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulina Szubarczyk Subject: [PATCH v7 1/2] libs/gnttab: introduce grant copy interface Date: Wed, 14 Sep 2016 21:10:02 +0200 Message-ID: <1473880203-4360-2-git-send-email-paulinaszubarczyk@gmail.com> References: <1473880203-4360-1-git-send-email-paulinaszubarczyk@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bkFZu-0007uS-JA for xen-devel@lists.xenproject.org; Wed, 14 Sep 2016 19:10:38 +0000 Received: by mail-lf0-f68.google.com with SMTP id s64so1050533lfs.2 for ; Wed, 14 Sep 2016 12:10:36 -0700 (PDT) In-Reply-To: <1473880203-4360-1-git-send-email-paulinaszubarczyk@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: sstabellini@kernel.org, wei.liu2@citrix.com, Paulina Szubarczyk , ian.jackson@eu.citrix.com, qemu-devel@nongnu.org, david.vrabel@citrix.com, anthony.perard@citrix.com, roger.pau@citrix.com List-Id: xen-devel@lists.xenproject.org SW4gYSBsaW51eCBwYXJ0IGFuIGlvY3RsKGdudGRldiwgSU9DVExfR05UREVWX0dSQU5UX0NPUFks IC4uKQpzeXN0ZW0gY2FsbCBpcyBpbnZva2VkLiBJbiBtaW5pLW9zIHRoZSBvcGVyYXRpb24gaXMg eWV0IG5vdAppbXBsZW1lbnRlZC4gRm9yIHRoZSBPU3MgdGhhdCBkb2VzIG5vdCBpbXBsZW1lbnQg Z250dGFiIHRoZQpjYWxsIG9mIHRoZSBncmFudCBjb3B5IG9wZXJhdGlvbiBjYXVzZXMgYWJvcnQu CgpTaWduZWQtb2ZmLWJ5OiBQYXVsaW5hIFN6dWJhcmN6eWsgPHBhdWxpbmFzenViYXJjenlrQGdt YWlsLmNvbT4KUmV2aWV3ZWQtYnk6IERhdmlkIFZyYWJlbCA8ZGF2aWQudnJhYmVsQGNpdHJpeC5j b20+Ci0tLQogdG9vbHMvaW5jbHVkZS94ZW4tc3lzL0xpbnV4L2dudGRldi5oICB8IDIxICsrKysr KysrKysKIHRvb2xzL2xpYnMvZ250dGFiL01ha2VmaWxlICAgICAgICAgICAgfCAgMiArLQogdG9v bHMvbGlicy9nbnR0YWIvZ250dGFiX2NvcmUuYyAgICAgICB8ICA2ICsrKwogdG9vbHMvbGlicy9n bnR0YWIvZ250dGFiX3VuaW1wLmMgICAgICB8ICA2ICsrKwogdG9vbHMvbGlicy9nbnR0YWIvaW5j bHVkZS94ZW5nbnR0YWIuaCB8IDI4ICsrKysrKysrKysrKysKIHRvb2xzL2xpYnMvZ250dGFiL2xp YnhlbmdudHRhYi5tYXAgICAgfCAgNSArKysKIHRvb2xzL2xpYnMvZ250dGFiL2xpbnV4LmMgICAg ICAgICAgICAgfCA3NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogdG9vbHMv bGlicy9nbnR0YWIvbWluaW9zLmMgICAgICAgICAgICB8ICA2ICsrKwogdG9vbHMvbGlicy9nbnR0 YWIvcHJpdmF0ZS5oICAgICAgICAgICB8ICA0ICsrCiA5IGZpbGVzIGNoYW5nZWQsIDE1NCBpbnNl cnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvaW5jbHVkZS94ZW4t c3lzL0xpbnV4L2dudGRldi5oIGIvdG9vbHMvaW5jbHVkZS94ZW4tc3lzL0xpbnV4L2dudGRldi5o CmluZGV4IGNhZjZmYjQuLjBjYTA3YzkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2luY2x1ZGUveGVuLXN5 cy9MaW51eC9nbnRkZXYuaAorKysgYi90b29scy9pbmNsdWRlL3hlbi1zeXMvTGludXgvZ250ZGV2 LmgKQEAgLTE0Nyw0ICsxNDcsMjUgQEAgc3RydWN0IGlvY3RsX2dudGRldl91bm1hcF9ub3RpZnkg ewogLyogU2VuZCBhbiBpbnRlcnJ1cHQgb24gdGhlIGluZGljYXRlZCBldmVudCBjaGFubmVsICov CiAjZGVmaW5lIFVOTUFQX05PVElGWV9TRU5EX0VWRU5UIDB4MgogCitzdHJ1Y3QgaW9jdGxfZ250 ZGV2X2dyYW50X2NvcHlfc2VnbWVudCB7CisgICAgdW5pb24geworICAgICAgICB2b2lkICp2aXJ0 OworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgdWludDMyX3QgcmVmOworICAgICAgICAg ICAgdWludDE2X3Qgb2Zmc2V0OworICAgICAgICAgICAgdWludDE2X3QgZG9taWQ7CisgICAgICAg IH0gZm9yZWlnbjsKKyAgICB9IHNvdXJjZSwgZGVzdDsKKyAgICB1aW50MTZfdCBsZW47CisgICAg dWludDE2X3QgZmxhZ3M7CisgICAgaW50MTZfdCBzdGF0dXM7Cit9OworCisjZGVmaW5lIElPQ1RM X0dOVERFVl9HUkFOVF9DT1BZIFwKK19JT0MoX0lPQ19OT05FLCAnRycsIDgsIHNpemVvZihzdHJ1 Y3QgaW9jdGxfZ250ZGV2X2dyYW50X2NvcHkpKQorc3RydWN0IGlvY3RsX2dudGRldl9ncmFudF9j b3B5IHsKKyAgICB1bnNpZ25lZCBpbnQgY291bnQ7CisgICAgc3RydWN0IGlvY3RsX2dudGRldl9n cmFudF9jb3B5X3NlZ21lbnQgKnNlZ21lbnRzOworfTsKKwogI2VuZGlmIC8qIF9fTElOVVhfUFVC TElDX0dOVERFVl9IX18gKi8KZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnMvZ250dGFiL01ha2VmaWxl IGIvdG9vbHMvbGlicy9nbnR0YWIvTWFrZWZpbGUKaW5kZXggYWY2NDU0Mi4uOTVjMmNkOCAxMDA2 NDQKLS0tIGEvdG9vbHMvbGlicy9nbnR0YWIvTWFrZWZpbGUKKysrIGIvdG9vbHMvbGlicy9nbnR0 YWIvTWFrZWZpbGUKQEAgLTIsNyArMiw3IEBAIFhFTl9ST09UID0gJChDVVJESVIpLy4uLy4uLy4u CiBpbmNsdWRlICQoWEVOX1JPT1QpL3Rvb2xzL1J1bGVzLm1rCiAKIE1BSk9SICAgID0gMQotTUlO T1IgICAgPSAwCitNSU5PUiAgICA9IDEKIFNITElCX0xERkxBR1MgKz0gLVdsLC0tdmVyc2lvbi1z Y3JpcHQ9bGlieGVuZ250dGFiLm1hcAogCiBDRkxBR1MgICArPSAtV2Vycm9yIC1XbWlzc2luZy1w cm90b3R5cGVzCmRpZmYgLS1naXQgYS90b29scy9saWJzL2dudHRhYi9nbnR0YWJfY29yZS5jIGIv dG9vbHMvbGlicy9nbnR0YWIvZ250dGFiX2NvcmUuYwppbmRleCA1ZDA0NzRkLi45NjhjODMzIDEw MDY0NAotLS0gYS90b29scy9saWJzL2dudHRhYi9nbnR0YWJfY29yZS5jCisrKyBiL3Rvb2xzL2xp YnMvZ250dGFiL2dudHRhYl9jb3JlLmMKQEAgLTExMyw2ICsxMTMsMTIgQEAgaW50IHhlbmdudHRh Yl91bm1hcCh4ZW5nbnR0YWJfaGFuZGxlICp4Z3QsIHZvaWQgKnN0YXJ0X2FkZHJlc3MsIHVpbnQz Ml90IGNvdW50KQogICAgIHJldHVybiBvc2RlcF9nbnR0YWJfdW5tYXAoeGd0LCBzdGFydF9hZGRy ZXNzLCBjb3VudCk7CiB9CiAKK2ludCB4ZW5nbnR0YWJfZ3JhbnRfY29weSh4ZW5nbnR0YWJfaGFu ZGxlICp4Z3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgY291bnQsCisgICAg ICAgICAgICAgICAgICAgICAgICAgeGVuZ250dGFiX2dyYW50X2NvcHlfc2VnbWVudF90ICpzZWdz KQoreworICAgIHJldHVybiBvc2RlcF9nbnR0YWJfZ3JhbnRfY29weSh4Z3QsIGNvdW50LCBzZWdz KTsKK30KIC8qCiAgKiBMb2NhbCB2YXJpYWJsZXM6CiAgKiBtb2RlOiBDCmRpZmYgLS1naXQgYS90 b29scy9saWJzL2dudHRhYi9nbnR0YWJfdW5pbXAuYyBiL3Rvb2xzL2xpYnMvZ250dGFiL2dudHRh Yl91bmltcC5jCmluZGV4IGIzYTRhMjAuLjgyOWVjZWQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnMv Z250dGFiL2dudHRhYl91bmltcC5jCisrKyBiL3Rvb2xzL2xpYnMvZ250dGFiL2dudHRhYl91bmlt cC5jCkBAIC03OCw2ICs3OCwxMiBAQCBpbnQgeGVuZ250dGFiX3VubWFwKHhlbmdudHRhYl9oYW5k bGUgKnhndCwgdm9pZCAqc3RhcnRfYWRkcmVzcywgdWludDMyX3QgY291bnQpCiAgICAgYWJvcnQo KTsKIH0KIAoraW50IHhlbmdudHRhYl9jb3B5X2dyYW50KHhlbmdudHRhYl9oYW5kbGUgKnhndCwK KyAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBjb3VudCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICB4ZW5nbnR0YWJfY29weV9ncmFudF9zZWdtZW50X3QgKnNlZ3MpCit7CisgICAg YWJvcnQoKTsKK30KIC8qCiAgKiBMb2NhbCB2YXJpYWJsZXM6CiAgKiBtb2RlOiBDCmRpZmYgLS1n aXQgYS90b29scy9saWJzL2dudHRhYi9pbmNsdWRlL3hlbmdudHRhYi5oIGIvdG9vbHMvbGlicy9n bnR0YWIvaW5jbHVkZS94ZW5nbnR0YWIuaAppbmRleCAwNDMxZGNmLi4zNWJlNmMxIDEwMDY0NAot LS0gYS90b29scy9saWJzL2dudHRhYi9pbmNsdWRlL3hlbmdudHRhYi5oCisrKyBiL3Rvb2xzL2xp YnMvZ250dGFiL2luY2x1ZGUveGVuZ250dGFiLmgKQEAgLTI1OCw2ICsyNTgsMzQgQEAgaW50IHhl bmdudHRhYl91bm1hcCh4ZW5nbnR0YWJfaGFuZGxlICp4Z3QsIHZvaWQgKnN0YXJ0X2FkZHJlc3Ms IHVpbnQzMl90IGNvdW50KTsKIGludCB4ZW5nbnR0YWJfc2V0X21heF9ncmFudHMoeGVuZ250dGFi X2hhbmRsZSAqeGd0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBucl9n cmFudHMpOwogCitzdHJ1Y3QgeGVuZ250dGFiX2dyYW50X2NvcHlfc2VnbWVudCB7CisgICAgdW5p b24geGVuZ250dGFiX2NvcHlfcHRyIHsKKyAgICAgICAgdm9pZCAqdmlydDsKKyAgICAgICAgc3Ry dWN0IHsKKyAgICAgICAgICAgIHVpbnQzMl90IHJlZjsKKyAgICAgICAgICAgIHVpbnQxNl90IG9m ZnNldDsKKyAgICAgICAgICAgIHVpbnQxNl90IGRvbWlkOworICAgICAgICB9IGZvcmVpZ247Cisg ICAgfSBzb3VyY2UsIGRlc3Q7CisgICAgdWludDE2X3QgbGVuOworICAgIHVpbnQxNl90IGZsYWdz OworICAgIGludDE2X3Qgc3RhdHVzOworfTsKKwordHlwZWRlZiBzdHJ1Y3QgeGVuZ250dGFiX2dy YW50X2NvcHlfc2VnbWVudCB4ZW5nbnR0YWJfZ3JhbnRfY29weV9zZWdtZW50X3Q7CisKKy8qKgor ICogQ29weSBtZW1vcnkgZnJvbSBvciB0byBncmFudCByZWZlcmVuY2VzLiBUaGUgaW5mb3JtYXRp b24gb2YgZWFjaCBvcGVyYXRpb25zCisgKiBhcmUgY29udGFpbmVkIGluICd4ZW5nbnR0YWJfZ3Jh bnRfY29weV9zZWdtZW50X3QnLiBUaGUgQGZsYWcgdmFsdWUgaW5kaWNhdGUKKyAqIHRoZSBkaXJl Y3Rpb24gb2YgYW4gb3BlcmF0aW9uIChHTlRDT1BZX3NvdXJjZV9ncmVmXEdOVENPUFlfZGVzdF9n cmVmKS4KKyAqCisgKiBGb3IgZWFjaCBzZWdtZW50LCBAdmlydCBtYXkgY3Jvc3MgYSBwYWdlIGJv dW5kYXJ5IGJ1dCBAb2Zmc2V0ICsgQGxlbgorICogbXVzdCBub3QgZXhjZWVkIFhFTl9QQUdFX1NJ WkUuCisgKi8KK2ludCB4ZW5nbnR0YWJfZ3JhbnRfY29weSh4ZW5nbnR0YWJfaGFuZGxlICp4Z3Qs CisgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgY291bnQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgeGVuZ250dGFiX2dyYW50X2NvcHlfc2VnbWVudF90ICpzZWdzKTsKKwogLyoK ICAqIEdyYW50IFNoYXJpbmcgSW50ZXJmYWNlIChhbGxvY2F0aW5nIGFuZCBncmFudGluZyBwYWdl cyB0byBvdGhlcnMpCiAgKi8KZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnMvZ250dGFiL2xpYnhlbmdu dHRhYi5tYXAgYi90b29scy9saWJzL2dudHRhYi9saWJ4ZW5nbnR0YWIubWFwCmluZGV4IGRjNzM3 YWMuLmY3OGRhMjIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnMvZ250dGFiL2xpYnhlbmdudHRhYi5t YXAKKysrIGIvdG9vbHMvbGlicy9nbnR0YWIvbGlieGVuZ250dGFiLm1hcApAQCAtMjEsMyArMjEs OCBAQCBWRVJTXzEuMCB7CiAJCXhlbmdudHNocl91bnNoYXJlOwogCWxvY2FsOiAqOyAvKiBEbyBu b3QgZXhwb3NlIGFueXRoaW5nIGJ5IGRlZmF1bHQgKi8KIH07CisKK1ZFUlNfMS4xIHsKKyAgICBn bG9iYWw6CisgICAgICAgIHhlbmdudHRhYl9ncmFudF9jb3B5OworfSBWRVJTXzEuMDsKZGlmZiAt LWdpdCBhL3Rvb2xzL2xpYnMvZ250dGFiL2xpbnV4LmMgYi90b29scy9saWJzL2dudHRhYi9saW51 eC5jCmluZGV4IDdiMGZiYTQuLjZiZDliZDIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnMvZ250dGFi L2xpbnV4LmMKKysrIGIvdG9vbHMvbGlicy9nbnR0YWIvbGludXguYwpAQCAtMjMsNiArMjMsNyBA QAogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPHN0ZGludC5oPgogI2luY2x1ZGUgPHN0 cmluZy5oPgorI2luY2x1ZGUgPHN0ZGRlZi5oPgogCiAjaW5jbHVkZSA8c3lzL2lvY3RsLmg+CiAj aW5jbHVkZSA8c3lzL21tYW4uaD4KQEAgLTIzNSw2ICsyMzYsODIgQEAgaW50IG9zZGVwX2dudHRh Yl91bm1hcCh4ZW5nbnR0YWJfaGFuZGxlICp4Z3QsCiAgICAgcmV0dXJuIDA7CiB9CiAKK2ludCBv c2RlcF9nbnR0YWJfZ3JhbnRfY29weSh4ZW5nbnR0YWJfaGFuZGxlICp4Z3QsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdWludDMyX3QgY291bnQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgeGVuZ250dGFiX2dyYW50X2NvcHlfc2VnbWVudF90ICpzZWdzKQoreworICAgIGludCBy YzsKKyAgICBpbnQgZmQgPSB4Z3QtPmZkOworICAgIHN0cnVjdCBpb2N0bF9nbnRkZXZfZ3JhbnRf Y29weSBjb3B5OworCisgICAgWEVOR05UVEFCX0JVSUxEX0JVR19PTihzaXplb2Yoc3RydWN0IGlv Y3RsX2dudGRldl9ncmFudF9jb3B5X3NlZ21lbnQpICE9CisgICAgICAgICAgICAgICAgICAgICAg ICAgICBzaXplb2YoeGVuZ250dGFiX2dyYW50X2NvcHlfc2VnbWVudF90KSk7CisKKyAgICBYRU5H TlRUQUJfQlVJTERfQlVHX09OKF9fYWxpZ25vZl9fKHN0cnVjdCBpb2N0bF9nbnRkZXZfZ3JhbnRf Y29weV9zZWdtZW50KSAhPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgX19hbGlnbm9mX18o eGVuZ250dGFiX2dyYW50X2NvcHlfc2VnbWVudF90KSk7CisKKyAgICBYRU5HTlRUQUJfQlVJTERf QlVHX09OKG9mZnNldG9mKHN0cnVjdCBpb2N0bF9nbnRkZXZfZ3JhbnRfY29weV9zZWdtZW50LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLnZpcnQpICE9CisgICAg ICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZih4ZW5nbnR0YWJfZ3JhbnRfY29weV9zZWdt ZW50X3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UudmlydCkp OworICAgIFhFTkdOVFRBQl9CVUlMRF9CVUdfT04ob2Zmc2V0b2Yoc3RydWN0IGlvY3RsX2dudGRl dl9ncmFudF9jb3B5X3NlZ21lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzb3VyY2UuZm9yZWlnbikgIT0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9m KHhlbmdudHRhYl9ncmFudF9jb3B5X3NlZ21lbnRfdCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNvdXJjZS5mb3JlaWduKSk7CisgICAgWEVOR05UVEFCX0JVSUxEX0JVR19P TihvZmZzZXRvZihzdHJ1Y3QgaW9jdGxfZ250ZGV2X2dyYW50X2NvcHlfc2VnbWVudCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5mb3JlaWduLnJlZikgIT0KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKHhlbmdudHRhYl9ncmFudF9jb3B5X3Nl Z21lbnRfdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5mb3Jl aWduKSk7CisgICAgWEVOR05UVEFCX0JVSUxEX0JVR19PTihvZmZzZXRvZihzdHJ1Y3QgaW9jdGxf Z250ZGV2X2dyYW50X2NvcHlfc2VnbWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNvdXJjZS5mb3JlaWduLm9mZnNldCkgIT0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgIG9mZnNldG9mKHhlbmdudHRhYl9ncmFudF9jb3B5X3NlZ21lbnRfdCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5mb3JlaWduLm9mZnNldCkpOworICAgIFhF TkdOVFRBQl9CVUlMRF9CVUdfT04ob2Zmc2V0b2Yoc3RydWN0IGlvY3RsX2dudGRldl9ncmFudF9j b3B5X3NlZ21lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2Uu Zm9yZWlnbi5kb21pZCkgIT0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKHhl bmdudHRhYl9ncmFudF9jb3B5X3NlZ21lbnRfdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNvdXJjZS5mb3JlaWduLmRvbWlkKSk7CisKKyAgICBYRU5HTlRUQUJfQlVJTERf QlVHX09OKG9mZnNldG9mKHN0cnVjdCBpb2N0bF9nbnRkZXZfZ3JhbnRfY29weV9zZWdtZW50LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdC52aXJ0KSAhPQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YoeGVuZ250dGFiX2dyYW50X2NvcHlfc2VnbWVu dF90LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdC52aXJ0KSk7Cisg ICAgWEVOR05UVEFCX0JVSUxEX0JVR19PTihvZmZzZXRvZihzdHJ1Y3QgaW9jdGxfZ250ZGV2X2dy YW50X2NvcHlfc2VnbWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRl c3QuZm9yZWlnbikgIT0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKHhlbmdu dHRhYl9ncmFudF9jb3B5X3NlZ21lbnRfdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRlc3QuZm9yZWlnbikpOworICAgIFhFTkdOVFRBQl9CVUlMRF9CVUdfT04ob2Zmc2V0 b2Yoc3RydWN0IGlvY3RsX2dudGRldl9ncmFudF9jb3B5X3NlZ21lbnQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkZXN0LmZvcmVpZ24ucmVmKSAhPQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgb2Zmc2V0b2YoeGVuZ250dGFiX2dyYW50X2NvcHlfc2VnbWVudF90LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdC5mb3JlaWduKSk7CisgICAg WEVOR05UVEFCX0JVSUxEX0JVR19PTihvZmZzZXRvZihzdHJ1Y3QgaW9jdGxfZ250ZGV2X2dyYW50 X2NvcHlfc2VnbWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3Qu Zm9yZWlnbi5vZmZzZXQpICE9CisgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZih4 ZW5nbnR0YWJfZ3JhbnRfY29weV9zZWdtZW50X3QsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkZXN0LmZvcmVpZ24ub2Zmc2V0KSk7CisgICAgWEVOR05UVEFCX0JVSUxEX0JV R19PTihvZmZzZXRvZihzdHJ1Y3QgaW9jdGxfZ250ZGV2X2dyYW50X2NvcHlfc2VnbWVudCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QuZm9yZWlnbi5kb21pZCkgIT0K KyAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKHhlbmdudHRhYl9ncmFudF9jb3B5 X3NlZ21lbnRfdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QuZm9y ZWlnbi5kb21pZCkpOworCisgICAgWEVOR05UVEFCX0JVSUxEX0JVR19PTihvZmZzZXRvZihzdHJ1 Y3QgaW9jdGxfZ250ZGV2X2dyYW50X2NvcHlfc2VnbWVudCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxlbikgIT0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNl dG9mKHhlbmdudHRhYl9ncmFudF9jb3B5X3NlZ21lbnRfdCwgbGVuKSk7CisgICAgWEVOR05UVEFC X0JVSUxEX0JVR19PTihvZmZzZXRvZihzdHJ1Y3QgaW9jdGxfZ250ZGV2X2dyYW50X2NvcHlfc2Vn bWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzKSAhPQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YoeGVuZ250dGFiX2dyYW50X2NvcHlfc2Vn bWVudF90LCBmbGFncykpOworICAgIFhFTkdOVFRBQl9CVUlMRF9CVUdfT04ob2Zmc2V0b2Yoc3Ry dWN0IGlvY3RsX2dudGRldl9ncmFudF9jb3B5X3NlZ21lbnQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdGF0dXMpICE9CisgICAgICAgICAgICAgICAgICAgICAgICAgICBv ZmZzZXRvZih4ZW5nbnR0YWJfZ3JhbnRfY29weV9zZWdtZW50X3QsIHN0YXR1cykpOworCisgICAg Y29weS5zZWdtZW50cyA9IChzdHJ1Y3QgaW9jdGxfZ250ZGV2X2dyYW50X2NvcHlfc2VnbWVudCAq KXNlZ3M7CisgICAgY29weS5jb3VudCA9IGNvdW50OworCisgICAgcmMgPSBpb2N0bChmZCwgSU9D VExfR05UREVWX0dSQU5UX0NPUFksICZjb3B5KTsKKyAgICBpZiAocmMpCisgICAgICAgIEdURVJS T1IoeGd0LT5sb2dnZXIsICJpb2N0bCBHUkFOVCBDT1BZIGZhaWxlZCAlZCAiLCBlcnJubyk7CisK KyAgICByZXR1cm4gcmM7Cit9CisKIGludCBvc2RlcF9nbnRzaHJfb3Blbih4ZW5nbnRzaHJfaGFu ZGxlICp4Z3MpCiB7CiAgICAgaW50IGZkID0gb3BlbihERVZYRU4gImdudGFsbG9jIiwgT19SRFdS KTsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnMvZ250dGFiL21pbmlvcy5jIGIvdG9vbHMvbGlicy9n bnR0YWIvbWluaW9zLmMKaW5kZXggN2UwNDE3NC4uMDk1MWJjOSAxMDA2NDQKLS0tIGEvdG9vbHMv bGlicy9nbnR0YWIvbWluaW9zLmMKKysrIGIvdG9vbHMvbGlicy9nbnR0YWIvbWluaW9zLmMKQEAg LTEwNiw2ICsxMDYsMTIgQEAgaW50IG9zZGVwX2dudHRhYl9zZXRfbWF4X2dyYW50cyh4ZW5nbnR0 YWJfaGFuZGxlICp4Z3QsIHVpbnQzMl90IGNvdW50KQogICAgIHJldHVybiByZXQ7CiB9CiAKK2lu dCBvc2RlcF9nbnR0YWJfZ3JhbnRfY29weSh4ZW5nbnR0YWJfaGFuZGxlICp4Z3QsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgY291bnQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgeGVuZ250dGFiX2dyYW50X2NvcHlfc2VnbWVudF90ICpzZWdzKQoreworICAgIHJl dHVybiAtMTsKK30KIC8qCiAgKiBMb2NhbCB2YXJpYWJsZXM6CiAgKiBtb2RlOiBDCmRpZmYgLS1n aXQgYS90b29scy9saWJzL2dudHRhYi9wcml2YXRlLmggYi90b29scy9saWJzL2dudHRhYi9wcml2 YXRlLmgKaW5kZXggMmJkYzBmMi4uZjhkMjM0YSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlicy9nbnR0 YWIvcHJpdmF0ZS5oCisrKyBiL3Rvb2xzL2xpYnMvZ250dGFiL3ByaXZhdGUuaApAQCAtMzAsNiAr MzAsMTAgQEAgdm9pZCAqb3NkZXBfZ250dGFiX2dyYW50X21hcCh4ZW5nbnR0YWJfaGFuZGxlICp4 Z3QsCiBpbnQgb3NkZXBfZ250dGFiX3VubWFwKHhlbmdudHRhYl9oYW5kbGUgKnhndCwKICAgICAg ICAgICAgICAgICAgICAgICAgdm9pZCAqc3RhcnRfYWRkcmVzcywKICAgICAgICAgICAgICAgICAg ICAgICAgdWludDMyX3QgY291bnQpOworaW50IG9zZGVwX2dudHRhYl9ncmFudF9jb3B5KHhlbmdu dHRhYl9oYW5kbGUgKnhndCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBj b3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ZW5nbnR0YWJfZ3JhbnRfY29weV9z ZWdtZW50X3QgKnNlZ3MpOworCiBpbnQgb3NkZXBfZ250c2hyX29wZW4oeGVuZ250c2hyX2hhbmRs ZSAqeGdzKTsKIGludCBvc2RlcF9nbnRzaHJfY2xvc2UoeGVuZ250c2hyX2hhbmRsZSAqeGdzKTsK IAotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBz Oi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK