From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v23 2/2] tools/libxenctrl: use new xenforeignmemory API to seed grant table Date: Thu, 9 Aug 2018 10:59:41 +0100 Message-ID: <20180809095941.27874-3-paul.durrant@citrix.com> References: <20180809095941.27874-1-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fnhjO-0001e6-K7 for xen-devel@lists.xenproject.org; Thu, 09 Aug 2018 09:59:46 +0000 In-Reply-To: <20180809095941.27874-1-paul.durrant@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Andrew Cooper , 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 LmphY2tzb25AZXUuY2l0cml4LmNvbT4KQ2M6IEFuZHJldyBDb29wZXIgPEFuZHJldy5Db29wZXIz QGNpdHJpeC5jb20+Cgp2MjI6CiAtIEFkZHJlc3NlZCBjb21tZW50cyBmcm9tIEFuZHJldyAoY29z bWV0aWMgY2hhbmdlcyBvbmx5KS4KCnYxODoKIC0gVHJpdmlhbCByZS1iYXNlLgoKdjEzOgogLSBS ZS1iYXNlLgoKdjEwOgogLSBVc2UgbmV3IGlkIGNvbnN0YW50IGZvciBncmFudCB0YWJsZS4KCnY0 OgogLSBNaW5vciBjb3NtZXRpYyBmaXggc3VnZ2VzdGVkIGJ5IFJvZ2VyLgoKdjM6CiAtIEludHJv ZHVjZWQgeGNfZG9tX3NldF9nbnR0YWJfZW50cnkoKSB0byBhdm9pZCBkdXBsaWNhdGVkIGNvZGUu Ci0tLQogdG9vbHMvbGlieGMvaW5jbHVkZS94Y19kb20uaCAgICAgICAgfCAgMTIgKy0tCiB0b29s cy9saWJ4Yy94Y19kb21fYm9vdC5jICAgICAgICAgICB8IDE2NiArKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0KIHRvb2xzL2xpYnhjL3hjX3NyX3Jlc3RvcmVfeDg2X2h2bS5jIHwg IDEwICstLQogdG9vbHMvbGlieGMveGNfc3JfcmVzdG9yZV94ODZfcHYuYyAgfCAgIDIgKy0KIHRv b2xzL2xpYnhsL2xpYnhsX2RvbS5jICAgICAgICAgICAgIHwgICAxIC0KIHRvb2xzL3B5dGhvbi94 ZW4vbG93bGV2ZWwveGMveGMuYyAgIHwgICA2ICstCiA2IGZpbGVzIGNoYW5nZWQsIDEyMCBpbnNl cnRpb25zKCspLCA3NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy9pbmNs dWRlL3hjX2RvbS5oIGIvdG9vbHMvbGlieGMvaW5jbHVkZS94Y19kb20uaAppbmRleCA4YTY2ODg5 YzY4Li4wYjVhNjMyZDNjIDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy9pbmNsdWRlL3hjX2RvbS5o CisrKyBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGNfZG9tLmgKQEAgLTMzNywxNCArMzM3LDEwIEBA IHZvaWQgKnhjX2RvbV9ib290X2RvbVVfbWFwKHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSwgeGVu X3Bmbl90IHBmbiwKIGludCB4Y19kb21fYm9vdF9pbWFnZShzdHJ1Y3QgeGNfZG9tX2ltYWdlICpk b20pOwogaW50IHhjX2RvbV9jb21wYXRfY2hlY2soc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9tKTsK IGludCB4Y19kb21fZ250dGFiX2luaXQoc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9tKTsKLWludCB4 Y19kb21fZ250dGFiX2h2bV9zZWVkKHhjX2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCBkb21pZCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgIHhlbl9wZm5fdCBjb25zb2xlX2dtZm4sCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICB4ZW5fcGZuX3QgeGVuc3RvcmVfZ21mbiwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGNvbnNvbGVfZG9taWQsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICB1aW50MzJfdCB4ZW5zdG9yZV9kb21pZCk7Ci1pbnQgeGNfZG9tX2dudHRh Yl9zZWVkKHhjX2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCBkb21pZCwKLSAgICAgICAgICAgICAg ICAgICAgICAgeGVuX3Bmbl90IGNvbnNvbGVfZ21mbiwKLSAgICAgICAgICAgICAgICAgICAgICAg eGVuX3Bmbl90IHhlbnN0b3JlX2dtZm4sCitpbnQgeGNfZG9tX2dudHRhYl9zZWVkKHhjX2ludGVy ZmFjZSAqeGNoLCB1aW50MzJfdCBndWVzdF9kb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAg Ym9vbCBpc19odm0sCisgICAgICAgICAgICAgICAgICAgICAgIHhlbl9wZm5fdCBjb25zb2xlX2dm biwKKyAgICAgICAgICAgICAgICAgICAgICAgeGVuX3Bmbl90IHhlbnN0b3JlX2dmbiwKICAgICAg ICAgICAgICAgICAgICAgICAgdWludDMyX3QgY29uc29sZV9kb21pZCwKICAgICAgICAgICAgICAg ICAgICAgICAgdWludDMyX3QgeGVuc3RvcmVfZG9taWQpOwogYm9vbCB4Y19kb21fdHJhbnNsYXRl ZChjb25zdCBzdHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20pOwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGli eGMveGNfZG9tX2Jvb3QuYyBiL3Rvb2xzL2xpYnhjL3hjX2RvbV9ib290LmMKaW5kZXggMmU1Njgx ZGM1ZC4uMGY4NTIyMzdlZSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfZG9tX2Jvb3QuYwor KysgYi90b29scy9saWJ4Yy94Y19kb21fYm9vdC5jCkBAIC0yNTYsNzEgKzI1Niw4MSBAQCBzdGF0 aWMgeGVuX3Bmbl90IHhjX2RvbV9nbnR0YWJfc2V0dXAoeGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQz Ml90IGRvbWlkKQogICAgIHJldHVybiBnbWZuOwogfQogCi1pbnQgeGNfZG9tX2dudHRhYl9zZWVk KHhjX2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCBkb21pZCwKLSAgICAgICAgICAgICAgICAgICAg ICAgeGVuX3Bmbl90IGNvbnNvbGVfZ21mbiwKLSAgICAgICAgICAgICAgICAgICAgICAgeGVuX3Bm bl90IHhlbnN0b3JlX2dtZm4sCi0gICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGNvbnNv bGVfZG9taWQsCi0gICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHhlbnN0b3JlX2RvbWlk KQorc3RhdGljIHZvaWQgeGNfZG9tX3NldF9nbnR0YWJfZW50cnkoeGNfaW50ZXJmYWNlICp4Y2gs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmFudF9lbnRyeV92MV90ICpn bnR0YWIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQg aWR4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZ3Vlc3Rf ZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBiYWNr ZW5kX2RvbWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGVuX3Bmbl90 IGd1ZXN0X2dmbikKIHsKKyAgICBpZiAoIGd1ZXN0X2RvbWlkID09IGJhY2tlbmRfZG9taWQgfHwg Z3Vlc3RfZ2ZuID09IC0xICkKKyAgICAgICAgcmV0dXJuOworCisgICAgeGNfZG9tX3ByaW50Zih4 Y2gsICIlczogWyV1XSAtPiAweCUiUFJJX3hlbl9wZm4sCisgICAgICAgICAgICAgICAgICBfX2Z1 bmNfXywgaWR4LCBndWVzdF9nZm4pOworCisgICAgZ250dGFiW2lkeF0uZmxhZ3MgPSBHVEZfcGVy bWl0X2FjY2VzczsKKyAgICBnbnR0YWJbaWR4XS5kb21pZCA9IGJhY2tlbmRfZG9taWQ7CisgICAg Z250dGFiW2lkeF0uZnJhbWUgPSBndWVzdF9nZm47Cit9CiAKLSAgICB4ZW5fcGZuX3QgZ250dGFi X2dtZm47CitzdGF0aWMgaW50IGNvbXBhdF9nbnR0YWJfc2VlZCh4Y19pbnRlcmZhY2UgKnhjaCwg dWludDMyX3QgZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ZW5fcGZuX3Qg Y29uc29sZV9nZm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ZW5fcGZuX3QgeGVu c3RvcmVfZ2ZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgY29uc29s ZV9kb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHhlbnN0b3Jl X2RvbWlkKQoreworCisgICAgeGVuX3Bmbl90IGdudHRhYl9nZm47CiAgICAgZ3JhbnRfZW50cnlf djFfdCAqZ250dGFiOwogCi0gICAgZ250dGFiX2dtZm4gPSB4Y19kb21fZ250dGFiX3NldHVwKHhj aCwgZG9taWQpOwotICAgIGlmICggZ250dGFiX2dtZm4gPT0gLTEgKQorICAgIGdudHRhYl9nZm4g PSB4Y19kb21fZ250dGFiX3NldHVwKHhjaCwgZG9taWQpOworICAgIGlmICggZ250dGFiX2dmbiA9 PSAtMSApCiAgICAgICAgIHJldHVybiAtMTsKIAogICAgIGdudHRhYiA9IHhjX21hcF9mb3JlaWdu X3JhbmdlKHhjaCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21pZCwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQUdFX1NJWkUsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUFJPVF9SRUFEfFBST1RfV1JJVEUsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZ250dGFiX2dtZm4pOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGdudHRhYl9nZm4pOwogICAgIGlmICggZ250dGFiID09IE5VTEwgKQogICAg IHsKICAgICAgICAgeGNfZG9tX3BhbmljKHhjaCwgWENfSU5URVJOQUxfRVJST1IsCi0gICAgICAg ICAgICAgICAgICAgICAiJXM6IGZhaWxlZCB0byBtYXAgZG9tVSBncmFudCB0YWJsZSAiCisgICAg ICAgICAgICAgICAgICAgICAiJXM6IGZhaWxlZCB0byBtYXAgZCVkIGdyYW50IHRhYmxlICIKICAg ICAgICAgICAgICAgICAgICAgICJbZXJybm89JWRdXG4iLAotICAgICAgICAgICAgICAgICAgICAg X19GVU5DVElPTl9fLCBlcnJubyk7CisgICAgICAgICAgICAgICAgICAgICBfX2Z1bmNfXywgZG9t aWQsIGVycm5vKTsKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KIAotICAgIGlmICggZG9taWQg IT0gY29uc29sZV9kb21pZCAgJiYgY29uc29sZV9nbWZuICE9IC0xKQotICAgIHsKLSAgICAgICAg Z250dGFiW0dOVFRBQl9SRVNFUlZFRF9DT05TT0xFXS5mbGFncyA9IEdURl9wZXJtaXRfYWNjZXNz OwotICAgICAgICBnbnR0YWJbR05UVEFCX1JFU0VSVkVEX0NPTlNPTEVdLmRvbWlkID0gY29uc29s ZV9kb21pZDsKLSAgICAgICAgZ250dGFiW0dOVFRBQl9SRVNFUlZFRF9DT05TT0xFXS5mcmFtZSA9 IGNvbnNvbGVfZ21mbjsKLSAgICB9Ci0gICAgaWYgKCBkb21pZCAhPSB4ZW5zdG9yZV9kb21pZCAm JiB4ZW5zdG9yZV9nbWZuICE9IC0xKQotICAgIHsKLSAgICAgICAgZ250dGFiW0dOVFRBQl9SRVNF UlZFRF9YRU5TVE9SRV0uZmxhZ3MgPSBHVEZfcGVybWl0X2FjY2VzczsKLSAgICAgICAgZ250dGFi W0dOVFRBQl9SRVNFUlZFRF9YRU5TVE9SRV0uZG9taWQgPSB4ZW5zdG9yZV9kb21pZDsKLSAgICAg ICAgZ250dGFiW0dOVFRBQl9SRVNFUlZFRF9YRU5TVE9SRV0uZnJhbWUgPSB4ZW5zdG9yZV9nbWZu OwotICAgIH0KKyAgICB4Y19kb21fc2V0X2dudHRhYl9lbnRyeSh4Y2gsIGdudHRhYiwgR05UVEFC X1JFU0VSVkVEX0NPTlNPTEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9taWQsIGNv bnNvbGVfZG9taWQsIGNvbnNvbGVfZ2ZuKTsKKyAgICB4Y19kb21fc2V0X2dudHRhYl9lbnRyeSh4 Y2gsIGdudHRhYiwgR05UVEFCX1JFU0VSVkVEX1hFTlNUT1JFLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRvbWlkLCB4ZW5zdG9yZV9kb21pZCwgeGVuc3RvcmVfZ2ZuKTsKIAogICAgIGlm ICggbXVubWFwKGdudHRhYiwgUEFHRV9TSVpFKSA9PSAtMSApCiAgICAgewogICAgICAgICB4Y19k b21fcGFuaWMoeGNoLCBYQ19JTlRFUk5BTF9FUlJPUiwKLSAgICAgICAgICAgICAgICAgICAgICIl czogZmFpbGVkIHRvIHVubWFwIGRvbVUgZ3JhbnQgdGFibGUgIgorICAgICAgICAgICAgICAgICAg ICAgIiVzOiBmYWlsZWQgdG8gdW5tYXAgZCVkIGdyYW50IHRhYmxlICIKICAgICAgICAgICAgICAg ICAgICAgICJbZXJybm89JWRdXG4iLAotICAgICAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9f LCBlcnJubyk7CisgICAgICAgICAgICAgICAgICAgICBfX2Z1bmNfXywgZG9taWQsIGVycm5vKTsK ICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KIAogICAgIC8qIEd1ZXN0IHNob3VsZG4ndCByZWFs bHkgdG91Y2ggaXRzIGdyYW50IHRhYmxlIHVudGlsIGl0IGhhcwogICAgICAqIGVuYWJsZWQgaXRz IGNhY2hlcy4gQnV0IGxldHMgYmUgbmljZS4gKi8KLSAgICB4Y19kb21haW5fY2FjaGVmbHVzaCh4 Y2gsIGRvbWlkLCBnbnR0YWJfZ21mbiwgMSk7CisgICAgeGNfZG9tYWluX2NhY2hlZmx1c2goeGNo LCBkb21pZCwgZ250dGFiX2dmbiwgMSk7CiAKICAgICByZXR1cm4gMDsKIH0KIAotaW50IHhjX2Rv bV9nbnR0YWJfaHZtX3NlZWQoeGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90IGRvbWlkLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgeGVuX3Bmbl90IGNvbnNvbGVfZ3BmbiwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgIHhlbl9wZm5fdCB4ZW5zdG9yZV9ncGZuLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgdWludDMyX3QgY29uc29sZV9kb21pZCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVpbnQzMl90IHhlbnN0b3JlX2RvbWlkKQorc3RhdGljIGludCBjb21wYXRfZ250 dGFiX2h2bV9zZWVkKHhjX2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCBkb21pZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB4ZW5fcGZuX3QgY29uc29sZV9nZm4sCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgeGVuX3Bmbl90IHhlbnN0b3JlX2dmbiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBjb25zb2xlX2RvbWlkLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHhlbnN0b3JlX2RvbWlkKQog ewogICAgIGludCByYzsKLSAgICB4ZW5fcGZuX3Qgc2NyYXRjaF9ncGZuOworICAgIHhlbl9wZm5f dCBzY3JhdGNoX2dmbjsKICAgICBzdHJ1Y3QgeGVuX2FkZF90b19waHlzbWFwIHhhdHAgPSB7CiAg ICAgICAgIC5kb21pZCA9IGRvbWlkLAogICAgICAgICAuc3BhY2UgPSBYRU5NQVBTUEFDRV9ncmFu dF90YWJsZSwKQEAgLTMzMCw0MSArMzQwLDQxIEBAIGludCB4Y19kb21fZ250dGFiX2h2bV9zZWVk KHhjX2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCBkb21pZCwKICAgICAgICAgLmRvbWlkID0gZG9t aWQsCiAgICAgfTsKIAotICAgIHJjID0geGNfY29yZV9hcmNoX2dldF9zY3JhdGNoX2dwZm4oeGNo LCBkb21pZCwgJnNjcmF0Y2hfZ3Bmbik7CisgICAgcmMgPSB4Y19jb3JlX2FyY2hfZ2V0X3NjcmF0 Y2hfZ3Bmbih4Y2gsIGRvbWlkLCAmc2NyYXRjaF9nZm4pOwogICAgIGlmICggcmMgPCAwICkKICAg ICB7CiAgICAgICAgIHhjX2RvbV9wYW5pYyh4Y2gsIFhDX0lOVEVSTkFMX0VSUk9SLAotICAgICAg ICAgICAgICAgICAgICAgIiVzOiBmYWlsZWQgdG8gZ2V0IGEgc2NyYXRjaCBnZm4gIgorICAgICAg ICAgICAgICAgICAgICAgIiVzOiBmYWlsZWQgdG8gZ2V0IGEgc2NyYXRjaCBnZm4gZnJvbSBkJWQi CiAgICAgICAgICAgICAgICAgICAgICAiW2Vycm5vPSVkXVxuIiwKLSAgICAgICAgICAgICAgICAg ICAgIF9fRlVOQ1RJT05fXywgZXJybm8pOworICAgICAgICAgICAgICAgICAgICAgX19mdW5jX18s IGRvbWlkLCBlcnJubyk7CiAgICAgICAgIHJldHVybiAtMTsKICAgICB9Ci0gICAgeGF0cC5ncGZu ID0gc2NyYXRjaF9ncGZuOwotICAgIHhyZnAuZ3BmbiA9IHNjcmF0Y2hfZ3BmbjsKLQotICAgIHhj X2RvbV9wcmludGYoeGNoLCAiJXM6IGNhbGxlZCwgcGZuPTB4JSJQUklfeGVuX3BmbiwgX19GVU5D VElPTl9fLAotICAgICAgICAgICAgICAgICAgc2NyYXRjaF9ncGZuKTsKKyAgICB4YXRwLmdwZm4g PSBzY3JhdGNoX2dmbjsKKyAgICB4cmZwLmdwZm4gPSBzY3JhdGNoX2dmbjsKIAorICAgIHhjX2Rv bV9wcmludGYoeGNoLCAiJXM6IGQlZDogcGZuPTB4JSJQUklfeGVuX3BmbiwgX19mdW5jX18sCisg ICAgICAgICAgICAgICAgICBkb21pZCwgc2NyYXRjaF9nZm4pOwogCiAgICAgcmMgPSBkb19tZW1v cnlfb3AoeGNoLCBYRU5NRU1fYWRkX3RvX3BoeXNtYXAsICZ4YXRwLCBzaXplb2YoeGF0cCkpOwog ICAgIGlmICggcmMgIT0gMCApCiAgICAgewogICAgICAgICB4Y19kb21fcGFuaWMoeGNoLCBYQ19J TlRFUk5BTF9FUlJPUiwKLSAgICAgICAgICAgICAgICAgICAgICIlczogZmFpbGVkIHRvIGFkZCBn bnR0YWIgdG8gcGh5c21hcCAiCisgICAgICAgICAgICAgICAgICAgICAiJXM6IGZhaWxlZCB0byBh ZGQgZ250dGFiIHRvIGQlZCBwaHlzbWFwICIKICAgICAgICAgICAgICAgICAgICAgICJbZXJybm89 JWRdXG4iLAotICAgICAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCBlcnJubyk7CisgICAg ICAgICAgICAgICAgICAgICBfX2Z1bmNfXywgZG9taWQsIGVycm5vKTsKICAgICAgICAgcmV0dXJu IC0xOwogICAgIH0KIAotICAgIHJjID0geGNfZG9tX2dudHRhYl9zZWVkKHhjaCwgZG9taWQsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZV9ncGZuLCB4ZW5zdG9yZV9ncGZuLAor ICAgIHJjID0gY29tcGF0X2dudHRhYl9zZWVkKHhjaCwgZG9taWQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc29sZV9nZm4sIHhlbnN0b3JlX2dmbiwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zb2xlX2RvbWlkLCB4ZW5zdG9yZV9kb21pZCk7CiAgICAgaWYgKHJjICE9 IDApCiAgICAgewogICAgICAgICB4Y19kb21fcGFuaWMoeGNoLCBYQ19JTlRFUk5BTF9FUlJPUiwK LSAgICAgICAgICAgICAgICAgICAgICIlczogZmFpbGVkIHRvIHNlZWQgZ250dGFiIGVudHJpZXNc biIsCi0gICAgICAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18pOwotICAgICAgICAodm9pZCkg ZG9fbWVtb3J5X29wKHhjaCwgWEVOTUVNX3JlbW92ZV9mcm9tX3BoeXNtYXAsICZ4cmZwLCBzaXpl b2YoeHJmcCkpOworICAgICAgICAgICAgICAgICAgICAgIiVzOiBmYWlsZWQgdG8gc2VlZCBnbnR0 YWIgZW50cmllcyBmb3IgZCVkXG4iLAorICAgICAgICAgICAgICAgICAgICAgX19mdW5jX18sIGRv bWlkKTsKKyAgICAgICAgKHZvaWQpIGRvX21lbW9yeV9vcCh4Y2gsIFhFTk1FTV9yZW1vdmVfZnJv bV9waHlzbWFwLCAmeHJmcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoeHJm cCkpOwogICAgICAgICByZXR1cm4gLTE7CiAgICAgfQogCkBAIC0zNzIsMjcgKzM4Miw2NSBAQCBp bnQgeGNfZG9tX2dudHRhYl9odm1fc2VlZCh4Y19pbnRlcmZhY2UgKnhjaCwgdWludDMyX3QgZG9t aWQsCiAgICAgaWYgKHJjICE9IDApCiAgICAgewogICAgICAgICB4Y19kb21fcGFuaWMoeGNoLCBY Q19JTlRFUk5BTF9FUlJPUiwKLSAgICAgICAgICAgICAgICAgICAgICIlczogZmFpbGVkIHRvIHJl bW92ZSBnbnR0YWIgZnJvbSBwaHlzbWFwICIKKyAgICAgICAgICAgICAgICAgICAgICIlczogZmFp bGVkIHRvIHJlbW92ZSBnbnR0YWIgZnJvbSBkJWQgcGh5c21hcCAiCiAgICAgICAgICAgICAgICAg ICAgICAiW2Vycm5vPSVkXVxuIiwKLSAgICAgICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywg ZXJybm8pOworICAgICAgICAgICAgICAgICAgICAgX19mdW5jX18sIGRvbWlkLCBlcnJubyk7CiAg ICAgICAgIHJldHVybiAtMTsKICAgICB9CiAKICAgICByZXR1cm4gMDsKIH0KIAotaW50IHhjX2Rv bV9nbnR0YWJfaW5pdChzdHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20pCitpbnQgeGNfZG9tX2dudHRh Yl9zZWVkKHhjX2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCBndWVzdF9kb21pZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgYm9vbCBpc19odm0sIHhlbl9wZm5fdCBjb25zb2xlX2dmbiwKKyAgICAg ICAgICAgICAgICAgICAgICAgeGVuX3Bmbl90IHhlbnN0b3JlX2dmbiwgdWludDMyX3QgY29uc29s ZV9kb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgeGVuc3RvcmVfZG9taWQp CiB7Ci0gICAgaWYgKCB4Y19kb21fdHJhbnNsYXRlZChkb20pICkgewotICAgICAgICByZXR1cm4g eGNfZG9tX2dudHRhYl9odm1fc2VlZChkb20tPnhjaCwgZG9tLT5ndWVzdF9kb21pZCwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tLT5jb25zb2xlX3BmbiwgZG9tLT54 ZW5zdG9yZV9wZm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbS0+ Y29uc29sZV9kb21pZCwgZG9tLT54ZW5zdG9yZV9kb21pZCk7Ci0gICAgfSBlbHNlIHsKLSAgICAg ICAgcmV0dXJuIHhjX2RvbV9nbnR0YWJfc2VlZChkb20tPnhjaCwgZG9tLT5ndWVzdF9kb21pZCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4Y19kb21fcDJtKGRvbSwgZG9tLT5j b25zb2xlX3BmbiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGNfZG9tX3Ay bShkb20sIGRvbS0+eGVuc3RvcmVfcGZuKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkb20tPmNvbnNvbGVfZG9taWQsIGRvbS0+eGVuc3RvcmVfZG9taWQpOworICAgIHhlbmZv cmVpZ25tZW1vcnlfaGFuZGxlKiBmbWVtID0geGNoLT5mbWVtOworICAgIHhlbmZvcmVpZ25tZW1v cnlfcmVzb3VyY2VfaGFuZGxlICpmcmVzOworICAgIHZvaWQgKmFkZHIgPSBOVUxMOworCisgICAg ZnJlcyA9IHhlbmZvcmVpZ25tZW1vcnlfbWFwX3Jlc291cmNlKAorICAgICAgICBmbWVtLCBndWVz dF9kb21pZCwgWEVOTUVNX3Jlc291cmNlX2dyYW50X3RhYmxlLAorICAgICAgICBYRU5NRU1fcmVz b3VyY2VfZ3JhbnRfdGFibGVfaWRfc2hhcmVkLCAwLCAxLCAmYWRkciwKKyAgICAgICAgUFJPVF9S RUFEIHwgUFJPVF9XUklURSwgMCk7CisgICAgaWYgKCAhZnJlcyApCisgICAgeworICAgICAgICBp ZiAoIGVycm5vID09IEVPUE5PVFNVUFAgKQorICAgICAgICAgICAgcmV0dXJuIGlzX2h2bSA/Cisg ICAgICAgICAgICAgICAgY29tcGF0X2dudHRhYl9odm1fc2VlZCh4Y2gsIGd1ZXN0X2RvbWlkLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZV9nZm4sIHhlbnN0 b3JlX2dmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVf ZG9taWQsIHhlbnN0b3JlX2RvbWlkKSA6CisgICAgICAgICAgICAgICAgY29tcGF0X2dudHRhYl9z ZWVkKHhjaCwgZ3Vlc3RfZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnNvbGVfZ2ZuLCB4ZW5zdG9yZV9nZm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnNvbGVfZG9taWQsIHhlbnN0b3JlX2RvbWlkKTsKKworICAgICAgICB4Y19kb21f cGFuaWMoeGNoLCBYQ19JTlRFUk5BTF9FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAgICIlczog ZmFpbGVkIHRvIGFjcXVpcmUgZCVkIGdyYW50IHRhYmxlICIKKyAgICAgICAgICAgICAgICAgICAg ICJbZXJybm89JWRdXG4iLAorICAgICAgICAgICAgICAgICAgICAgX19mdW5jX18sIGd1ZXN0X2Rv bWlkLCBlcnJubyk7CisgICAgICAgIHJldHVybiAtMTsKICAgICB9CisKKyAgICB4Y19kb21fc2V0 X2dudHRhYl9lbnRyeSh4Y2gsIGFkZHIsIEdOVFRBQl9SRVNFUlZFRF9DT05TT0xFLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGd1ZXN0X2RvbWlkLCBjb25zb2xlX2RvbWlkLCBjb25zb2xl X2dmbik7CisgICAgeGNfZG9tX3NldF9nbnR0YWJfZW50cnkoeGNoLCBhZGRyLCBHTlRUQUJfUkVT RVJWRURfWEVOU1RPUkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3Vlc3RfZG9taWQs IHhlbnN0b3JlX2RvbWlkLCB4ZW5zdG9yZV9nZm4pOworCisgICAgeGVuZm9yZWlnbm1lbW9yeV91 bm1hcF9yZXNvdXJjZShmbWVtLCBmcmVzKTsKKworICAgIHJldHVybiAwOworfQorCitpbnQgeGNf ZG9tX2dudHRhYl9pbml0KHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSkKK3sKKyAgICBib29sIGlz X2h2bSA9IHhjX2RvbV90cmFuc2xhdGVkKGRvbSk7CisgICAgeGVuX3Bmbl90IGNvbnNvbGVfZ2Zu ID0geGNfZG9tX3AybShkb20sIGRvbS0+Y29uc29sZV9wZm4pOworICAgIHhlbl9wZm5fdCB4ZW5z dG9yZV9nZm4gPSB4Y19kb21fcDJtKGRvbSwgZG9tLT54ZW5zdG9yZV9wZm4pOworCisgICAgcmV0 dXJuIHhjX2RvbV9nbnR0YWJfc2VlZChkb20tPnhjaCwgZG9tLT5ndWVzdF9kb21pZCwgaXNfaHZt LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZV9nZm4sIHhlbnN0b3JlX2dm biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbS0+Y29uc29sZV9kb21pZCwgZG9t LT54ZW5zdG9yZV9kb21pZCk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19z cl9yZXN0b3JlX3g4Nl9odm0uYyBiL3Rvb2xzL2xpYnhjL3hjX3NyX3Jlc3RvcmVfeDg2X2h2bS5j CmluZGV4IDIyN2M0ODU1M2UuLjQ3NjVhNTJmMzMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL3hj X3NyX3Jlc3RvcmVfeDg2X2h2bS5jCisrKyBiL3Rvb2xzL2xpYnhjL3hjX3NyX3Jlc3RvcmVfeDg2 X2h2bS5jCkBAIC0yMTYsMTEgKzIxNiwxMSBAQCBzdGF0aWMgaW50IHg4Nl9odm1fc3RyZWFtX2Nv bXBsZXRlKHN0cnVjdCB4Y19zcl9jb250ZXh0ICpjdHgpCiAgICAgICAgIHJldHVybiByYzsKICAg ICB9CiAKLSAgICByYyA9IHhjX2RvbV9nbnR0YWJfaHZtX3NlZWQoeGNoLCBjdHgtPmRvbWlkLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPnJlc3RvcmUuY29uc29sZV9nZm4s Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+cmVzdG9yZS54ZW5zdG9yZV9n Zm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+cmVzdG9yZS5jb25zb2xl X2RvbWlkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPnJlc3RvcmUueGVu c3RvcmVfZG9taWQpOworICAgIHJjID0geGNfZG9tX2dudHRhYl9zZWVkKHhjaCwgY3R4LT5kb21p ZCwgdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPnJlc3RvcmUuY29uc29s ZV9nZm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5yZXN0b3JlLnhlbnN0b3Jl X2dmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPnJlc3RvcmUuY29uc29sZV9k b21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPnJlc3RvcmUueGVuc3RvcmVf ZG9taWQpOwogICAgIGlmICggcmMgKQogICAgIHsKICAgICAgICAgUEVSUk9SKCJGYWlsZWQgdG8g c2VlZCBncmFudCB0YWJsZSIpOwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMveGNfc3JfcmVzdG9y ZV94ODZfcHYuYyBiL3Rvb2xzL2xpYnhjL3hjX3NyX3Jlc3RvcmVfeDg2X3B2LmMKaW5kZXggZDgx ZGZkY2NhNi4uYTJkYmY4NTE1NyAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfc3JfcmVzdG9y ZV94ODZfcHYuYworKysgYi90b29scy9saWJ4Yy94Y19zcl9yZXN0b3JlX3g4Nl9wdi5jCkBAIC0x MTA1LDcgKzExMDUsNyBAQCBzdGF0aWMgaW50IHg4Nl9wdl9zdHJlYW1fY29tcGxldGUoc3RydWN0 IHhjX3NyX2NvbnRleHQgKmN0eCkKICAgICBpZiAoIHJjICkKICAgICAgICAgcmV0dXJuIHJjOwog Ci0gICAgcmMgPSB4Y19kb21fZ250dGFiX3NlZWQoeGNoLCBjdHgtPmRvbWlkLAorICAgIHJjID0g eGNfZG9tX2dudHRhYl9zZWVkKHhjaCwgY3R4LT5kb21pZCwgZmFsc2UsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY3R4LT5yZXN0b3JlLmNvbnNvbGVfZ2ZuLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGN0eC0+cmVzdG9yZS54ZW5zdG9yZV9nZm4sCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY3R4LT5yZXN0b3JlLmNvbnNvbGVfZG9taWQsCmRpZmYgLS1naXQgYS90b29s cy9saWJ4bC9saWJ4bF9kb20uYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbS5jCmluZGV4IDNjZmUw ZDQ4MDguLmM4YTFkYzdmZDUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbS5jCisr KyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbS5jCkBAIC05MDUsNyArOTA1LDYgQEAgc3RhdGljIGlu dCBodm1fYnVpbGRfc2V0X3BhcmFtcyh4Y19pbnRlcmZhY2UgKmhhbmRsZSwgdWludDMyX3QgZG9t aWQsCiAgICAgKnN0b3JlX21mbiA9IHN0cl9tZm47CiAgICAgKmNvbnNvbGVfbWZuID0gY29uc19t Zm47CiAKLSAgICB4Y19kb21fZ250dGFiX2h2bV9zZWVkKGhhbmRsZSwgZG9taWQsICpjb25zb2xl X21mbiwgKnN0b3JlX21mbiwgY29uc29sZV9kb21pZCwgc3RvcmVfZG9taWQpOwogICAgIHJldHVy biAwOwogfQogCmRpZmYgLS1naXQgYS90b29scy9weXRob24veGVuL2xvd2xldmVsL3hjL3hjLmMg Yi90b29scy9weXRob24veGVuL2xvd2xldmVsL3hjL3hjLmMKaW5kZXggZmMxOWVlMDc0MS4uNWFk ZTEyNzYyYSAxMDA2NDQKLS0tIGEvdG9vbHMvcHl0aG9uL3hlbi9sb3dsZXZlbC94Yy94Yy5jCisr KyBiL3Rvb2xzL3B5dGhvbi94ZW4vbG93bGV2ZWwveGMveGMuYwpAQCAtODAwLDkgKzgwMCw5IEBA IHN0YXRpYyBQeU9iamVjdCAqcHl4Y19nbnR0YWJfaHZtX3NlZWQoWGNPYmplY3QgKnNlbGYsCiAJ CQkJICAgICAgJmNvbnNvbGVfZG9taWQsICZ4ZW5zdG9yZV9kb21pZCkgKQogICAgICAgICByZXR1 cm4gTlVMTDsKIAotICAgIGlmICggeGNfZG9tX2dudHRhYl9odm1fc2VlZChzZWxmLT54Y19oYW5k bGUsIGRvbSwKLQkJCQljb25zb2xlX2dtZm4sIHhlbnN0b3JlX2dtZm4sCi0JCQkJY29uc29sZV9k b21pZCwgeGVuc3RvcmVfZG9taWQpICE9IDAgKQorICAgIGlmICggeGNfZG9tX2dudHRhYl9zZWVk KHNlbGYtPnhjX2hhbmRsZSwgZG9tLCB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnNvbGVfZ21mbiwgeGVuc3RvcmVfZ21mbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zb2xlX2RvbWlkLCB4ZW5zdG9yZV9kb21pZCkgIT0gMCApCiAgICAgICAgIHJldHVybiBw eXhjX2Vycm9yX3RvX2V4Y2VwdGlvbihzZWxmLT54Y19oYW5kbGUpOwogCiAgICAgcmV0dXJuIFB5 X05vbmU7Ci0tIAoyLjExLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9q ZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVu LWRldmVs