From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v15 11/11] tools/libxenctrl: use new xenforeignmemory API to seed grant table Date: Thu, 14 Dec 2017 17:41:44 +0000 Message-ID: <20171214174144.27852-12-paul.durrant@citrix.com> References: <20171214174144.27852-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.84_2) (envelope-from ) id 1ePXm9-0000ld-Be for xen-devel@lists.xenproject.org; Thu, 14 Dec 2017 17:58:29 +0000 In-Reply-To: <20171214174144.27852-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: 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 LmphY2tzb25AZXUuY2l0cml4LmNvbT4KCnYxMzoKIC0gUmUtYmFzZS4KCnYxMDoKIC0gVXNlIG5l dyBpZCBjb25zdGFudCBmb3IgZ3JhbnQgdGFibGUuCgp2NDoKIC0gTWlub3IgY29zbWV0aWMgZml4 IHN1Z2dlc3RlZCBieSBSb2dlci4KCnYzOgogLSBJbnRyb2R1Y2VkIHhjX2RvbV9zZXRfZ250dGFi X2VudHJ5KCkgdG8gYXZvaWQgZHVwbGljYXRlZCBjb2RlLgotLS0KIHRvb2xzL2xpYnhjL2luY2x1 ZGUveGNfZG9tLmggICAgICAgIHwgICA4ICstLQogdG9vbHMvbGlieGMveGNfZG9tX2Jvb3QuYyAg ICAgICAgICAgfCAxMTQgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCiB0b29s cy9saWJ4Yy94Y19zcl9yZXN0b3JlX3g4Nl9odm0uYyB8ICAxMCArKy0tCiB0b29scy9saWJ4Yy94 Y19zcl9yZXN0b3JlX3g4Nl9wdi5jICB8ICAgMiArLQogdG9vbHMvbGlieGwvbGlieGxfZG9tLmMg ICAgICAgICAgICAgfCAgIDEgLQogdG9vbHMvcHl0aG9uL3hlbi9sb3dsZXZlbC94Yy94Yy5jICAg fCAgIDYgKy0KIDYgZmlsZXMgY2hhbmdlZCwgOTIgaW5zZXJ0aW9ucygrKSwgNDkgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMvaW5jbHVkZS94Y19kb20uaCBiL3Rvb2xzL2xp YnhjL2luY2x1ZGUveGNfZG9tLmgKaW5kZXggY2RjZGQwN2QyYi4uNDVjOWQ2NzZjNyAxMDA2NDQK LS0tIGEvdG9vbHMvbGlieGMvaW5jbHVkZS94Y19kb20uaAorKysgYi90b29scy9saWJ4Yy9pbmNs dWRlL3hjX2RvbS5oCkBAIC0zMjUsMTIgKzMyNSw4IEBAIHZvaWQgKnhjX2RvbV9ib290X2RvbVVf bWFwKHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSwgeGVuX3Bmbl90IHBmbiwKIGludCB4Y19kb21f Ym9vdF9pbWFnZShzdHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20pOwogaW50IHhjX2RvbV9jb21wYXRf Y2hlY2soc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9tKTsKIGludCB4Y19kb21fZ250dGFiX2luaXQo c3RydWN0IHhjX2RvbV9pbWFnZSAqZG9tKTsKLWludCB4Y19kb21fZ250dGFiX2h2bV9zZWVkKHhj X2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCBkb21pZCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgIHhlbl9wZm5fdCBjb25zb2xlX2dtZm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB4 ZW5fcGZuX3QgeGVuc3RvcmVfZ21mbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQz Ml90IGNvbnNvbGVfZG9taWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB4 ZW5zdG9yZV9kb21pZCk7Ci1pbnQgeGNfZG9tX2dudHRhYl9zZWVkKHhjX2ludGVyZmFjZSAqeGNo LCB1aW50MzJfdCBkb21pZCwKK2ludCB4Y19kb21fZ250dGFiX3NlZWQoeGNfaW50ZXJmYWNlICp4 Y2gsIHVpbnQzMl90IGd1ZXN0X2RvbWlkLAorICAgICAgICAgICAgICAgICAgICAgICBib29sIGlz X2h2bSwKICAgICAgICAgICAgICAgICAgICAgICAgeGVuX3Bmbl90IGNvbnNvbGVfZ21mbiwKICAg ICAgICAgICAgICAgICAgICAgICAgeGVuX3Bmbl90IHhlbnN0b3JlX2dtZm4sCiAgICAgICAgICAg ICAgICAgICAgICAgIHVpbnQzMl90IGNvbnNvbGVfZG9taWQsCmRpZmYgLS1naXQgYS90b29scy9s aWJ4Yy94Y19kb21fYm9vdC5jIGIvdG9vbHMvbGlieGMveGNfZG9tX2Jvb3QuYwppbmRleCAyZTU2 ODFkYzVkLi5hNzc5NDIyYWMzIDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy94Y19kb21fYm9vdC5j CisrKyBiL3Rvb2xzL2xpYnhjL3hjX2RvbV9ib290LmMKQEAgLTI1NiwxMSArMjU2LDI5IEBAIHN0 YXRpYyB4ZW5fcGZuX3QgeGNfZG9tX2dudHRhYl9zZXR1cCh4Y19pbnRlcmZhY2UgKnhjaCwgdWlu dDMyX3QgZG9taWQpCiAgICAgcmV0dXJuIGdtZm47CiB9CiAKLWludCB4Y19kb21fZ250dGFiX3Nl ZWQoeGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90IGRvbWlkLAotICAgICAgICAgICAgICAgICAg ICAgICB4ZW5fcGZuX3QgY29uc29sZV9nbWZuLAotICAgICAgICAgICAgICAgICAgICAgICB4ZW5f cGZuX3QgeGVuc3RvcmVfZ21mbiwKLSAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgY29u c29sZV9kb21pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgeGVuc3RvcmVfZG9t aWQpCitzdGF0aWMgdm9pZCB4Y19kb21fc2V0X2dudHRhYl9lbnRyeSh4Y19pbnRlcmZhY2UgKnhj aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyYW50X2VudHJ5X3YxX3Qg KmdudHRhYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu dCBpZHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBndWVz dF9kb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGJh Y2tlbmRfZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ZW5fcGZu X3QgYmFja2VuZF9nbWZuKQoreworICAgIGlmICggZ3Vlc3RfZG9taWQgPT0gYmFja2VuZF9kb21p ZCB8fCBiYWNrZW5kX2dtZm4gPT0gLTEpCisgICAgICAgIHJldHVybjsKKworICAgIHhjX2RvbV9w cmludGYoeGNoLCAiJXM6IFsldV0gLT4gMHglIlBSSV94ZW5fcGZuLAorICAgICAgICAgICAgICAg ICAgX19GVU5DVElPTl9fLCBpZHgsIGJhY2tlbmRfZ21mbik7CisKKyAgICBnbnR0YWJbaWR4XS5m bGFncyA9IEdURl9wZXJtaXRfYWNjZXNzOworICAgIGdudHRhYltpZHhdLmRvbWlkID0gYmFja2Vu ZF9kb21pZDsKKyAgICBnbnR0YWJbaWR4XS5mcmFtZSA9IGJhY2tlbmRfZ21mbjsKK30KKworc3Rh dGljIGludCBjb21wYXRfZ250dGFiX3NlZWQoeGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90IGRv bWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGVuX3Bmbl90IGNvbnNvbGVfZ21m biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhlbl9wZm5fdCB4ZW5zdG9yZV9nbWZu LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgY29uc29sZV9kb21pZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHhlbnN0b3JlX2RvbWlkKQog ewogCiAgICAgeGVuX3Bmbl90IGdudHRhYl9nbWZuOwpAQCAtMjg0LDE4ICszMDIsMTAgQEAgaW50 IHhjX2RvbV9nbnR0YWJfc2VlZCh4Y19pbnRlcmZhY2UgKnhjaCwgdWludDMyX3QgZG9taWQsCiAg ICAgICAgIHJldHVybiAtMTsKICAgICB9CiAKLSAgICBpZiAoIGRvbWlkICE9IGNvbnNvbGVfZG9t aWQgICYmIGNvbnNvbGVfZ21mbiAhPSAtMSkKLSAgICB7Ci0gICAgICAgIGdudHRhYltHTlRUQUJf UkVTRVJWRURfQ09OU09MRV0uZmxhZ3MgPSBHVEZfcGVybWl0X2FjY2VzczsKLSAgICAgICAgZ250 dGFiW0dOVFRBQl9SRVNFUlZFRF9DT05TT0xFXS5kb21pZCA9IGNvbnNvbGVfZG9taWQ7Ci0gICAg ICAgIGdudHRhYltHTlRUQUJfUkVTRVJWRURfQ09OU09MRV0uZnJhbWUgPSBjb25zb2xlX2dtZm47 Ci0gICAgfQotICAgIGlmICggZG9taWQgIT0geGVuc3RvcmVfZG9taWQgJiYgeGVuc3RvcmVfZ21m biAhPSAtMSkKLSAgICB7Ci0gICAgICAgIGdudHRhYltHTlRUQUJfUkVTRVJWRURfWEVOU1RPUkVd LmZsYWdzID0gR1RGX3Blcm1pdF9hY2Nlc3M7Ci0gICAgICAgIGdudHRhYltHTlRUQUJfUkVTRVJW RURfWEVOU1RPUkVdLmRvbWlkID0geGVuc3RvcmVfZG9taWQ7Ci0gICAgICAgIGdudHRhYltHTlRU QUJfUkVTRVJWRURfWEVOU1RPUkVdLmZyYW1lID0geGVuc3RvcmVfZ21mbjsKLSAgICB9CisgICAg eGNfZG9tX3NldF9nbnR0YWJfZW50cnkoeGNoLCBnbnR0YWIsIEdOVFRBQl9SRVNFUlZFRF9DT05T T0xFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWlkLCBjb25zb2xlX2RvbWlkLCBj b25zb2xlX2dtZm4pOworICAgIHhjX2RvbV9zZXRfZ250dGFiX2VudHJ5KHhjaCwgZ250dGFiLCBH TlRUQUJfUkVTRVJWRURfWEVOU1RPUkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9t aWQsIHhlbnN0b3JlX2RvbWlkLCB4ZW5zdG9yZV9nbWZuKTsKIAogICAgIGlmICggbXVubWFwKGdu dHRhYiwgUEFHRV9TSVpFKSA9PSAtMSApCiAgICAgewpAQCAtMzEzLDExICszMjMsMTEgQEAgaW50 IHhjX2RvbV9nbnR0YWJfc2VlZCh4Y19pbnRlcmZhY2UgKnhjaCwgdWludDMyX3QgZG9taWQsCiAg ICAgcmV0dXJuIDA7CiB9CiAKLWludCB4Y19kb21fZ250dGFiX2h2bV9zZWVkKHhjX2ludGVyZmFj ZSAqeGNoLCB1aW50MzJfdCBkb21pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHhlbl9w Zm5fdCBjb25zb2xlX2dwZm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB4ZW5fcGZuX3Qg eGVuc3RvcmVfZ3BmbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGNvbnNv bGVfZG9taWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB4ZW5zdG9yZV9k b21pZCkKK3N0YXRpYyBpbnQgY29tcGF0X2dudHRhYl9odm1fc2VlZCh4Y19pbnRlcmZhY2UgKnhj aCwgdWludDMyX3QgZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGVu X3Bmbl90IGNvbnNvbGVfZ3BmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4 ZW5fcGZuX3QgeGVuc3RvcmVfZ3BmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1aW50MzJfdCBjb25zb2xlX2RvbWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVpbnQzMl90IHhlbnN0b3JlX2RvbWlkKQogewogICAgIGludCByYzsKICAgICB4ZW5fcGZu X3Qgc2NyYXRjaF9ncGZuOwpAQCAtMzU2LDcgKzM2Niw3IEBAIGludCB4Y19kb21fZ250dGFiX2h2 bV9zZWVkKHhjX2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCBkb21pZCwKICAgICAgICAgcmV0dXJu IC0xOwogICAgIH0KIAotICAgIHJjID0geGNfZG9tX2dudHRhYl9zZWVkKHhjaCwgZG9taWQsCisg ICAgcmMgPSBjb21wYXRfZ250dGFiX3NlZWQoeGNoLCBkb21pZCwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zb2xlX2dwZm4sIHhlbnN0b3JlX2dwZm4sCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc29sZV9kb21pZCwgeGVuc3RvcmVfZG9taWQpOwogICAgIGlmIChyYyAh PSAwKQpAQCAtMzgxLDE4ICszOTEsNTYgQEAgaW50IHhjX2RvbV9nbnR0YWJfaHZtX3NlZWQoeGNf aW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90IGRvbWlkLAogICAgIHJldHVybiAwOwogfQogCi1pbnQg eGNfZG9tX2dudHRhYl9pbml0KHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSkKK2ludCB4Y19kb21f Z250dGFiX3NlZWQoeGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90IGd1ZXN0X2RvbWlkLAorICAg ICAgICAgICAgICAgICAgICAgICBib29sIGlzX2h2bSwgeGVuX3Bmbl90IGNvbnNvbGVfZ21mbiwK KyAgICAgICAgICAgICAgICAgICAgICAgeGVuX3Bmbl90IHhlbnN0b3JlX2dtZm4sIHVpbnQzMl90 IGNvbnNvbGVfZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHhlbnN0b3Jl X2RvbWlkKQogewotICAgIGlmICggeGNfZG9tX3RyYW5zbGF0ZWQoZG9tKSApIHsKLSAgICAgICAg cmV0dXJuIHhjX2RvbV9nbnR0YWJfaHZtX3NlZWQoZG9tLT54Y2gsIGRvbS0+Z3Vlc3RfZG9taWQs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbS0+Y29uc29sZV9wZm4s IGRvbS0+eGVuc3RvcmVfcGZuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkb20tPmNvbnNvbGVfZG9taWQsIGRvbS0+eGVuc3RvcmVfZG9taWQpOwotICAgIH0gZWxzZSB7 Ci0gICAgICAgIHJldHVybiB4Y19kb21fZ250dGFiX3NlZWQoZG9tLT54Y2gsIGRvbS0+Z3Vlc3Rf ZG9taWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGNfZG9tX3AybShkb20s IGRvbS0+Y29uc29sZV9wZm4pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhj X2RvbV9wMm0oZG9tLCBkb20tPnhlbnN0b3JlX3BmbiksCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZG9tLT5jb25zb2xlX2RvbWlkLCBkb20tPnhlbnN0b3JlX2RvbWlkKTsKKyAg ICB4ZW5mb3JlaWdubWVtb3J5X2hhbmRsZSogZm1lbSA9IHhjaC0+Zm1lbTsKKyAgICB4ZW5mb3Jl aWdubWVtb3J5X3Jlc291cmNlX2hhbmRsZSAqZnJlczsKKyAgICB2b2lkICphZGRyID0gTlVMTDsK KworICAgIGZyZXMgPSB4ZW5mb3JlaWdubWVtb3J5X21hcF9yZXNvdXJjZSgKKyAgICAgICAgZm1l bSwgZ3Vlc3RfZG9taWQsIFhFTk1FTV9yZXNvdXJjZV9ncmFudF90YWJsZSwKKyAgICAgICAgWEVO TUVNX3Jlc291cmNlX2dyYW50X3RhYmxlX2lkX2dyYW50LCAwLCAxLCAmYWRkciwKKyAgICAgICAg UFJPVF9SRUFEIHwgUFJPVF9XUklURSwgMCk7CisgICAgaWYgKCAhZnJlcyApCisgICAgeworICAg ICAgICBpZiAoIGVycm5vID09IEVPUE5PVFNVUFAgKQorICAgICAgICAgICAgcmV0dXJuIGlzX2h2 bSA/CisgICAgICAgICAgICAgICAgY29tcGF0X2dudHRhYl9odm1fc2VlZCh4Y2gsIGd1ZXN0X2Rv bWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZV9nbWZu LCB4ZW5zdG9yZV9nbWZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc29sZV9kb21pZCwgeGVuc3RvcmVfZG9taWQpIDoKKyAgICAgICAgICAgICAgICBjb21wYXRf Z250dGFiX3NlZWQoeGNoLCBndWVzdF9kb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc29sZV9nbWZuLCB4ZW5zdG9yZV9nbWZuLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zb2xlX2RvbWlkLCB4ZW5zdG9yZV9kb21pZCk7CisKKyAgICAg ICAgeGNfZG9tX3BhbmljKHhjaCwgWENfSU5URVJOQUxfRVJST1IsCisgICAgICAgICAgICAgICAg ICAgICAiJXM6IGZhaWxlZCB0byBhY3F1aXJlIGdyYW50IHRhYmxlICIKKyAgICAgICAgICAgICAg ICAgICAgICJbZXJybm89JWRdXG4iLAorICAgICAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9f LCBlcnJubyk7CisgICAgICAgIHJldHVybiAtMTsKICAgICB9CisKKyAgICB4Y19kb21fc2V0X2du dHRhYl9lbnRyeSh4Y2gsIGFkZHIsIEdOVFRBQl9SRVNFUlZFRF9DT05TT0xFLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGd1ZXN0X2RvbWlkLCBjb25zb2xlX2RvbWlkLCBjb25zb2xlX2dt Zm4pOworICAgIHhjX2RvbV9zZXRfZ250dGFiX2VudHJ5KHhjaCwgYWRkciwgR05UVEFCX1JFU0VS VkVEX1hFTlNUT1JFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1ZXN0X2RvbWlkLCB4 ZW5zdG9yZV9kb21pZCwgeGVuc3RvcmVfZ21mbik7CisKKyAgICB4ZW5mb3JlaWdubWVtb3J5X3Vu bWFwX3Jlc291cmNlKGZtZW0sIGZyZXMpOworCisgICAgcmV0dXJuIDA7Cit9CisKK2ludCB4Y19k b21fZ250dGFiX2luaXQoc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9tKQoreworICAgIGJvb2wgaXNf aHZtID0geGNfZG9tX3RyYW5zbGF0ZWQoZG9tKTsKKyAgICB4ZW5fcGZuX3QgY29uc29sZV9nbWZu ID0geGNfZG9tX3AybShkb20sIGRvbS0+Y29uc29sZV9wZm4pOworICAgIHhlbl9wZm5fdCB4ZW5z dG9yZV9nbWZuID0geGNfZG9tX3AybShkb20sIGRvbS0+eGVuc3RvcmVfcGZuKTsKKworICAgIHJl dHVybiB4Y19kb21fZ250dGFiX3NlZWQoZG9tLT54Y2gsIGRvbS0+Z3Vlc3RfZG9taWQsIGlzX2h2 bSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVfZ21mbiwgeGVuc3RvcmVf Z21mbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbS0+Y29uc29sZV9kb21pZCwg ZG9tLT54ZW5zdG9yZV9kb21pZCk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94 Y19zcl9yZXN0b3JlX3g4Nl9odm0uYyBiL3Rvb2xzL2xpYnhjL3hjX3NyX3Jlc3RvcmVfeDg2X2h2 bS5jCmluZGV4IDIyN2M0ODU1M2UuLjQ3NjVhNTJmMzMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhj L3hjX3NyX3Jlc3RvcmVfeDg2X2h2bS5jCisrKyBiL3Rvb2xzL2xpYnhjL3hjX3NyX3Jlc3RvcmVf eDg2X2h2bS5jCkBAIC0yMTYsMTEgKzIxNiwxMSBAQCBzdGF0aWMgaW50IHg4Nl9odm1fc3RyZWFt X2NvbXBsZXRlKHN0cnVjdCB4Y19zcl9jb250ZXh0ICpjdHgpCiAgICAgICAgIHJldHVybiByYzsK ICAgICB9CiAKLSAgICByYyA9IHhjX2RvbV9nbnR0YWJfaHZtX3NlZWQoeGNoLCBjdHgtPmRvbWlk LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPnJlc3RvcmUuY29uc29sZV9n Zm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+cmVzdG9yZS54ZW5zdG9y ZV9nZm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+cmVzdG9yZS5jb25z b2xlX2RvbWlkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPnJlc3RvcmUu eGVuc3RvcmVfZG9taWQpOworICAgIHJjID0geGNfZG9tX2dudHRhYl9zZWVkKHhjaCwgY3R4LT5k b21pZCwgdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPnJlc3RvcmUuY29u c29sZV9nZm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5yZXN0b3JlLnhlbnN0 b3JlX2dmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPnJlc3RvcmUuY29uc29s ZV9kb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPnJlc3RvcmUueGVuc3Rv cmVfZG9taWQpOwogICAgIGlmICggcmMgKQogICAgIHsKICAgICAgICAgUEVSUk9SKCJGYWlsZWQg dG8gc2VlZCBncmFudCB0YWJsZSIpOwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMveGNfc3JfcmVz dG9yZV94ODZfcHYuYyBiL3Rvb2xzL2xpYnhjL3hjX3NyX3Jlc3RvcmVfeDg2X3B2LmMKaW5kZXgg ZWQwZmQwZWFkOS4uNDllMTM1MDA2YyAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfc3JfcmVz dG9yZV94ODZfcHYuYworKysgYi90b29scy9saWJ4Yy94Y19zcl9yZXN0b3JlX3g4Nl9wdi5jCkBA IC0xMTA0LDcgKzExMDQsNyBAQCBzdGF0aWMgaW50IHg4Nl9wdl9zdHJlYW1fY29tcGxldGUoc3Ry dWN0IHhjX3NyX2NvbnRleHQgKmN0eCkKICAgICBpZiAoIHJjICkKICAgICAgICAgcmV0dXJuIHJj OwogCi0gICAgcmMgPSB4Y19kb21fZ250dGFiX3NlZWQoeGNoLCBjdHgtPmRvbWlkLAorICAgIHJj ID0geGNfZG9tX2dudHRhYl9zZWVkKHhjaCwgY3R4LT5kb21pZCwgZmFsc2UsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY3R4LT5yZXN0b3JlLmNvbnNvbGVfZ2ZuLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGN0eC0+cmVzdG9yZS54ZW5zdG9yZV9nZm4sCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY3R4LT5yZXN0b3JlLmNvbnNvbGVfZG9taWQsCmRpZmYgLS1naXQgYS90 b29scy9saWJ4bC9saWJ4bF9kb20uYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbS5jCmluZGV4IGVm ODM0ZTY1MmQuLjg2ZjU2MjU0OWUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbS5j CisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbS5jCkBAIC05MDMsNyArOTAzLDYgQEAgc3RhdGlj IGludCBodm1fYnVpbGRfc2V0X3BhcmFtcyh4Y19pbnRlcmZhY2UgKmhhbmRsZSwgdWludDMyX3Qg ZG9taWQsCiAgICAgKnN0b3JlX21mbiA9IHN0cl9tZm47CiAgICAgKmNvbnNvbGVfbWZuID0gY29u c19tZm47CiAKLSAgICB4Y19kb21fZ250dGFiX2h2bV9zZWVkKGhhbmRsZSwgZG9taWQsICpjb25z b2xlX21mbiwgKnN0b3JlX21mbiwgY29uc29sZV9kb21pZCwgc3RvcmVfZG9taWQpOwogICAgIHJl dHVybiAwOwogfQogCmRpZmYgLS1naXQgYS90b29scy9weXRob24veGVuL2xvd2xldmVsL3hjL3hj LmMgYi90b29scy9weXRob24veGVuL2xvd2xldmVsL3hjL3hjLmMKaW5kZXggZjUwMTc2NDEwMC4u NTFkYzJhZmIxZSAxMDA2NDQKLS0tIGEvdG9vbHMvcHl0aG9uL3hlbi9sb3dsZXZlbC94Yy94Yy5j CisrKyBiL3Rvb2xzL3B5dGhvbi94ZW4vbG93bGV2ZWwveGMveGMuYwpAQCAtODAwLDkgKzgwMCw5 IEBAIHN0YXRpYyBQeU9iamVjdCAqcHl4Y19nbnR0YWJfaHZtX3NlZWQoWGNPYmplY3QgKnNlbGYs CiAJCQkJICAgICAgJmNvbnNvbGVfZG9taWQsICZ4ZW5zdG9yZV9kb21pZCkgKQogICAgICAgICBy ZXR1cm4gTlVMTDsKIAotICAgIGlmICggeGNfZG9tX2dudHRhYl9odm1fc2VlZChzZWxmLT54Y19o YW5kbGUsIGRvbSwKLQkJCQljb25zb2xlX2dtZm4sIHhlbnN0b3JlX2dtZm4sCi0JCQkJY29uc29s ZV9kb21pZCwgeGVuc3RvcmVfZG9taWQpICE9IDAgKQorICAgIGlmICggeGNfZG9tX2dudHRhYl9z ZWVkKHNlbGYtPnhjX2hhbmRsZSwgZG9tLCB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnNvbGVfZ21mbiwgeGVuc3RvcmVfZ21mbiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zb2xlX2RvbWlkLCB4ZW5zdG9yZV9kb21pZCkgIT0gMCApCiAgICAgICAgIHJldHVy biBweXhjX2Vycm9yX3RvX2V4Y2VwdGlvbihzZWxmLT54Y19oYW5kbGUpOwogCiAgICAgcmV0dXJu IFB5X05vbmU7Ci0tIAoyLjExLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5w cm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8v eGVuLWRldmVs