From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v11 11/11] tools/libxenctrl: use new xenforeignmemory API to seed grant table Date: Thu, 12 Oct 2017 17:26:03 +0100 Message-ID: <20171012162603.3016-12-paul.durrant@citrix.com> References: <20171012162603.3016-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 1e2gLo-00085Y-On for xen-devel@lists.xenproject.org; Thu, 12 Oct 2017 16:28:48 +0000 In-Reply-To: <20171012162603.3016-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 LmphY2tzb25AZXUuY2l0cml4LmNvbT4KCnYxMDoKIC0gVXNlIG5ldyBpZCBjb25zdGFudCBmb3Ig Z3JhbnQgdGFibGUuCgp2NDoKIC0gTWlub3IgY29zbWV0aWMgZml4IHN1Z2dlc3RlZCBieSBSb2dl ci4KCnYzOgogLSBJbnRyb2R1Y2VkIHhjX2RvbV9zZXRfZ250dGFiX2VudHJ5KCkgdG8gYXZvaWQg ZHVwbGljYXRlZCBjb2RlLgotLS0KIHRvb2xzL2xpYnhjL2luY2x1ZGUveGNfZG9tLmggICAgICAg IHwgICA4ICstLQogdG9vbHMvbGlieGMveGNfZG9tX2Jvb3QuYyAgICAgICAgICAgfCAxMTQgKysr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCiB0b29scy9saWJ4Yy94Y19zcl9yZXN0 b3JlX3g4Nl9odm0uYyB8ICAxMCArKy0tCiB0b29scy9saWJ4Yy94Y19zcl9yZXN0b3JlX3g4Nl9w di5jICB8ICAgMiArLQogdG9vbHMvbGlieGwvbGlieGxfZG9tLmMgICAgICAgICAgICAgfCAgIDEg LQogdG9vbHMvcHl0aG9uL3hlbi9sb3dsZXZlbC94Yy94Yy5jICAgfCAgIDYgKy0KIDYgZmlsZXMg Y2hhbmdlZCwgOTIgaW5zZXJ0aW9ucygrKSwgNDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv dG9vbHMvbGlieGMvaW5jbHVkZS94Y19kb20uaCBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGNfZG9t LmgKaW5kZXggNmUwNmVmMWRlYy4uNDIxNmQ2MzQ2MiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMv aW5jbHVkZS94Y19kb20uaAorKysgYi90b29scy9saWJ4Yy9pbmNsdWRlL3hjX2RvbS5oCkBAIC0z MjUsMTIgKzMyNSw4IEBAIHZvaWQgKnhjX2RvbV9ib290X2RvbVVfbWFwKHN0cnVjdCB4Y19kb21f aW1hZ2UgKmRvbSwgeGVuX3Bmbl90IHBmbiwKIGludCB4Y19kb21fYm9vdF9pbWFnZShzdHJ1Y3Qg eGNfZG9tX2ltYWdlICpkb20pOwogaW50IHhjX2RvbV9jb21wYXRfY2hlY2soc3RydWN0IHhjX2Rv bV9pbWFnZSAqZG9tKTsKIGludCB4Y19kb21fZ250dGFiX2luaXQoc3RydWN0IHhjX2RvbV9pbWFn ZSAqZG9tKTsKLWludCB4Y19kb21fZ250dGFiX2h2bV9zZWVkKHhjX2ludGVyZmFjZSAqeGNoLCBk b21pZF90IGRvbWlkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgeGVuX3Bmbl90IGNvbnNv bGVfZ21mbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHhlbl9wZm5fdCB4ZW5zdG9yZV9n bWZuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9taWRfdCBjb25zb2xlX2RvbWlkLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9taWRfdCB4ZW5zdG9yZV9kb21pZCk7Ci1pbnQg eGNfZG9tX2dudHRhYl9zZWVkKHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbWlkLAoraW50 IHhjX2RvbV9nbnR0YWJfc2VlZCh4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBndWVzdF9kb21p ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc19odm0sCiAgICAgICAgICAgICAgICAg ICAgICAgIHhlbl9wZm5fdCBjb25zb2xlX2dtZm4sCiAgICAgICAgICAgICAgICAgICAgICAgIHhl bl9wZm5fdCB4ZW5zdG9yZV9nbWZuLAogICAgICAgICAgICAgICAgICAgICAgICBkb21pZF90IGNv bnNvbGVfZG9taWQsCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19kb21fYm9vdC5jIGIvdG9v bHMvbGlieGMveGNfZG9tX2Jvb3QuYwppbmRleCA4YTM3NmQwOTdjLi4wZmU5NGFhMjU1IDEwMDY0 NAotLS0gYS90b29scy9saWJ4Yy94Y19kb21fYm9vdC5jCisrKyBiL3Rvb2xzL2xpYnhjL3hjX2Rv bV9ib290LmMKQEAgLTI4MiwxMSArMjgyLDI5IEBAIHN0YXRpYyB4ZW5fcGZuX3QgeGNfZG9tX2du dHRhYl9zZXR1cCh4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBkb21pZCkKICAgICByZXR1cm4g Z21mbjsKIH0KIAotaW50IHhjX2RvbV9nbnR0YWJfc2VlZCh4Y19pbnRlcmZhY2UgKnhjaCwgZG9t aWRfdCBkb21pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgeGVuX3Bmbl90IGNvbnNvbGVfZ21m biwKLSAgICAgICAgICAgICAgICAgICAgICAgeGVuX3Bmbl90IHhlbnN0b3JlX2dtZm4sCi0gICAg ICAgICAgICAgICAgICAgICAgIGRvbWlkX3QgY29uc29sZV9kb21pZCwKLSAgICAgICAgICAgICAg ICAgICAgICAgZG9taWRfdCB4ZW5zdG9yZV9kb21pZCkKK3N0YXRpYyB2b2lkIHhjX2RvbV9zZXRf Z250dGFiX2VudHJ5KHhjX2ludGVyZmFjZSAqeGNoLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ3JhbnRfZW50cnlfdjFfdCAqZ250dGFiLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGlkeCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRvbWlkX3QgZ3Vlc3RfZG9taWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkb21pZF90IGJhY2tlbmRfZG9taWQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB4ZW5fcGZuX3QgYmFja2VuZF9nbWZuKQoreworICAgIGlmICgg Z3Vlc3RfZG9taWQgPT0gYmFja2VuZF9kb21pZCB8fCBiYWNrZW5kX2dtZm4gPT0gLTEpCisgICAg ICAgIHJldHVybjsKKworICAgIHhjX2RvbV9wcmludGYoeGNoLCAiJXM6IFsldV0gLT4gMHglIlBS SV94ZW5fcGZuLAorICAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCBpZHgsIGJhY2tlbmRf Z21mbik7CisKKyAgICBnbnR0YWJbaWR4XS5mbGFncyA9IEdURl9wZXJtaXRfYWNjZXNzOworICAg IGdudHRhYltpZHhdLmRvbWlkID0gYmFja2VuZF9kb21pZDsKKyAgICBnbnR0YWJbaWR4XS5mcmFt ZSA9IGJhY2tlbmRfZ21mbjsKK30KKworc3RhdGljIGludCBjb21wYXRfZ250dGFiX3NlZWQoeGNf aW50ZXJmYWNlICp4Y2gsIGRvbWlkX3QgZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB4ZW5fcGZuX3QgY29uc29sZV9nbWZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgeGVuX3Bmbl90IHhlbnN0b3JlX2dtZm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkb21pZF90IGNvbnNvbGVfZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk b21pZF90IHhlbnN0b3JlX2RvbWlkKQogewogCiAgICAgeGVuX3Bmbl90IGdudHRhYl9nbWZuOwpA QCAtMzEwLDE4ICszMjgsMTAgQEAgaW50IHhjX2RvbV9nbnR0YWJfc2VlZCh4Y19pbnRlcmZhY2Ug KnhjaCwgZG9taWRfdCBkb21pZCwKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KIAotICAgIGlm ICggZG9taWQgIT0gY29uc29sZV9kb21pZCAgJiYgY29uc29sZV9nbWZuICE9IC0xKQotICAgIHsK LSAgICAgICAgZ250dGFiW0dOVFRBQl9SRVNFUlZFRF9DT05TT0xFXS5mbGFncyA9IEdURl9wZXJt aXRfYWNjZXNzOwotICAgICAgICBnbnR0YWJbR05UVEFCX1JFU0VSVkVEX0NPTlNPTEVdLmRvbWlk ID0gY29uc29sZV9kb21pZDsKLSAgICAgICAgZ250dGFiW0dOVFRBQl9SRVNFUlZFRF9DT05TT0xF XS5mcmFtZSA9IGNvbnNvbGVfZ21mbjsKLSAgICB9Ci0gICAgaWYgKCBkb21pZCAhPSB4ZW5zdG9y ZV9kb21pZCAmJiB4ZW5zdG9yZV9nbWZuICE9IC0xKQotICAgIHsKLSAgICAgICAgZ250dGFiW0dO VFRBQl9SRVNFUlZFRF9YRU5TVE9SRV0uZmxhZ3MgPSBHVEZfcGVybWl0X2FjY2VzczsKLSAgICAg ICAgZ250dGFiW0dOVFRBQl9SRVNFUlZFRF9YRU5TVE9SRV0uZG9taWQgPSB4ZW5zdG9yZV9kb21p ZDsKLSAgICAgICAgZ250dGFiW0dOVFRBQl9SRVNFUlZFRF9YRU5TVE9SRV0uZnJhbWUgPSB4ZW5z dG9yZV9nbWZuOwotICAgIH0KKyAgICB4Y19kb21fc2V0X2dudHRhYl9lbnRyeSh4Y2gsIGdudHRh YiwgR05UVEFCX1JFU0VSVkVEX0NPTlNPTEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZG9taWQsIGNvbnNvbGVfZG9taWQsIGNvbnNvbGVfZ21mbik7CisgICAgeGNfZG9tX3NldF9nbnR0 YWJfZW50cnkoeGNoLCBnbnR0YWIsIEdOVFRBQl9SRVNFUlZFRF9YRU5TVE9SRSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkb21pZCwgeGVuc3RvcmVfZG9taWQsIHhlbnN0b3JlX2dtZm4p OwogCiAgICAgaWYgKCBtdW5tYXAoZ250dGFiLCBQQUdFX1NJWkUpID09IC0xICkKICAgICB7CkBA IC0zMzksMTEgKzM0OSwxMSBAQCBpbnQgeGNfZG9tX2dudHRhYl9zZWVkKHhjX2ludGVyZmFjZSAq eGNoLCBkb21pZF90IGRvbWlkLAogICAgIHJldHVybiAwOwogfQogCi1pbnQgeGNfZG9tX2dudHRh Yl9odm1fc2VlZCh4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBkb21pZCwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgIHhlbl9wZm5fdCBjb25zb2xlX2dwZm4sCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICB4ZW5fcGZuX3QgeGVuc3RvcmVfZ3BmbiwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRvbWlkX3QgY29uc29sZV9kb21pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg IGRvbWlkX3QgeGVuc3RvcmVfZG9taWQpCitzdGF0aWMgaW50IGNvbXBhdF9nbnR0YWJfaHZtX3Nl ZWQoeGNfaW50ZXJmYWNlICp4Y2gsIGRvbWlkX3QgZG9taWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgeGVuX3Bmbl90IGNvbnNvbGVfZ3BmbiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB4ZW5fcGZuX3QgeGVuc3RvcmVfZ3BmbiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkb21pZF90IGNvbnNvbGVfZG9taWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZG9taWRfdCB4ZW5zdG9yZV9kb21pZCkKIHsKICAgICBpbnQg cmM7CiAgICAgeGVuX3Bmbl90IHNjcmF0Y2hfZ3BmbjsKQEAgLTM4Miw3ICszOTIsNyBAQCBpbnQg eGNfZG9tX2dudHRhYl9odm1fc2VlZCh4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBkb21pZCwK ICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KIAotICAgIHJjID0geGNfZG9tX2dudHRhYl9zZWVk KHhjaCwgZG9taWQsCisgICAgcmMgPSBjb21wYXRfZ250dGFiX3NlZWQoeGNoLCBkb21pZCwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlX2dwZm4sIHhlbnN0b3JlX2dwZm4sCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZV9kb21pZCwgeGVuc3RvcmVfZG9taWQp OwogICAgIGlmIChyYyAhPSAwKQpAQCAtNDA3LDE4ICs0MTcsNTYgQEAgaW50IHhjX2RvbV9nbnR0 YWJfaHZtX3NlZWQoeGNfaW50ZXJmYWNlICp4Y2gsIGRvbWlkX3QgZG9taWQsCiAgICAgcmV0dXJu IDA7CiB9CiAKLWludCB4Y19kb21fZ250dGFiX2luaXQoc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9t KQoraW50IHhjX2RvbV9nbnR0YWJfc2VlZCh4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBndWVz dF9kb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc19odm0sIHhlbl9wZm5fdCBj b25zb2xlX2dtZm4sCisgICAgICAgICAgICAgICAgICAgICAgIHhlbl9wZm5fdCB4ZW5zdG9yZV9n bWZuLCBkb21pZF90IGNvbnNvbGVfZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgIGRvbWlk X3QgeGVuc3RvcmVfZG9taWQpCiB7Ci0gICAgaWYgKCB4Y19kb21fdHJhbnNsYXRlZChkb20pICkg ewotICAgICAgICByZXR1cm4geGNfZG9tX2dudHRhYl9odm1fc2VlZChkb20tPnhjaCwgZG9tLT5n dWVzdF9kb21pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tLT5j b25zb2xlX3BmbiwgZG9tLT54ZW5zdG9yZV9wZm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRvbS0+Y29uc29sZV9kb21pZCwgZG9tLT54ZW5zdG9yZV9kb21pZCk7Ci0g ICAgfSBlbHNlIHsKLSAgICAgICAgcmV0dXJuIHhjX2RvbV9nbnR0YWJfc2VlZChkb20tPnhjaCwg ZG9tLT5ndWVzdF9kb21pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4Y19k b21fcDJtKGRvbSwgZG9tLT5jb25zb2xlX3BmbiksCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgeGNfZG9tX3AybShkb20sIGRvbS0+eGVuc3RvcmVfcGZuKSwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkb20tPmNvbnNvbGVfZG9taWQsIGRvbS0+eGVuc3RvcmVf ZG9taWQpOworICAgIHhlbmZvcmVpZ25tZW1vcnlfaGFuZGxlKiBmbWVtID0geGNoLT5mbWVtOwor ICAgIHhlbmZvcmVpZ25tZW1vcnlfcmVzb3VyY2VfaGFuZGxlICpmcmVzOworICAgIHZvaWQgKmFk ZHIgPSBOVUxMOworCisgICAgZnJlcyA9IHhlbmZvcmVpZ25tZW1vcnlfbWFwX3Jlc291cmNlKAor ICAgICAgICBmbWVtLCBndWVzdF9kb21pZCwgWEVOTUVNX3Jlc291cmNlX2dyYW50X3RhYmxlLAor ICAgICAgICBYRU5NRU1fcmVzb3VyY2VfZ3JhbnRfdGFibGVfaWRfZ3JhbnQsIDAsIDEsICZhZGRy LAorICAgICAgICBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLCAwKTsKKyAgICBpZiAoICFmcmVzICkK KyAgICB7CisgICAgICAgIGlmICggZXJybm8gPT0gRU9QTk9UU1VQUCApCisgICAgICAgICAgICBy ZXR1cm4gaXNfaHZtID8KKyAgICAgICAgICAgICAgICBjb21wYXRfZ250dGFiX2h2bV9zZWVkKHhj aCwgZ3Vlc3RfZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zb2xlX2dtZm4sIHhlbnN0b3JlX2dtZm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zb2xlX2RvbWlkLCB4ZW5zdG9yZV9kb21pZCkgOgorICAgICAgICAgICAg ICAgIGNvbXBhdF9nbnR0YWJfc2VlZCh4Y2gsIGd1ZXN0X2RvbWlkLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zb2xlX2dtZm4sIHhlbnN0b3JlX2dtZm4sCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVfZG9taWQsIHhlbnN0b3JlX2RvbWlk KTsKKworICAgICAgICB4Y19kb21fcGFuaWMoeGNoLCBYQ19JTlRFUk5BTF9FUlJPUiwKKyAgICAg ICAgICAgICAgICAgICAgICIlczogZmFpbGVkIHRvIGFjcXVpcmUgZ3JhbnQgdGFibGUgIgorICAg ICAgICAgICAgICAgICAgICAgIltlcnJubz0lZF1cbiIsCisgICAgICAgICAgICAgICAgICAgICBf X0ZVTkNUSU9OX18sIGVycm5vKTsKKyAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KKworICAgIHhj X2RvbV9zZXRfZ250dGFiX2VudHJ5KHhjaCwgYWRkciwgR05UVEFCX1JFU0VSVkVEX0NPTlNPTEUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3Vlc3RfZG9taWQsIGNvbnNvbGVfZG9taWQs IGNvbnNvbGVfZ21mbik7CisgICAgeGNfZG9tX3NldF9nbnR0YWJfZW50cnkoeGNoLCBhZGRyLCBH TlRUQUJfUkVTRVJWRURfWEVOU1RPUkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3Vl c3RfZG9taWQsIHhlbnN0b3JlX2RvbWlkLCB4ZW5zdG9yZV9nbWZuKTsKKworICAgIHhlbmZvcmVp Z25tZW1vcnlfdW5tYXBfcmVzb3VyY2UoZm1lbSwgZnJlcyk7CisKKyAgICByZXR1cm4gMDsKK30K KworaW50IHhjX2RvbV9nbnR0YWJfaW5pdChzdHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20pCit7Cisg ICAgYm9vbCBpc19odm0gPSB4Y19kb21fdHJhbnNsYXRlZChkb20pOworICAgIHhlbl9wZm5fdCBj b25zb2xlX2dtZm4gPSB4Y19kb21fcDJtKGRvbSwgZG9tLT5jb25zb2xlX3Bmbik7CisgICAgeGVu X3Bmbl90IHhlbnN0b3JlX2dtZm4gPSB4Y19kb21fcDJtKGRvbSwgZG9tLT54ZW5zdG9yZV9wZm4p OworCisgICAgcmV0dXJuIHhjX2RvbV9nbnR0YWJfc2VlZChkb20tPnhjaCwgZG9tLT5ndWVzdF9k b21pZCwgaXNfaHZtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZV9nbWZu LCB4ZW5zdG9yZV9nbWZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tLT5jb25z b2xlX2RvbWlkLCBkb20tPnhlbnN0b3JlX2RvbWlkKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3Rv b2xzL2xpYnhjL3hjX3NyX3Jlc3RvcmVfeDg2X2h2bS5jIGIvdG9vbHMvbGlieGMveGNfc3JfcmVz dG9yZV94ODZfaHZtLmMKaW5kZXggMWRjYTg1MzU0YS4uYTVjNjYxZGE4ZiAxMDA2NDQKLS0tIGEv dG9vbHMvbGlieGMveGNfc3JfcmVzdG9yZV94ODZfaHZtLmMKKysrIGIvdG9vbHMvbGlieGMveGNf c3JfcmVzdG9yZV94ODZfaHZtLmMKQEAgLTIwNywxMSArMjA3LDExIEBAIHN0YXRpYyBpbnQgeDg2 X2h2bV9zdHJlYW1fY29tcGxldGUoc3RydWN0IHhjX3NyX2NvbnRleHQgKmN0eCkKICAgICAgICAg cmV0dXJuIHJjOwogICAgIH0KIAotICAgIHJjID0geGNfZG9tX2dudHRhYl9odm1fc2VlZCh4Y2gs IGN0eC0+ZG9taWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+cmVzdG9y ZS5jb25zb2xlX2dmbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5yZXN0 b3JlLnhlbnN0b3JlX2dmbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5y ZXN0b3JlLmNvbnNvbGVfZG9taWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0 eC0+cmVzdG9yZS54ZW5zdG9yZV9kb21pZCk7CisgICAgcmMgPSB4Y19kb21fZ250dGFiX3NlZWQo eGNoLCBjdHgtPmRvbWlkLCB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+ cmVzdG9yZS5jb25zb2xlX2dmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPnJl c3RvcmUueGVuc3RvcmVfZ2ZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+cmVz dG9yZS5jb25zb2xlX2RvbWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+cmVz dG9yZS54ZW5zdG9yZV9kb21pZCk7CiAgICAgaWYgKCByYyApCiAgICAgewogICAgICAgICBQRVJS T1IoIkZhaWxlZCB0byBzZWVkIGdyYW50IHRhYmxlIik7CmRpZmYgLS1naXQgYS90b29scy9saWJ4 Yy94Y19zcl9yZXN0b3JlX3g4Nl9wdi5jIGIvdG9vbHMvbGlieGMveGNfc3JfcmVzdG9yZV94ODZf cHYuYwppbmRleCA1MGUyNWMxNjJjLi4xMDYzNWQ0MzZiIDEwMDY0NAotLS0gYS90b29scy9saWJ4 Yy94Y19zcl9yZXN0b3JlX3g4Nl9wdi5jCisrKyBiL3Rvb2xzL2xpYnhjL3hjX3NyX3Jlc3RvcmVf eDg2X3B2LmMKQEAgLTExMDQsNyArMTEwNCw3IEBAIHN0YXRpYyBpbnQgeDg2X3B2X3N0cmVhbV9j b21wbGV0ZShzdHJ1Y3QgeGNfc3JfY29udGV4dCAqY3R4KQogICAgIGlmICggcmMgKQogICAgICAg ICByZXR1cm4gcmM7CiAKLSAgICByYyA9IHhjX2RvbV9nbnR0YWJfc2VlZCh4Y2gsIGN0eC0+ZG9t aWQsCisgICAgcmMgPSB4Y19kb21fZ250dGFiX3NlZWQoeGNoLCBjdHgtPmRvbWlkLCBmYWxzZSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPnJlc3RvcmUuY29uc29sZV9nZm4sCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5yZXN0b3JlLnhlbnN0b3JlX2dmbiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPnJlc3RvcmUuY29uc29sZV9kb21pZCwKZGlm ZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbS5jIGIvdG9vbHMvbGlieGwvbGlieGxfZG9t LmMKaW5kZXggZWY4MzRlNjUyZC4uODZmNTYyNTQ5ZSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwv bGlieGxfZG9tLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfZG9tLmMKQEAgLTkwMyw3ICs5MDMs NiBAQCBzdGF0aWMgaW50IGh2bV9idWlsZF9zZXRfcGFyYW1zKHhjX2ludGVyZmFjZSAqaGFuZGxl LCB1aW50MzJfdCBkb21pZCwKICAgICAqc3RvcmVfbWZuID0gc3RyX21mbjsKICAgICAqY29uc29s ZV9tZm4gPSBjb25zX21mbjsKIAotICAgIHhjX2RvbV9nbnR0YWJfaHZtX3NlZWQoaGFuZGxlLCBk b21pZCwgKmNvbnNvbGVfbWZuLCAqc3RvcmVfbWZuLCBjb25zb2xlX2RvbWlkLCBzdG9yZV9kb21p ZCk7CiAgICAgcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL3Rvb2xzL3B5dGhvbi94ZW4vbG93 bGV2ZWwveGMveGMuYyBiL3Rvb2xzL3B5dGhvbi94ZW4vbG93bGV2ZWwveGMveGMuYwppbmRleCBm NTAxNzY0MTAwLi41MWRjMmFmYjFlIDEwMDY0NAotLS0gYS90b29scy9weXRob24veGVuL2xvd2xl dmVsL3hjL3hjLmMKKysrIGIvdG9vbHMvcHl0aG9uL3hlbi9sb3dsZXZlbC94Yy94Yy5jCkBAIC04 MDAsOSArODAwLDkgQEAgc3RhdGljIFB5T2JqZWN0ICpweXhjX2dudHRhYl9odm1fc2VlZChYY09i amVjdCAqc2VsZiwKIAkJCQkgICAgICAmY29uc29sZV9kb21pZCwgJnhlbnN0b3JlX2RvbWlkKSAp CiAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgaWYgKCB4Y19kb21fZ250dGFiX2h2bV9zZWVk KHNlbGYtPnhjX2hhbmRsZSwgZG9tLAotCQkJCWNvbnNvbGVfZ21mbiwgeGVuc3RvcmVfZ21mbiwK LQkJCQljb25zb2xlX2RvbWlkLCB4ZW5zdG9yZV9kb21pZCkgIT0gMCApCisgICAgaWYgKCB4Y19k b21fZ250dGFiX3NlZWQoc2VsZi0+eGNfaGFuZGxlLCBkb20sIHRydWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc29sZV9nbWZuLCB4ZW5zdG9yZV9nbWZuLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnNvbGVfZG9taWQsIHhlbnN0b3JlX2RvbWlkKSAhPSAwICkKICAg ICAgICAgcmV0dXJuIHB5eGNfZXJyb3JfdG9fZXhjZXB0aW9uKHNlbGYtPnhjX2hhbmRsZSk7CiAK ICAgICByZXR1cm4gUHlfTm9uZTsKLS0gCjIuMTEuMAoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVs QGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=