From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lan Tianyu Subject: [RFC PATCH V2 9/26] Tools/libacpi: Add a user configurable parameter to control vIOMMU attributes Date: Thu, 18 May 2017 01:34:39 -0400 Message-ID: <1495085696-10819-10-git-send-email-tianyu.lan@intel.com> References: <1495085696-10819-1-git-send-email-tianyu.lan@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1495085696-10819-1-git-send-email-tianyu.lan@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Lan Tianyu , kevin.tian@intel.com, wei.liu2@citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, jbeulich@suse.com, Chao Gao List-Id: xen-devel@lists.xenproject.org RnJvbTogQ2hhbyBHYW8gPGNoYW8uZ2FvQGludGVsLmNvbT4KCmEgZmllbGQsIHZpb21tdV9pbmZv LCBpcyBhZGRlZCB0byBzdHJ1Y3QgbGlieGxfZG9tYWluX2J1aWxkX2luZm8uIFNldmVyYWwKYXR0 cmlidXRlcyBjYW4gYmUgc3BlY2lmaWVkIGJ5IGd1ZXN0IGNvbmZpZ3VyYXRpb24gZmlsZSBmb3Ig dGhlIERNQVIgdGFibGUKYnVpbGRpbmcgYW5kIHZJT01NVSBjcmVhdGlvbi4KCkluIGRvbWFpbiBj cmVhdGlvbiBwcm9jZXNzLCBhIG5ldyBsb2dpYyBpcyBhZGRlZCB0byBidWlsZCBBQ1BJIERNQVIg dGFibGUgaW4KdG9vbCBzdGFjayBhY2NvcmRpbmcgVk0gY29uZmlndXJhdGlvbiBhbmQgdG8gcGFz cyB0aG91Z2ggaXQgdG8gaHZtbG9hZGVyIHZpYQp4ZW5zdG9yZSBBQ1BJIFBUIGNoYW5uZWwuIElm IHRoZXJlIGFyZSBBQ1BJIHRhYmxlcyBuZWVkZWQgdG8gcGFzcyB0aHJvdWdoLCB3ZQpqb2ludCB0 aGUgdGFibGVzLgoKU2lnbmVkLW9mZi1ieTogQ2hhbyBHYW8gPGNoYW8uZ2FvQGludGVsLmNvbT4K U2lnbmVkLW9mZi1ieTogTGFuIFRpYW55dSA8dGlhbnl1LmxhbkBpbnRlbC5jb20+Ci0tLQogZG9j cy9tYW4veGwuY2ZnLnBvZC41LmluICAgIHwgMzQgKysrKysrKysrKysrKysrKystCiB0b29scy9s aWJhY3BpL2J1aWxkLmMgICAgICAgfCAgNSArKysKIHRvb2xzL2xpYmFjcGkvbGliYWNwaS5oICAg ICB8ICAxICsKIHRvb2xzL2xpYnhsL2xpYnhsX2RvbS5jICAgICB8IDg3ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogdG9vbHMvbGlieGwvbGlieGxfdHlwZXMu aWRsIHwgMTAgKysrKysrCiB0b29scy94bC94bF9wYXJzZS5jICAgICAgICAgfCA2NCArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysKIDYgZmlsZXMgY2hhbmdlZCwgMjAwIGluc2VydGlv bnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kb2NzL21hbi94bC5jZmcucG9kLjUu aW4gYi9kb2NzL21hbi94bC5jZmcucG9kLjUuaW4KaW5kZXggMTMxNjdmZi4uZGRhNzc0OCAxMDA2 NDQKLS0tIGEvZG9jcy9tYW4veGwuY2ZnLnBvZC41LmluCisrKyBiL2RvY3MvbWFuL3hsLmNmZy5w b2QuNS5pbgpAQCAtMTQ4MSw3ICsxNDgxLDM5IEBAIERvIG5vdCBwcm92aWRlIGEgVk0gZ2VuZXJh dGlvbiBJRC4KIFNlZSBhbHNvICJWaXJ0dWFsIE1hY2hpbmUgR2VuZXJhdGlvbiBJRCIgYnkgTWlj cm9zb2Z0CiAoaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL2VuLXVzL2Rvd25sb2FkL2RldGFpbHMu YXNweD9pZD0zMDcwNykuCiAKLT1iYWNrIAorPWJhY2sKKworPWl0ZW0gQjx2aW9tbXU9IlZJT01N VV9TVFJJTkciPgorCitTcGVjaWZpZXMgdGhlIHZpb21tdSB3aGljaCBhcmUgdG8gYmUgcHJvdmlk ZWQgdG8gdGhlIGd1ZXN0LgorCitCPFZJT01NVV9TVFJJTkc+IGhhcyB0aGUgZm9ybSBDPEtFWT1W QUxVRSxLRVk9VkFMVUUsLi4uPiB3aGVyZToKKworPW92ZXIgNAorCis9aXRlbSBCPEtFWT1WQUxV RT4KKworUG9zc2libGUgQjxLRVk+cyBhcmU6CisKKz1vdmVyIDQKKworPWl0ZW0gQjx0eXBlPSJT VFJJTkciPgorCitDdXJyZW50bHkgdGhlcmUgaXMgb25seSBvbmUgdmFsaWQgdHlwZToKKworKFg4 NiBvbmx5KSAidnRkIiBtZWFucyBwcm92aWRpbmcgYSBlbXVsYXRlZCBpbnRlbCBWVC1kIHRvIHRo ZSBndWVzdC4KKworPWl0ZW0gQjxpbnRyZW1hcD1CT09MRUFOPgorCitTcGVjaWZpZXMgd2hldGhl ciB0aGUgdnZ0ZCBzaG91bGQgc3VwcG9ydCBpbnRycnVwdCByZW1hcHBpbmcKK2FuZCBkZWZhdWx0 ICd0cnVlJy4KKworPWl0ZW0gQjx4MmFwaWM9Qk9PTEVBTj4KKworU3BlY2lmaWVzIHdoZXRoZXIg dGhlIHZ2dGQgc2hvdWxkIHN1cHBvcnQgeDJhcGljIG1vZGUKK2FuZCBkZWZhdWx0ICd0cnVlJy4K KworPWJhY2sKIAogPWhlYWQzIEd1ZXN0IFZpcnR1YWwgVGltZSBDb250cm9scwogCmRpZmYgLS1n aXQgYS90b29scy9saWJhY3BpL2J1aWxkLmMgYi90b29scy9saWJhY3BpL2J1aWxkLmMKaW5kZXgg ZDViZWRmZC4uMGMzZDNkYiAxMDA2NDQKLS0tIGEvdG9vbHMvbGliYWNwaS9idWlsZC5jCisrKyBi L3Rvb2xzL2xpYmFjcGkvYnVpbGQuYwpAQCAtNTYxLDYgKzU2MSwxMSBAQCBzdGF0aWMgaW50IG5l d192bV9naWQoc3RydWN0IGFjcGlfY3R4dCAqY3R4dCwKICAgICByZXR1cm4gMTsKIH0KIAordWlu dDMyX3QgYWNwaV9nZXRfdGFibGVfc2l6ZShzdHJ1Y3QgYWNwaV9oZWFkZXIgKiBoZWFkZXIpCit7 CisgICAgcmV0dXJuIGhlYWRlciA/IGhlYWRlci0+bGVuZ3RoIDogMDsKK30KKwogaW50IGFjcGlf YnVpbGRfdGFibGVzKHN0cnVjdCBhY3BpX2N0eHQgKmN0eHQsIHN0cnVjdCBhY3BpX2NvbmZpZyAq Y29uZmlnKQogewogICAgIHN0cnVjdCBhY3BpX2luZm8gKmFjcGlfaW5mbzsKZGlmZiAtLWdpdCBh L3Rvb2xzL2xpYmFjcGkvbGliYWNwaS5oIGIvdG9vbHMvbGliYWNwaS9saWJhY3BpLmgKaW5kZXgg NmE0ZTFjZi4uMGE1OGQ2ZiAxMDA2NDQKLS0tIGEvdG9vbHMvbGliYWNwaS9saWJhY3BpLmgKKysr IGIvdG9vbHMvbGliYWNwaS9saWJhY3BpLmgKQEAgLTEwOSw2ICsxMDksNyBAQCBzdHJ1Y3QgYWNw aV9jb25maWcgewogI2RlZmluZSBETUFSX1gyQVBJQ19PUFRfT1VUIDB4Mgogc3RydWN0IGFjcGlf ZG1hciAqY29uc3RydWN0X2RtYXIoc3RydWN0IGFjcGlfY3R4dCAqY3R4dCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBhY3BpX2NvbmZpZyAqY29uZmlnKTsK K3VpbnQzMl90IGFjcGlfZ2V0X3RhYmxlX3NpemUoc3RydWN0IGFjcGlfaGVhZGVyICogaGVhZGVy KTsKIGludCBhY3BpX2J1aWxkX3RhYmxlcyhzdHJ1Y3QgYWNwaV9jdHh0ICpjdHh0LCBzdHJ1Y3Qg YWNwaV9jb25maWcgKmNvbmZpZyk7CiAKICNlbmRpZiAvKiBfX0xJQkFDUElfSF9fICovCmRpZmYg LS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9kb20uYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbS5j CmluZGV4IDVkOTE0YTUuLmY4ZDYxYzIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX2Rv bS5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbS5jCkBAIC0xOSwxMSArMTksMTMgQEAKIAog I2luY2x1ZGUgImxpYnhsX2ludGVybmFsLmgiCiAjaW5jbHVkZSAibGlieGxfYXJjaC5oIgorI2lu Y2x1ZGUgImxpYmFjcGkvbGliYWNwaS5oIgogCiAjaW5jbHVkZSA8eGNfZG9tLmg+CiAjaW5jbHVk ZSA8eGVuL2h2bS9odm1faW5mb190YWJsZS5oPgogI2luY2x1ZGUgPHhlbi9odm0vaHZtX3hzX3N0 cmluZ3MuaD4KICNpbmNsdWRlIDx4ZW4vaHZtL2U4MjAuaD4KKyNpbmNsdWRlIDx4ZW4vdmlvbW11 Lmg+CiAKICNpbmNsdWRlICJfcGF0aHMuaCIKIApAQCAtOTI1LDYgKzkyNyw0MyBAQCBvdXQ6CiAg ICAgcmV0dXJuIHJjOwogfQogCitzdGF0aWMgdW5zaWduZWQgbG9uZyBhY3BpX3YycChzdHJ1Y3Qg YWNwaV9jdHh0ICpjdHh0LCB2b2lkICp2KQoreworICAgIHJldHVybiAodW5zaWduZWQgbG9uZyl2 OworfQorCitzdGF0aWMgdm9pZCAqYWNwaV9tZW1fYWxsb2Moc3RydWN0IGFjcGlfY3R4dCAqY3R4 dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBzaXplLCB1aW50MzJfdCBh bGlnbikKK3sKKyAgICByZXR1cm4gYWxpZ25lZF9hbGxvYyhhbGlnbiwgc2l6ZSk7Cit9CisKK3N0 YXRpYyB2b2lkIGFjcGlfbWVtX2ZyZWUoc3RydWN0IGFjcGlfY3R4dCAqY3R4dCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgdm9pZCAqdiwgdWludDMyX3Qgc2l6ZSkKK3sKKyAgICAvKiBBQ1BJ IGJ1aWxkZXIgY3VycmVudGx5IGRvZXNuJ3QgZnJlZSBtZW1vcnkgc28gdGhpcyBpcyBqdXN0IGEg c3R1YiAqLworfQorCitzdGF0aWMgaW50IGxpYnhsX19hY3BpX2J1aWxkX2RtYXIobGlieGxfX2dj ICpnYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgYWNwaV9jb25m aWcgKmNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoqZGF0 YV9yLCBpbnQgKmRhdGFsZW5fcikKK3sKKyAgICBzdHJ1Y3QgYWNwaV9jdHh0IGN0eHQ7CisgICAg dm9pZCAqdGFibGU7CisKKyAgICBjdHh0Lm1lbV9vcHMuYWxsb2MgPSBhY3BpX21lbV9hbGxvYzsK KyAgICBjdHh0Lm1lbV9vcHMuZnJlZSA9IGFjcGlfbWVtX2ZyZWU7CisgICAgY3R4dC5tZW1fb3Bz LnYycCA9IGFjcGlfdjJwOworCisgICAgdGFibGUgPSBjb25zdHJ1Y3RfZG1hcigmY3R4dCwgY29u ZmlnKTsKKyAgICBpZiAoICF0YWJsZSApCisgICAgICAgIHJldHVybiBFUlJPUl9GQUlMOworCisg ICAgKmRhdGFfciA9IHRhYmxlOworICAgICpkYXRhbGVuX3IgPSBhY3BpX2dldF90YWJsZV9zaXpl KChzdHJ1Y3QgYWNwaV9oZWFkZXIgKil0YWJsZSk7CisgICAgcmV0dXJuIDA7Cit9CisKIHN0YXRp YyBpbnQgbGlieGxfX2RvbWFpbl9maXJtd2FyZShsaWJ4bF9fZ2MgKmdjLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2RvbWFpbl9idWlsZF9pbmZvICppbmZvLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSkK QEAgLTEwNDUsNiArMTA4NCw1NCBAQCBzdGF0aWMgaW50IGxpYnhsX19kb21haW5fZmlybXdhcmUo bGlieGxfX2djICpnYywKICAgICAgICAgfQogICAgIH0KIAorICAgIC8qIGJ1aWxkIERNQVIgdGFi bGUgYWNjb3JkaW5nIGd1ZXN0IGNvbmZpZ3VyYXRpb24gYW5kIGpvaW50IGl0IHdpdGggb3RoZXIK KyAgICAgKiBhcGNpIHRhYmxlcyBzcGVjaWZpZWQgYnkgYWNwaV9tb2R1bGVzICovCisgICAgaWYg KChpbmZvLT51Lmh2bS52aW9tbXUudHlwZSA9PSBWSU9NTVVfVFlQRV9JTlRFTF9WVEQpICYmCisg ICAgICAgICFsaWJ4bF9kZWZib29sX2lzX2RlZmF1bHQoaW5mby0+dS5odm0udmlvbW11LmludHJl bWFwKSAmJgorICAgICAgICBpbmZvLT5kZXZpY2VfbW9kZWxfdmVyc2lvbiA9PSBMSUJYTF9ERVZJ Q0VfTU9ERUxfVkVSU0lPTl9RRU1VX1hFTikgeworICAgICAgICBzdHJ1Y3QgYWNwaV9jb25maWcg Y29uZmlnOworCisgICAgICAgIG1lbXNldCgmY29uZmlnLCAwLCBzaXplb2YoY29uZmlnKSk7Cisg ICAgICAgIGlmIChsaWJ4bF9kZWZib29sX3ZhbChpbmZvLT51Lmh2bS52aW9tbXUuaW50cmVtYXAp KSB7CisgICAgICAgICAgICBjb25maWcudGFibGVfZmxhZ3MgfD0gQUNQSV9IQVNfRE1BUjsKKyAg ICAgICAgICAgIGNvbmZpZy5kbWFyX2ZsYWcgPSBETUFSX0lOVFJfUkVNQVA7CisgICAgICAgICAg ICBpZiAoIWxpYnhsX2RlZmJvb2xfaXNfZGVmYXVsdChpbmZvLT51Lmh2bS52aW9tbXUueDJhcGlj KQorICAgICAgICAgICAgICAgICYmICFsaWJ4bF9kZWZib29sX3ZhbChpbmZvLT51Lmh2bS52aW9t bXUueDJhcGljKSkKKyAgICAgICAgICAgICAgICBjb25maWcuZG1hcl9mbGFnIHw9IERNQVJfWDJB UElDX09QVF9PVVQ7CisKKyAgICAgICAgICAgIGNvbmZpZy52aW9tbXVfYmFzZV9hZGRyID0gaW5m by0+dS5odm0udmlvbW11LmJhc2VfYWRkcjsKKyAgICAgICAgICAgIGRhdGEgPSBOVUxMOworICAg ICAgICAgICAgZSA9IGxpYnhsX19hY3BpX2J1aWxkX2RtYXIoZ2MsICZjb25maWcsICZkYXRhLCAm ZGF0YWxlbik7CisgICAgICAgICAgICBpZiAoZSkgeworICAgICAgICAgICAgICAgIExPR0UoRVJS T1IsICJmYWlsZWQgdG8gYnVpbGQgRE1BUiB0YWJsZSIpOworICAgICAgICAgICAgICAgIHJjID0g RVJST1JfRkFJTDsKKyAgICAgICAgICAgICAgICBnb3RvIG91dDsKKyAgICAgICAgICAgIH0KKwor ICAgICAgICAgICAgbGlieGxfX3B0cl9hZGQoZ2MsIGRhdGEpOworICAgICAgICAgICAgaWYgKGRh dGFsZW4pIHsKKyAgICAgICAgICAgICAgICBpZiAoIWRvbS0+YWNwaV9tb2R1bGVzWzBdLmRhdGEp IHsKKyAgICAgICAgICAgICAgICAgICAgZG9tLT5hY3BpX21vZHVsZXNbMF0uZGF0YSA9IGRhdGE7 CisgICAgICAgICAgICAgICAgICAgIGRvbS0+YWNwaV9tb2R1bGVzWzBdLmxlbmd0aCA9ICh1aW50 MzJfdClkYXRhbGVuOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg ICAgIC8qIGpvaW50IHRhYmxlcyAqLworICAgICAgICAgICAgICAgICAgICB2b2lkICpuZXdkYXRh OworICAgICAgICAgICAgICAgICAgICBuZXdkYXRhID0gbWFsbG9jKGRhdGFsZW4gKyBkb20tPmFj cGlfbW9kdWxlc1swXS5sZW5ndGgpOworICAgICAgICAgICAgICAgICAgICBpZiAoIW5ld2RhdGEp IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIExPR0UoRVJST1IsICJmYWlsZWQgdG8gam9pbnQg RE1BUiB0YWJsZSB0byBhY3BpIG1vZHVsZXMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJj ID0gRVJST1JfRkFJTDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0OworICAgICAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG1lbWNweShuZXdkYXRhLCBkb20t PmFjcGlfbW9kdWxlc1swXS5kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tLT5h Y3BpX21vZHVsZXNbMF0ubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgbWVtY3B5KG5ld2Rh dGEgKyBkb20tPmFjcGlfbW9kdWxlc1swXS5sZW5ndGgsIGRhdGEsIGRhdGFsZW4pOworICAgICAg ICAgICAgICAgICAgICBkb20tPmFjcGlfbW9kdWxlc1swXS5kYXRhID0gbmV3ZGF0YTsKKyAgICAg ICAgICAgICAgICAgICAgZG9tLT5hY3BpX21vZHVsZXNbMF0ubGVuZ3RoICs9ICh1aW50MzJfdClk YXRhbGVuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg IH0KKwogICAgIHJldHVybiAwOwogb3V0OgogICAgIGFzc2VydChyYyAhPSAwKTsKZGlmZiAtLWdp dCBhL3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlkbCBiL3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVz LmlkbAppbmRleCAyMjA0NDI1Li45M2U5ZTJjIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4 bF90eXBlcy5pZGwKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsCkBAIC00NTAsNiAr NDUwLDE1IEBAIGxpYnhsX2FsdHAybV9tb2RlID0gRW51bWVyYXRpb24oImFsdHAybV9tb2RlIiwg WwogICAgICgzLCAibGltaXRlZCIpLAogICAgIF0sIGluaXRfdmFsID0gIkxJQlhMX0FMVFAyTV9N T0RFX0RJU0FCTEVEIikKIAorbGlieGxfdmlvbW11X2luZm8gPSBTdHJ1Y3QoInZpb21tdV9pbmZv IiwgWworICAgICgidHlwZSIsICAgICAgICAgICAgdWludDY0KSwKKyAgICAoImludHJlbWFwIiwg ICAgICAgIGxpYnhsX2RlZmJvb2wpLAorICAgICgieDJhcGljIiwgICAgICAgICAgbGlieGxfZGVm Ym9vbCksCisgICAgKCJjYXAiLCAgICAgICAgICAgICB1aW50NjQpLAorICAgICgiYmFzZV9hZGRy IiwgICAgICAgdWludDY0KSwKKyAgICAoImxlbmd0aCIsICAgICAgICAgIHVpbnQ2NCksCisgICAg XSkKKwogbGlieGxfZG9tYWluX2J1aWxkX2luZm8gPSBTdHJ1Y3QoImRvbWFpbl9idWlsZF9pbmZv IixbCiAgICAgKCJtYXhfdmNwdXMiLCAgICAgICBpbnRlZ2VyKSwKICAgICAoImF2YWlsX3ZjcHVz IiwgICAgIGxpYnhsX2JpdG1hcCksCkBAIC01NjQsNiArNTczLDcgQEAgbGlieGxfZG9tYWluX2J1 aWxkX2luZm8gPSBTdHJ1Y3QoImRvbWFpbl9idWlsZF9pbmZvIixbCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoInNlcmlhbF9saXN0IiwgICAgICBsaWJ4bF9zdHJpbmdf bGlzdCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoInJkbSIsIGxp YnhsX3JkbV9yZXNlcnZlKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICgicmRtX21lbV9ib3VuZGFyeV9tZW1rYiIsIE1lbUtCKSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICgidmlvbW11IiwgICAgICAgICAgIGxpYnhsX3Zpb21tdV9pbmZv KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pKSwKICAgICAgICAg ICAgICAgICAgKCJwdiIsIFN0cnVjdChOb25lLCBbKCJrZXJuZWwiLCBzdHJpbmcpLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoInNsYWNrX21lbWtiIiwgTWVtS0IpLApk aWZmIC0tZ2l0IGEvdG9vbHMveGwveGxfcGFyc2UuYyBiL3Rvb2xzL3hsL3hsX3BhcnNlLmMKaW5k ZXggODU2YTMwNC4uNTg0ZDgwNSAxMDA2NDQKLS0tIGEvdG9vbHMveGwveGxfcGFyc2UuYworKysg Yi90b29scy94bC94bF9wYXJzZS5jCkBAIC0xOCw2ICsxOCw3IEBACiAjaW5jbHVkZSA8c3RkaW8u aD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDx4ZW4vaHZtL2U4MjAuaD4KKyNpbmNs dWRlIDx4ZW4vdmlvbW11Lmg+CiAKICNpbmNsdWRlIDxsaWJ4bC5oPgogI2luY2x1ZGUgPGxpYnhs X3V0aWxzLmg+CkBAIC0yOSw2ICszMCw5IEBACiAKIGV4dGVybiB2b2lkIHNldF9kZWZhdWx0X25p Y192YWx1ZXMobGlieGxfZGV2aWNlX25pYyAqbmljKTsKIAorI2RlZmluZSBWSU9NTVVfQkFTRV9B RERSIDB4ZmVkOTAwMDBVTAorI2RlZmluZSBWSU9NTVVfUkVHSVNURVJfTEVOIDB4MTAwMFVMCisK ICNkZWZpbmUgQVJSQVlfRVhURU5EX0lOSVRfX0NPUkUoYXJyYXksY291bnQsaW5pdGZuLG1vcmUp ICAgICAgICAgICAgICAgIFwKICAgICAoeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgdHlwZW9mKChjb3Vu dCkpIGFycmF5X2V4dGVuZF9vbGRfY291bnQgPSAoY291bnQpOyAgICAgICAgICAgICAgIFwKQEAg LTgwMyw2ICs4MDcsMzIgQEAgaW50IHBhcnNlX3VzYmRldl9jb25maWcobGlieGxfZGV2aWNlX3Vz YmRldiAqdXNiZGV2LCBjaGFyICp0b2tlbikKICAgICByZXR1cm4gMDsKIH0KIAorLyogUGFyc2Vz IHZpb21tdSBkYXRhIGFuZCBhZGRzIGluZm8gaW50byB2aW9tbXUKKyAqIFJldHVybnMgMSBpZiB0 aGUgaW5wdXQgdG9rZW4gZG9lcyBub3QgbWF0Y2ggb25lIG9mIHRoZSBrZXlzCisgKiBvciBwYXJz ZWQgdmFsdWVzIGFyZSBub3QgY29ycmVjdC4gU3VjY2Vzc2Z1bCBwYXJzZSByZXR1cm5zIDAgKi8K K3N0YXRpYyBpbnQgcGFyc2VfdmlvbW11X2NvbmZpZyhsaWJ4bF92aW9tbXVfaW5mbyAqdmlvbW11 LCBjaGFyICp0b2tlbikKK3sKKyAgICBjaGFyICpvcGFyZzsKKworICAgIGlmIChNQVRDSF9PUFRJ T04oInR5cGUiLCB0b2tlbiwgb3BhcmcpKSB7CisgICAgICAgIGlmICghc3RyY21wKG9wYXJnLCAi dnRkIikpIHsKKyAgICAgICAgICAgIHZpb21tdS0+dHlwZSA9IFZJT01NVV9UWVBFX0lOVEVMX1ZU RDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiSW52YWxp ZCB2aW9tbXUgdHlwZTogJXNcbiIsIG9wYXJnKTsKKyAgICAgICAgICAgIHJldHVybiAxOworICAg ICAgICB9CisgICAgfSBlbHNlIGlmIChNQVRDSF9PUFRJT04oImludHJlbWFwIiwgdG9rZW4sIG9w YXJnKSkgeworICAgICAgICBsaWJ4bF9kZWZib29sX3NldCgmdmlvbW11LT5pbnRyZW1hcCwgISFz dHJ0b3VsKG9wYXJnLCBOVUxMLCAwKSk7CisgICAgfSBlbHNlIGlmIChNQVRDSF9PUFRJT04oIngy YXBpYyIsIHRva2VuLCBvcGFyZykpIHsKKyAgICAgICAgbGlieGxfZGVmYm9vbF9zZXQoJnZpb21t dS0+eDJhcGljLCAhIXN0cnRvdWwob3BhcmcsIE5VTEwsIDApKTsKKyAgICB9IGVsc2UgeworICAg ICAgICBmcHJpbnRmKHN0ZGVyciwgIlVua25vd24gc3RyaW5nIGAlcycgaW4gdmlvbW11IHNwZWNc biIsIHRva2VuKTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9 CisKIHZvaWQgcGFyc2VfY29uZmlnX2RhdGEoY29uc3QgY2hhciAqY29uZmlnX3NvdXJjZSwKICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqY29uZmlnX2RhdGEsCiAgICAgICAgICAg ICAgICAgICAgICAgIGludCBjb25maWdfbGVuLApAQCAtMTE4Miw2ICsxMjEyLDQwIEBAIHZvaWQg cGFyc2VfY29uZmlnX2RhdGEoY29uc3QgY2hhciAqY29uZmlnX3NvdXJjZSwKIAogICAgICAgICBp ZiAoIXhsdV9jZmdfZ2V0X2xvbmcgKGNvbmZpZywgInJkbV9tZW1fYm91bmRhcnkiLCAmbCwgMCkp CiAgICAgICAgICAgICBiX2luZm8tPnUuaHZtLnJkbV9tZW1fYm91bmRhcnlfbWVta2IgPSBsICog MTAyNDsKKworICAgICAgICBpZiAoIXhsdV9jZmdfZ2V0X3N0cmluZyhjb25maWcsICJ2aW9tbXUi LCAmYnVmLCAwKSkgeworICAgICAgICAgICAgbGlieGxfdmlvbW11X2luZm8gdmlvbW11OworICAg ICAgICAgICAgY2hhciAqcCwgKnN0cjI7CisKKyAgICAgICAgICAgIHN0cjIgPSBzdHJkdXAoYnVm KTsKKyAgICAgICAgICAgIGlmICghc3RyMikgeworICAgICAgICAgICAgICAgIGZwcmludGYoc3Rk ZXJyLCAiRVJST1I6IHN0cmR1cCBmYWlsZWRcbiIpOworICAgICAgICAgICAgICAgIGV4aXQgKDEp OworICAgICAgICAgICAgfQorICAgICAgICAgICAgcCA9IHN0cnRvayhzdHIyLCAiLCIpOworICAg ICAgICAgICAgaWYgKCFwKSB7CisgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJP UjogaW52YWxpZCB2aW9tbXVfaW5mbyBmb3JtYXRcbiIpOworICAgICAgICAgICAgICAgIGV4aXQg KDEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgIGlm ICgqcCA9PSAnICcpCisgICAgICAgICAgICAgICAgICAgIHArKzsKKyAgICAgICAgICAgICAgICBp ZiAocGFyc2VfdmlvbW11X2NvbmZpZygmdmlvbW11LCBwKSkgeworICAgICAgICAgICAgICAgICAg ICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBpbnZhbGlkIHZpb21tdSBzZXR0aW5nXG4iKTsKKyAg ICAgICAgICAgICAgICAgICAgZXhpdCAoMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg ICAgfSB3aGlsZSAoKHA9c3RydG9rKE5VTEwsICIsIikpICE9IE5VTEwpOworICAgICAgICAgICAg ZnJlZShzdHIyKTsKKyAgICAgICAgICAgIGJfaW5mby0+dS5odm0udmlvbW11LnR5cGUgPSB2aW9t bXUudHlwZTsKKyAgICAgICAgICAgIGJfaW5mby0+dS5odm0udmlvbW11LmludHJlbWFwID0gdmlv bW11LmludHJlbWFwOworICAgICAgICAgICAgYl9pbmZvLT51Lmh2bS52aW9tbXUueDJhcGljID0g dmlvbW11LngyYXBpYzsKKyAgICAgICAgICAgIGlmICggbGlieGxfZGVmYm9vbF92YWwoYl9pbmZv LT51Lmh2bS52aW9tbXUuaW50cmVtYXApICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg ICBiX2luZm8tPnUuaHZtLnZpb21tdS5jYXAgPSBWSU9NTVVfQ0FQX0lSUV9SRU1BUFBJTkc7Cisg ICAgICAgICAgICAgICAgYl9pbmZvLT51Lmh2bS52aW9tbXUuYmFzZV9hZGRyID0gVklPTU1VX0JB U0VfQUREUjsKKyAgICAgICAgICAgICAgICBiX2luZm8tPnUuaHZtLnZpb21tdS5sZW5ndGggPSBW SU9NTVVfUkVHSVNURVJfTEVOOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgICAgIGJy ZWFrOwogICAgIGNhc2UgTElCWExfRE9NQUlOX1RZUEVfUFY6CiAgICAgewotLSAKMS44LjMuMQoK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4u b3JnL3hlbi1kZXZlbAo=