From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v9 11/11] tools/libxenctrl: use new xenforeignmemory API to seed grant table Date: Fri, 6 Oct 2017 13:25:19 +0100 Message-ID: <20171006122519.30345-12-paul.durrant@citrix.com> References: <20171006122519.30345-1-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e0Rjr-0007FK-Pr for xen-devel@lists.xenproject.org; Fri, 06 Oct 2017 12:28:23 +0000 In-Reply-To: <20171006122519.30345-1-paul.durrant@citrix.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: Paul Durrant , Ian Jackson List-Id: xen-devel@lists.xenproject.org QSBwcmV2aW91cyBwYXRjaCBhZGRlZCBzdXBwb3J0IGZvciBwcml2LW1hcHBpbmcgZ3Vlc3QgcmVz b3VyY2VzIGRpcmVjdGx5CihyYXRoZXIgdGhhbiBoYXZpbmcgdG8gZm9yZWlnbi1tYXAsIHdoaWNo IHJlcXVpcmVzIFAyTSBtb2RpZmljYXRpb24gZm9yCkhWTSBndWVzdHMpLgoKVGhpcyBwYXRjaCBt YWtlcyB1c2Ugb2YgdGhlIG5ldyBBUEkgdG8gc2VlZCB0aGUgZ3Vlc3QgZ3JhbnQgdGFibGUgdW5s ZXNzCnRoZSB1bmRlcmx5aW5nIGluZnJhc3RydWN0dXJlIChpLmUuIHByaXZjbWQpIGRvZXNuJ3Qg c3VwcG9ydCBpdCwgaW4gd2hpY2gKY2FzZSB0aGUgb2xkIHNjaGVtZSBpcyB1c2VkLgoKTk9URTog VGhlIGNhbGwgdG8geGNfZG9tX2dudHRhYl9odm1fc2VlZCgpIGluIGh2bV9idWlsZF9zZXRfcGFy YW1zKCkgd2FzCiAgICAgIGFjdHVhbGx5IHVubmVjZXNzYXJ5LCBhcyB0aGUgZ3JhbnQgdGFibGUg aGFzIGFscmVhZHkgYmVlbiBzZWVkZWQKICAgICAgYnkgYSBwcmlvciBjYWxsIHRvIHhjX2RvbV9n bnR0YWJfaW5pdCgpIG1hZGUgYnkgbGlieGxfX2J1aWxkX2RvbSgpLgoKU2lnbmVkLW9mZi1ieTog UGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KQWNrZWQtYnk6IE1hcmVrIE1h cmN6eWtvd3NraS1Hw7NyZWNraSA8bWFybWFyZWtAaW52aXNpYmxldGhpbmdzbGFiLmNvbT4KUmV2 aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgpBY2tlZC1i eTogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KLS0tCkNjOiBJYW4gSmFja3NvbiA8aWFu LmphY2tzb25AZXUuY2l0cml4LmNvbT4KCnY0OgogLSBNaW5vciBjb3NtZXRpYyBmaXggc3VnZ2Vz dGVkIGJ5IFJvZ2VyLgoKdjM6CiAtIEludHJvZHVjZWQgeGNfZG9tX3NldF9nbnR0YWJfZW50cnko KSB0byBhdm9pZCBkdXBsaWNhdGVkIGNvZGUuCi0tLQogdG9vbHMvbGlieGMvaW5jbHVkZS94Y19k b20uaCAgICAgICAgfCAgIDggKy0tCiB0b29scy9saWJ4Yy94Y19kb21fYm9vdC5jICAgICAgICAg ICB8IDExNCArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIHRvb2xzL2xpYnhj L3hjX3NyX3Jlc3RvcmVfeDg2X2h2bS5jIHwgIDEwICsrLS0KIHRvb2xzL2xpYnhjL3hjX3NyX3Jl c3RvcmVfeDg2X3B2LmMgIHwgICAyICstCiB0b29scy9saWJ4bC9saWJ4bF9kb20uYyAgICAgICAg ICAgICB8ICAgMSAtCiB0b29scy9weXRob24veGVuL2xvd2xldmVsL3hjL3hjLmMgICB8ICAgNiAr LQogNiBmaWxlcyBjaGFuZ2VkLCA5MiBpbnNlcnRpb25zKCspLCA0OSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS90b29scy9saWJ4Yy9pbmNsdWRlL3hjX2RvbS5oIGIvdG9vbHMvbGlieGMvaW5j bHVkZS94Y19kb20uaAppbmRleCA2ZTA2ZWYxZGVjLi40MjE2ZDYzNDYyIDEwMDY0NAotLS0gYS90 b29scy9saWJ4Yy9pbmNsdWRlL3hjX2RvbS5oCisrKyBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGNf ZG9tLmgKQEAgLTMyNSwxMiArMzI1LDggQEAgdm9pZCAqeGNfZG9tX2Jvb3RfZG9tVV9tYXAoc3Ry dWN0IHhjX2RvbV9pbWFnZSAqZG9tLCB4ZW5fcGZuX3QgcGZuLAogaW50IHhjX2RvbV9ib290X2lt YWdlKHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSk7CiBpbnQgeGNfZG9tX2NvbXBhdF9jaGVjayhz dHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20pOwogaW50IHhjX2RvbV9nbnR0YWJfaW5pdChzdHJ1Y3Qg eGNfZG9tX2ltYWdlICpkb20pOwotaW50IHhjX2RvbV9nbnR0YWJfaHZtX3NlZWQoeGNfaW50ZXJm YWNlICp4Y2gsIGRvbWlkX3QgZG9taWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB4ZW5f cGZuX3QgY29uc29sZV9nbWZuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgeGVuX3Bmbl90 IHhlbnN0b3JlX2dtZm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBkb21pZF90IGNvbnNv bGVfZG9taWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBkb21pZF90IHhlbnN0b3JlX2Rv bWlkKTsKLWludCB4Y19kb21fZ250dGFiX3NlZWQoeGNfaW50ZXJmYWNlICp4Y2gsIGRvbWlkX3Qg ZG9taWQsCitpbnQgeGNfZG9tX2dudHRhYl9zZWVkKHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90 IGd1ZXN0X2RvbWlkLAorICAgICAgICAgICAgICAgICAgICAgICBib29sIGlzX2h2bSwKICAgICAg ICAgICAgICAgICAgICAgICAgeGVuX3Bmbl90IGNvbnNvbGVfZ21mbiwKICAgICAgICAgICAgICAg ICAgICAgICAgeGVuX3Bmbl90IHhlbnN0b3JlX2dtZm4sCiAgICAgICAgICAgICAgICAgICAgICAg IGRvbWlkX3QgY29uc29sZV9kb21pZCwKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hjX2RvbV9i b290LmMgYi90b29scy9saWJ4Yy94Y19kb21fYm9vdC5jCmluZGV4IDhhMzc2ZDA5N2MuLmI1MWYy MTU3ZWIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL3hjX2RvbV9ib290LmMKKysrIGIvdG9vbHMv bGlieGMveGNfZG9tX2Jvb3QuYwpAQCAtMjgyLDExICsyODIsMjkgQEAgc3RhdGljIHhlbl9wZm5f dCB4Y19kb21fZ250dGFiX3NldHVwKHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbWlkKQog ICAgIHJldHVybiBnbWZuOwogfQogCi1pbnQgeGNfZG9tX2dudHRhYl9zZWVkKHhjX2ludGVyZmFj ZSAqeGNoLCBkb21pZF90IGRvbWlkLAotICAgICAgICAgICAgICAgICAgICAgICB4ZW5fcGZuX3Qg Y29uc29sZV9nbWZuLAotICAgICAgICAgICAgICAgICAgICAgICB4ZW5fcGZuX3QgeGVuc3RvcmVf Z21mbiwKLSAgICAgICAgICAgICAgICAgICAgICAgZG9taWRfdCBjb25zb2xlX2RvbWlkLAotICAg ICAgICAgICAgICAgICAgICAgICBkb21pZF90IHhlbnN0b3JlX2RvbWlkKQorc3RhdGljIHZvaWQg eGNfZG9tX3NldF9nbnR0YWJfZW50cnkoeGNfaW50ZXJmYWNlICp4Y2gsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBncmFudF9lbnRyeV92MV90ICpnbnR0YWIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaWR4LAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9taWRfdCBndWVzdF9kb21pZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWlkX3QgYmFja2VuZF9kb21pZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhlbl9wZm5fdCBiYWNrZW5kX2dtZm4pCit7 CisgICAgaWYgKCBndWVzdF9kb21pZCA9PSBiYWNrZW5kX2RvbWlkIHx8IGJhY2tlbmRfZ21mbiA9 PSAtMSkKKyAgICAgICAgcmV0dXJuOworCisgICAgeGNfZG9tX3ByaW50Zih4Y2gsICIlczogWyV1 XSAtPiAweCUiUFJJX3hlbl9wZm4sCisgICAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIGlk eCwgYmFja2VuZF9nbWZuKTsKKworICAgIGdudHRhYltpZHhdLmZsYWdzID0gR1RGX3Blcm1pdF9h Y2Nlc3M7CisgICAgZ250dGFiW2lkeF0uZG9taWQgPSBiYWNrZW5kX2RvbWlkOworICAgIGdudHRh YltpZHhdLmZyYW1lID0gYmFja2VuZF9nbWZuOworfQorCitzdGF0aWMgaW50IGNvbXBhdF9nbnR0 YWJfc2VlZCh4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBkb21pZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHhlbl9wZm5fdCBjb25zb2xlX2dtZm4sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB4ZW5fcGZuX3QgeGVuc3RvcmVfZ21mbiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRvbWlkX3QgY29uc29sZV9kb21pZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRvbWlkX3QgeGVuc3RvcmVfZG9taWQpCiB7CiAKICAgICB4ZW5fcGZuX3QgZ250 dGFiX2dtZm47CkBAIC0zMTAsMTggKzMyOCwxMCBAQCBpbnQgeGNfZG9tX2dudHRhYl9zZWVkKHhj X2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbWlkLAogICAgICAgICByZXR1cm4gLTE7CiAgICAg fQogCi0gICAgaWYgKCBkb21pZCAhPSBjb25zb2xlX2RvbWlkICAmJiBjb25zb2xlX2dtZm4gIT0g LTEpCi0gICAgewotICAgICAgICBnbnR0YWJbR05UVEFCX1JFU0VSVkVEX0NPTlNPTEVdLmZsYWdz ID0gR1RGX3Blcm1pdF9hY2Nlc3M7Ci0gICAgICAgIGdudHRhYltHTlRUQUJfUkVTRVJWRURfQ09O U09MRV0uZG9taWQgPSBjb25zb2xlX2RvbWlkOwotICAgICAgICBnbnR0YWJbR05UVEFCX1JFU0VS VkVEX0NPTlNPTEVdLmZyYW1lID0gY29uc29sZV9nbWZuOwotICAgIH0KLSAgICBpZiAoIGRvbWlk ICE9IHhlbnN0b3JlX2RvbWlkICYmIHhlbnN0b3JlX2dtZm4gIT0gLTEpCi0gICAgewotICAgICAg ICBnbnR0YWJbR05UVEFCX1JFU0VSVkVEX1hFTlNUT1JFXS5mbGFncyA9IEdURl9wZXJtaXRfYWNj ZXNzOwotICAgICAgICBnbnR0YWJbR05UVEFCX1JFU0VSVkVEX1hFTlNUT1JFXS5kb21pZCA9IHhl bnN0b3JlX2RvbWlkOwotICAgICAgICBnbnR0YWJbR05UVEFCX1JFU0VSVkVEX1hFTlNUT1JFXS5m cmFtZSA9IHhlbnN0b3JlX2dtZm47Ci0gICAgfQorICAgIHhjX2RvbV9zZXRfZ250dGFiX2VudHJ5 KHhjaCwgZ250dGFiLCBHTlRUQUJfUkVTRVJWRURfQ09OU09MRSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkb21pZCwgY29uc29sZV9kb21pZCwgY29uc29sZV9nbWZuKTsKKyAgICB4Y19k b21fc2V0X2dudHRhYl9lbnRyeSh4Y2gsIGdudHRhYiwgR05UVEFCX1JFU0VSVkVEX1hFTlNUT1JF LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWlkLCB4ZW5zdG9yZV9kb21pZCwgeGVu c3RvcmVfZ21mbik7CiAKICAgICBpZiAoIG11bm1hcChnbnR0YWIsIFBBR0VfU0laRSkgPT0gLTEg KQogICAgIHsKQEAgLTMzOSwxMSArMzQ5LDExIEBAIGludCB4Y19kb21fZ250dGFiX3NlZWQoeGNf aW50ZXJmYWNlICp4Y2gsIGRvbWlkX3QgZG9taWQsCiAgICAgcmV0dXJuIDA7CiB9CiAKLWludCB4 Y19kb21fZ250dGFiX2h2bV9zZWVkKHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbWlkLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgeGVuX3Bmbl90IGNvbnNvbGVfZ3BmbiwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgIHhlbl9wZm5fdCB4ZW5zdG9yZV9ncGZuLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgZG9taWRfdCBjb25zb2xlX2RvbWlkLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgZG9taWRfdCB4ZW5zdG9yZV9kb21pZCkKK3N0YXRpYyBpbnQgY29tcGF0X2du dHRhYl9odm1fc2VlZCh4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBkb21pZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB4ZW5fcGZuX3QgY29uc29sZV9ncGZuLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhlbl9wZm5fdCB4ZW5zdG9yZV9ncGZuLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWlkX3QgY29uc29sZV9kb21pZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21pZF90IHhlbnN0b3JlX2RvbWlkKQog ewogICAgIGludCByYzsKICAgICB4ZW5fcGZuX3Qgc2NyYXRjaF9ncGZuOwpAQCAtMzgyLDcgKzM5 Miw3IEBAIGludCB4Y19kb21fZ250dGFiX2h2bV9zZWVkKHhjX2ludGVyZmFjZSAqeGNoLCBkb21p ZF90IGRvbWlkLAogICAgICAgICByZXR1cm4gLTE7CiAgICAgfQogCi0gICAgcmMgPSB4Y19kb21f Z250dGFiX3NlZWQoeGNoLCBkb21pZCwKKyAgICByYyA9IGNvbXBhdF9nbnR0YWJfc2VlZCh4Y2gs IGRvbWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVfZ3BmbiwgeGVuc3Rv cmVfZ3BmbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlX2RvbWlkLCB4ZW5z dG9yZV9kb21pZCk7CiAgICAgaWYgKHJjICE9IDApCkBAIC00MDcsMTggKzQxNyw1NiBAQCBpbnQg eGNfZG9tX2dudHRhYl9odm1fc2VlZCh4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBkb21pZCwK ICAgICByZXR1cm4gMDsKIH0KIAotaW50IHhjX2RvbV9nbnR0YWJfaW5pdChzdHJ1Y3QgeGNfZG9t X2ltYWdlICpkb20pCitpbnQgeGNfZG9tX2dudHRhYl9zZWVkKHhjX2ludGVyZmFjZSAqeGNoLCBk b21pZF90IGd1ZXN0X2RvbWlkLAorICAgICAgICAgICAgICAgICAgICAgICBib29sIGlzX2h2bSwg eGVuX3Bmbl90IGNvbnNvbGVfZ21mbiwKKyAgICAgICAgICAgICAgICAgICAgICAgeGVuX3Bmbl90 IHhlbnN0b3JlX2dtZm4sIGRvbWlkX3QgY29uc29sZV9kb21pZCwKKyAgICAgICAgICAgICAgICAg ICAgICAgZG9taWRfdCB4ZW5zdG9yZV9kb21pZCkKIHsKLSAgICBpZiAoIHhjX2RvbV90cmFuc2xh dGVkKGRvbSkgKSB7Ci0gICAgICAgIHJldHVybiB4Y19kb21fZ250dGFiX2h2bV9zZWVkKGRvbS0+ eGNoLCBkb20tPmd1ZXN0X2RvbWlkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkb20tPmNvbnNvbGVfcGZuLCBkb20tPnhlbnN0b3JlX3BmbiwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZG9tLT5jb25zb2xlX2RvbWlkLCBkb20tPnhlbnN0b3Jl X2RvbWlkKTsKLSAgICB9IGVsc2UgewotICAgICAgICByZXR1cm4geGNfZG9tX2dudHRhYl9zZWVk KGRvbS0+eGNoLCBkb20tPmd1ZXN0X2RvbWlkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHhjX2RvbV9wMm0oZG9tLCBkb20tPmNvbnNvbGVfcGZuKSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB4Y19kb21fcDJtKGRvbSwgZG9tLT54ZW5zdG9yZV9wZm4pLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbS0+Y29uc29sZV9kb21pZCwgZG9t LT54ZW5zdG9yZV9kb21pZCk7CisgICAgeGVuZm9yZWlnbm1lbW9yeV9oYW5kbGUqIGZtZW0gPSB4 Y2gtPmZtZW07CisgICAgeGVuZm9yZWlnbm1lbW9yeV9yZXNvdXJjZV9oYW5kbGUgKmZyZXM7Cisg ICAgdm9pZCAqYWRkciA9IE5VTEw7CisKKyAgICBmcmVzID0geGVuZm9yZWlnbm1lbW9yeV9tYXBf cmVzb3VyY2UoZm1lbSwgZ3Vlc3RfZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFhFTk1FTV9yZXNvdXJjZV9ncmFudF90YWJsZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgMSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJmFkZHIsIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsIDApOwor ICAgIGlmICggIWZyZXMgKQorICAgIHsKKyAgICAgICAgaWYgKCBlcnJubyA9PSBFT1BOT1RTVVBQ ICkKKyAgICAgICAgICAgIHJldHVybiBpc19odm0gPworICAgICAgICAgICAgICAgIGNvbXBhdF9n bnR0YWJfaHZtX3NlZWQoeGNoLCBndWVzdF9kb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnNvbGVfZ21mbiwgeGVuc3RvcmVfZ21mbiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVfZG9taWQsIHhlbnN0b3JlX2RvbWlk KSA6CisgICAgICAgICAgICAgICAgY29tcGF0X2dudHRhYl9zZWVkKHhjaCwgZ3Vlc3RfZG9taWQs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVfZ21mbiwgeGVuc3Rv cmVfZ21mbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZV9kb21p ZCwgeGVuc3RvcmVfZG9taWQpOworCisgICAgICAgIHhjX2RvbV9wYW5pYyh4Y2gsIFhDX0lOVEVS TkFMX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgIiVzOiBmYWlsZWQgdG8gYWNxdWlyZSBn cmFudCB0YWJsZSAiCisgICAgICAgICAgICAgICAgICAgICAiW2Vycm5vPSVkXVxuIiwKKyAgICAg ICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgZXJybm8pOworICAgICAgICByZXR1cm4gLTE7 CiAgICAgfQorCisgICAgeGNfZG9tX3NldF9nbnR0YWJfZW50cnkoeGNoLCBhZGRyLCBHTlRUQUJf UkVTRVJWRURfQ09OU09MRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWVzdF9kb21p ZCwgY29uc29sZV9kb21pZCwgY29uc29sZV9nbWZuKTsKKyAgICB4Y19kb21fc2V0X2dudHRhYl9l bnRyeSh4Y2gsIGFkZHIsIEdOVFRBQl9SRVNFUlZFRF9YRU5TVE9SRSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBndWVzdF9kb21pZCwgeGVuc3RvcmVfZG9taWQsIHhlbnN0b3JlX2dtZm4p OworCisgICAgeGVuZm9yZWlnbm1lbW9yeV91bm1hcF9yZXNvdXJjZShmbWVtLCBmcmVzKTsKKwor ICAgIHJldHVybiAwOworfQorCitpbnQgeGNfZG9tX2dudHRhYl9pbml0KHN0cnVjdCB4Y19kb21f aW1hZ2UgKmRvbSkKK3sKKyAgICBib29sIGlzX2h2bSA9IHhjX2RvbV90cmFuc2xhdGVkKGRvbSk7 CisgICAgeGVuX3Bmbl90IGNvbnNvbGVfZ21mbiA9IHhjX2RvbV9wMm0oZG9tLCBkb20tPmNvbnNv bGVfcGZuKTsKKyAgICB4ZW5fcGZuX3QgeGVuc3RvcmVfZ21mbiA9IHhjX2RvbV9wMm0oZG9tLCBk b20tPnhlbnN0b3JlX3Bmbik7CisKKyAgICByZXR1cm4geGNfZG9tX2dudHRhYl9zZWVkKGRvbS0+ eGNoLCBkb20tPmd1ZXN0X2RvbWlkLCBpc19odm0sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zb2xlX2dtZm4sIHhlbnN0b3JlX2dtZm4sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkb20tPmNvbnNvbGVfZG9taWQsIGRvbS0+eGVuc3RvcmVfZG9taWQpOwogfQogCiAv KgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMveGNfc3JfcmVzdG9yZV94ODZfaHZtLmMgYi90b29s cy9saWJ4Yy94Y19zcl9yZXN0b3JlX3g4Nl9odm0uYwppbmRleCAxZGNhODUzNTRhLi5hNWM2NjFk YThmIDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy94Y19zcl9yZXN0b3JlX3g4Nl9odm0uYworKysg Yi90b29scy9saWJ4Yy94Y19zcl9yZXN0b3JlX3g4Nl9odm0uYwpAQCAtMjA3LDExICsyMDcsMTEg QEAgc3RhdGljIGludCB4ODZfaHZtX3N0cmVhbV9jb21wbGV0ZShzdHJ1Y3QgeGNfc3JfY29udGV4 dCAqY3R4KQogICAgICAgICByZXR1cm4gcmM7CiAgICAgfQogCi0gICAgcmMgPSB4Y19kb21fZ250 dGFiX2h2bV9zZWVkKHhjaCwgY3R4LT5kb21pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY3R4LT5yZXN0b3JlLmNvbnNvbGVfZ2ZuLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjdHgtPnJlc3RvcmUueGVuc3RvcmVfZ2ZuLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjdHgtPnJlc3RvcmUuY29uc29sZV9kb21pZCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY3R4LT5yZXN0b3JlLnhlbnN0b3JlX2RvbWlkKTsKKyAgICByYyA9IHhj X2RvbV9nbnR0YWJfc2VlZCh4Y2gsIGN0eC0+ZG9taWQsIHRydWUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY3R4LT5yZXN0b3JlLmNvbnNvbGVfZ2ZuLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGN0eC0+cmVzdG9yZS54ZW5zdG9yZV9nZm4sCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY3R4LT5yZXN0b3JlLmNvbnNvbGVfZG9taWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY3R4LT5yZXN0b3JlLnhlbnN0b3JlX2RvbWlkKTsKICAgICBpZiAoIHJjICkKICAg ICB7CiAgICAgICAgIFBFUlJPUigiRmFpbGVkIHRvIHNlZWQgZ3JhbnQgdGFibGUiKTsKZGlmZiAt LWdpdCBhL3Rvb2xzL2xpYnhjL3hjX3NyX3Jlc3RvcmVfeDg2X3B2LmMgYi90b29scy9saWJ4Yy94 Y19zcl9yZXN0b3JlX3g4Nl9wdi5jCmluZGV4IDUwZTI1YzE2MmMuLjEwNjM1ZDQzNmIgMTAwNjQ0 Ci0tLSBhL3Rvb2xzL2xpYnhjL3hjX3NyX3Jlc3RvcmVfeDg2X3B2LmMKKysrIGIvdG9vbHMvbGli eGMveGNfc3JfcmVzdG9yZV94ODZfcHYuYwpAQCAtMTEwNCw3ICsxMTA0LDcgQEAgc3RhdGljIGlu dCB4ODZfcHZfc3RyZWFtX2NvbXBsZXRlKHN0cnVjdCB4Y19zcl9jb250ZXh0ICpjdHgpCiAgICAg aWYgKCByYyApCiAgICAgICAgIHJldHVybiByYzsKIAotICAgIHJjID0geGNfZG9tX2dudHRhYl9z ZWVkKHhjaCwgY3R4LT5kb21pZCwKKyAgICByYyA9IHhjX2RvbV9nbnR0YWJfc2VlZCh4Y2gsIGN0 eC0+ZG9taWQsIGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+cmVzdG9y ZS5jb25zb2xlX2dmbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPnJlc3RvcmUu eGVuc3RvcmVfZ2ZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+cmVzdG9yZS5j b25zb2xlX2RvbWlkLApkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfZG9tLmMgYi90b29s cy9saWJ4bC9saWJ4bF9kb20uYwppbmRleCBlZjgzNGU2NTJkLi44NmY1NjI1NDllIDEwMDY0NAot LS0gYS90b29scy9saWJ4bC9saWJ4bF9kb20uYworKysgYi90b29scy9saWJ4bC9saWJ4bF9kb20u YwpAQCAtOTAzLDcgKzkwMyw2IEBAIHN0YXRpYyBpbnQgaHZtX2J1aWxkX3NldF9wYXJhbXMoeGNf aW50ZXJmYWNlICpoYW5kbGUsIHVpbnQzMl90IGRvbWlkLAogICAgICpzdG9yZV9tZm4gPSBzdHJf bWZuOwogICAgICpjb25zb2xlX21mbiA9IGNvbnNfbWZuOwogCi0gICAgeGNfZG9tX2dudHRhYl9o dm1fc2VlZChoYW5kbGUsIGRvbWlkLCAqY29uc29sZV9tZm4sICpzdG9yZV9tZm4sIGNvbnNvbGVf ZG9taWQsIHN0b3JlX2RvbWlkKTsKICAgICByZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvdG9v bHMvcHl0aG9uL3hlbi9sb3dsZXZlbC94Yy94Yy5jIGIvdG9vbHMvcHl0aG9uL3hlbi9sb3dsZXZl bC94Yy94Yy5jCmluZGV4IGY1MDE3NjQxMDAuLjUxZGMyYWZiMWUgMTAwNjQ0Ci0tLSBhL3Rvb2xz L3B5dGhvbi94ZW4vbG93bGV2ZWwveGMveGMuYworKysgYi90b29scy9weXRob24veGVuL2xvd2xl dmVsL3hjL3hjLmMKQEAgLTgwMCw5ICs4MDAsOSBAQCBzdGF0aWMgUHlPYmplY3QgKnB5eGNfZ250 dGFiX2h2bV9zZWVkKFhjT2JqZWN0ICpzZWxmLAogCQkJCSAgICAgICZjb25zb2xlX2RvbWlkLCAm eGVuc3RvcmVfZG9taWQpICkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICBpZiAoIHhjX2Rv bV9nbnR0YWJfaHZtX3NlZWQoc2VsZi0+eGNfaGFuZGxlLCBkb20sCi0JCQkJY29uc29sZV9nbWZu LCB4ZW5zdG9yZV9nbWZuLAotCQkJCWNvbnNvbGVfZG9taWQsIHhlbnN0b3JlX2RvbWlkKSAhPSAw ICkKKyAgICBpZiAoIHhjX2RvbV9nbnR0YWJfc2VlZChzZWxmLT54Y19oYW5kbGUsIGRvbSwgdHJ1 ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlX2dtZm4sIHhlbnN0b3JlX2dt Zm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZV9kb21pZCwgeGVuc3RvcmVf ZG9taWQpICE9IDAgKQogICAgICAgICByZXR1cm4gcHl4Y19lcnJvcl90b19leGNlcHRpb24oc2Vs Zi0+eGNfaGFuZGxlKTsKIAogICAgIHJldHVybiBQeV9Ob25lOwotLSAKMi4xMS4wCgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxp bmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVu LWRldmVsCg==