From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v3 08/13] x86: add iommu_op to query reserved ranges Date: Tue, 17 Jul 2018 14:38:11 +0100 Message-ID: <20180717133816.37958-9-paul.durrant@citrix.com> References: <20180717133816.37958-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 1ffQBP-0005mO-3L for xen-devel@lists.xenproject.org; Tue, 17 Jul 2018 13:38:27 +0000 In-Reply-To: <20180717133816.37958-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: Stefano Stabellini , Wei Liu , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Paul Durrant , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBhZGRzIGFuIGlvbW11X29wIHRvIGFsbG93IHRoZSBkb21haW4gSU9NTVUgcmVz ZXJ2ZWQgcmFuZ2VzIHRvIGJlCnF1ZXJpZWQgYnkgdGhlIGd1ZXN0LgoKTk9URTogVGhlIG51bWJl ciBvZiByZXNlcnZlZCByYW5nZXMgaXMgZGV0ZXJtaW5lZCBieSBzeXN0ZW0gZmlybXdhcmUsIGlu CiAgICAgIGNvbmp1bmN0aW9uIHdpdGggWGVuIGNvbW1hbmQgbGluZSBvcHRpb25zLCBhbmQgaXMg ZXhwZWN0ZWQgdG8gYmUKICAgICAgc21hbGwuIFRodXMsIHRvIGF2b2lkIG92ZXItY29tcGxpY2F0 aW5nIHRoZSBjb2RlLCB0aGVyZSBpcyBubwogICAgICBwcmUtZW1wdGlvbiBjaGVjayB3aXRoaW4g dGhlIG9wZXJhdGlvbi4KClNpZ25lZC1vZmYtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50 QGNpdHJpeC5jb20+Ci0tLQpDYzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDYzog QW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQ2M6IEdlb3JnZSBEdW5s YXAgPEdlb3JnZS5EdW5sYXBAZXUuY2l0cml4LmNvbT4KQ2M6IElhbiBKYWNrc29uIDxpYW4uamFj a3NvbkBldS5jaXRyaXguY29tPgpDYzogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2ls a0BvcmFjbGUuY29tPgpDYzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwu b3JnPgpDYzogVGltIERlZWdhbiA8dGltQHhlbi5vcmc+CkNjOiBXZWkgTGl1IDx3ZWkubGl1MkBj aXRyaXguY29tPgoKdjM6CiAtIEF2b2lkIHNwZWN1bGF0aW9uIGJleW9uZCBhcnJheSBib3VuZHMg Y2hlY2suCgp2MjoKIC0gUmUtaW1wbGVtZW50ZWQgZm9yIHYyIGJhc2VkIG9uIG5ldyByYW5nZXNl dC4KLS0tCiB4ZW4vYXJjaC94ODYvaW9tbXVfb3AuYyAgICAgICB8IDE3MCArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIHhlbi9pbmNsdWRlL3B1YmxpYy9pb21tdV9v cC5oIHwgIDM5ICsrKysrKysrKysKIHhlbi9pbmNsdWRlL3hsYXQubHN0ICAgICAgICAgIHwgICAy ICsKIDMgZmlsZXMgY2hhbmdlZCwgMjA1IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2lvbW11X29wLmMgYi94ZW4vYXJjaC94ODYvaW9tbXVf b3AuYwppbmRleCA3NDRjMGZjZTI3Li45NzgxMWY4Y2VkIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYvaW9tbXVfb3AuYworKysgYi94ZW4vYXJjaC94ODYvaW9tbXVfb3AuYwpAQCAtMjIsMTEgKzIy LDcwIEBACiAjaW5jbHVkZSA8eGVuL2V2ZW50Lmg+CiAjaW5jbHVkZSA8eGVuL2d1ZXN0X2FjY2Vz cy5oPgogI2luY2x1ZGUgPHhlbi9oeXBlcmNhbGwuaD4KKyNpbmNsdWRlIDx4ZW4vbm9zcGVjLmg+ CisKK3N0cnVjdCBnZXRfcmVzZXJ2ZWRfY3R4dCB7CisgICAgdW5zaWduZWQgaW50IG1heF9lbnRy aWVzOworICAgIHVuc2lnbmVkIGludCBucl9lbnRyaWVzOworICAgIFhFTl9HVUVTVF9IQU5ETEUo eGVuX2lvbW11X3Jlc2VydmVkX3JhbmdlX3QpIHJhbmdlczsKK307CisKK3N0YXRpYyBpbnQgZ2V0 X3Jlc2VydmVkKHVuc2lnbmVkIGxvbmcgcywgdW5zaWduZWQgbG9uZyBlLCB2b2lkICphcmcpCit7 CisgICAgc3RydWN0IGdldF9yZXNlcnZlZF9jdHh0ICpjdHh0ID0gYXJnOworCisgICAgaWYgKCBj dHh0LT5ucl9lbnRyaWVzIDwgY3R4dC0+bWF4X2VudHJpZXMgKQorICAgIHsKKyAgICAgICAgeGVu X2lvbW11X3Jlc2VydmVkX3JhbmdlX3QgcmFuZ2UgPSB7CisgICAgICAgICAgICAuc3RhcnRfYmZu ID0gcywKKyAgICAgICAgICAgIC5ucl9mcmFtZXMgPSBlIC0gcywKKyAgICAgICAgfTsKKworICAg ICAgICBpZiAoIGNvcHlfdG9fZ3Vlc3Rfb2Zmc2V0KGN0eHQtPnJhbmdlcywgY3R4dC0+bnJfZW50 cmllcywgJnJhbmdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEpICkKKyAg ICAgICAgICAgIHJldHVybiAtRUZBVUxUOworICAgIH0KKworICAgIGN0eHQtPm5yX2VudHJpZXMr KzsKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludCBpb21tdV9vcF9xdWVyeV9yZXNlcnZl ZChzdHJ1Y3QgeGVuX2lvbW11X29wX3F1ZXJ5X3Jlc2VydmVkICpvcCkKK3sKKyAgICBzdHJ1Y3Qg ZG9tYWluICpjdXJyZCA9IGN1cnJlbnQtPmRvbWFpbjsKKyAgICBzdHJ1Y3QgZG9tYWluX2lvbW11 ICppb21tdSA9IGRvbV9pb21tdShjdXJyZCk7CisgICAgc3RydWN0IGdldF9yZXNlcnZlZF9jdHh0 IGN0eHQgPSB7CisgICAgICAgIC5tYXhfZW50cmllcyA9IG9wLT5ucl9lbnRyaWVzLAorICAgICAg ICAucmFuZ2VzID0gb3AtPnJhbmdlcywKKyAgICB9OworICAgIGludCByYzsKKworICAgIGlmICgg b3AtPnBhZCApCisgICAgICAgIHJldHVybiAtRUlOVkFMOworCisgICAgcmMgPSByYW5nZXNldF9y ZXBvcnRfcmFuZ2VzKGlvbW11LT5yZXNlcnZlZF9yYW5nZXMsIDAsIH4wdWwsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGdldF9yZXNlcnZlZCwgJmN0eHQpOworICAgIGlmICggcmMg KQorICAgICAgICByZXR1cm4gcmM7CisKKyAgICAvKiBQYXNzIGJhY2sgdGhlIGFjdHVhbCBudW1i ZXIgb2YgcmVzZXJ2ZWQgcmFuZ2VzICovCisgICAgb3AtPm5yX2VudHJpZXMgPSBjdHh0Lm5yX2Vu dHJpZXM7CisKKyAgICBpZiAoICFndWVzdF9oYW5kbGVfaXNfbnVsbChjdHh0LnJhbmdlcykgJiYK KyAgICAgICAgIGN0eHQubnJfZW50cmllcyA+IGN0eHQubWF4X2VudHJpZXMgKQorICAgICAgICBy ZXR1cm4gLUVOT0JVRlM7CisKKyAgICByZXR1cm4gMDsKK30KIAogc3RhdGljIHZvaWQgaW9tbXVf b3AoeGVuX2lvbW11X29wX3QgKm9wKQogewogICAgIHN3aXRjaCAoIG9wLT5vcCApCiAgICAgewor ICAgIGNhc2UgWEVOX0lPTU1VT1BfcXVlcnlfcmVzZXJ2ZWQ6CisgICAgICAgIG9wLT5zdGF0dXMg PSBpb21tdV9vcF9xdWVyeV9yZXNlcnZlZCgmb3AtPnUucXVlcnlfcmVzZXJ2ZWQpOworICAgICAg ICBicmVhazsKKwogICAgIGRlZmF1bHQ6CiAgICAgICAgIG9wLT5zdGF0dXMgPSAtRU9QTk9UU1VQ UDsKICAgICAgICAgYnJlYWs7CkBAIC0zNSwxMyArOTQsMjAgQEAgc3RhdGljIHZvaWQgaW9tbXVf b3AoeGVuX2lvbW11X29wX3QgKm9wKQogCiBpbnQgZG9fb25lX2lvbW11X29wKHhlbl9pb21tdV9v cF9idWZfdCAqYnVmKQogewotICAgIHhlbl9pb21tdV9vcF90IG9wOworICAgIHhlbl9pb21tdV9v cF90IG9wID0ge307CisgICAgc2l6ZV90IG9mZnNldDsKKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90 IG9wX3NpemVbXSA9IHsKKyAgICAgICAgW1hFTl9JT01NVU9QX3F1ZXJ5X3Jlc2VydmVkXSA9IHNp emVvZihzdHJ1Y3QgeGVuX2lvbW11X29wX3F1ZXJ5X3Jlc2VydmVkKSwKKyAgICB9OworICAgIHNp emVfdCBzaXplOwogICAgIGludCByYzsKIAotICAgIGlmICggYnVmLT5zaXplIDwgc2l6ZW9mKG9w KSApCisgICAgb2Zmc2V0ID0gb2Zmc2V0b2Yoc3RydWN0IHhlbl9pb21tdV9vcCwgdSk7CisKKyAg ICBpZiAoIGJ1Zi0+c2l6ZSA8IG9mZnNldCApCiAgICAgICAgIHJldHVybiAtRUZBVUxUOwogCi0g ICAgaWYgKCBjb3B5X2Zyb21fZ3Vlc3QoKHZvaWQgKikmb3AsIGJ1Zi0+aCwgc2l6ZW9mKG9wKSkg KQorICAgIGlmICggY29weV9mcm9tX2d1ZXN0KCh2b2lkICopJm9wLCBidWYtPmgsIG9mZnNldCkg KQogICAgICAgICByZXR1cm4gLUVGQVVMVDsKIAogICAgIGlmICggb3AucGFkICkKQEAgLTUxLDYg KzExNywxNiBAQCBpbnQgZG9fb25lX2lvbW11X29wKHhlbl9pb21tdV9vcF9idWZfdCAqYnVmKQog ICAgIGlmICggcmMgKQogICAgICAgICByZXR1cm4gcmM7CiAKKyAgICBpZiAoIG9wLm9wID49IEFS UkFZX1NJWkUob3Bfc2l6ZSkgKQorICAgICAgICByZXR1cm4gLUVPUE5PVFNVUFA7CisKKyAgICBz aXplID0gb3Bfc2l6ZVthcnJheV9pbmRleF9ub3NwZWMob3Aub3AsIEFSUkFZX1NJWkUob3Bfc2l6 ZSkpXTsKKyAgICBpZiAoIGJ1Zi0+c2l6ZSA8IG9mZnNldCArIHNpemUgKQorICAgICAgICByZXR1 cm4gLUVGQVVMVDsKKworICAgIGlmICggY29weV9mcm9tX2d1ZXN0X29mZnNldCgodm9pZCAqKSZv cC51LCBidWYtPmgsIG9mZnNldCwgc2l6ZSkgKQorICAgICAgICByZXR1cm4gLUVGQVVMVDsKKwog ICAgIGlvbW11X29wKCZvcCk7CiAKICAgICBpZiAoIF9fY29weV9maWVsZF90b19ndWVzdChndWVz dF9oYW5kbGVfY2FzdChidWYtPmgsIHhlbl9pb21tdV9vcF90KSwKQEAgLTEwMiwxNCArMTc4LDIz IEBAIGxvbmcgZG9faW9tbXVfb3AodW5zaWduZWQgaW50IG5yX2J1ZnMsCiAKIGludCBjb21wYXRf b25lX2lvbW11X29wKGNvbXBhdF9pb21tdV9vcF9idWZfdCAqYnVmKQogewotICAgIGNvbXBhdF9p b21tdV9vcF90IGNtcDsKKyAgICBjb21wYXRfaW9tbXVfb3BfdCBjbXAgPSB7fTsKKyAgICBzaXpl X3Qgb2Zmc2V0OworICAgIHN0YXRpYyBjb25zdCBzaXplX3Qgb3Bfc2l6ZVtdID0geworICAgICAg ICBbWEVOX0lPTU1VT1BfcXVlcnlfcmVzZXJ2ZWRdID0gc2l6ZW9mKHN0cnVjdCBjb21wYXRfaW9t bXVfb3BfcXVlcnlfcmVzZXJ2ZWQpLAorICAgIH07CisgICAgc2l6ZV90IHNpemU7CiAgICAgeGVu X2lvbW11X29wX3QgbmF0OworICAgIHVuc2lnbmVkIGludCB1OworICAgIGludDMyX3Qgc3RhdHVz OwogICAgIGludCByYzsKIAotICAgIGlmICggYnVmLT5zaXplIDwgc2l6ZW9mKGNtcCkgKQorICAg IG9mZnNldCA9IG9mZnNldG9mKHN0cnVjdCBjb21wYXRfaW9tbXVfb3AsIHUpOworCisgICAgaWYg KCBidWYtPnNpemUgPCBvZmZzZXQgKQogICAgICAgICByZXR1cm4gLUVGQVVMVDsKIAotICAgIGlm ICggY29weV9mcm9tX2NvbXBhdCgodm9pZCAqKSZjbXAsIGJ1Zi0+aCwgc2l6ZW9mKGNtcCkpICkK KyAgICBpZiAoIGNvcHlfZnJvbV9jb21wYXQoKHZvaWQgKikmY21wLCBidWYtPmgsIG9mZnNldCkg KQogICAgICAgICByZXR1cm4gLUVGQVVMVDsKIAogICAgIGlmICggY21wLnBhZCApCkBAIC0xMTks MTIgKzIwNCw4NSBAQCBpbnQgY29tcGF0X29uZV9pb21tdV9vcChjb21wYXRfaW9tbXVfb3BfYnVm X3QgKmJ1ZikKICAgICBpZiAoIHJjICkKICAgICAgICAgcmV0dXJuIHJjOwogCisgICAgaWYgKCBj bXAub3AgPj0gQVJSQVlfU0laRShvcF9zaXplKSApCisgICAgICAgIHJldHVybiAtRU9QTk9UU1VQ UDsKKworICAgIHNpemUgPSBvcF9zaXplW2FycmF5X2luZGV4X25vc3BlYyhjbXAub3AsIEFSUkFZ X1NJWkUob3Bfc2l6ZSkpXTsKKyAgICBpZiAoIGJ1Zi0+c2l6ZSA8IG9mZnNldCArIHNpemUgKQor ICAgICAgICByZXR1cm4gLUVGQVVMVDsKKworICAgIGlmICggY29weV9mcm9tX2NvbXBhdF9vZmZz ZXQoKHZvaWQgKikmY21wLnUsIGJ1Zi0+aCwgb2Zmc2V0LCBzaXplKSApCisgICAgICAgIHJldHVy biAtRUZBVUxUOworCisgICAgLyoKKyAgICAgKiBUaGUgeGxhdCBtYWdpYyBkb2Vzbid0IHF1aXRl IGtub3cgaG93IHRvIGhhbmRsZSB0aGUgdW5pb24gc28KKyAgICAgKiB3ZSBuZWVkIHRvIGZpeCB0 aGluZ3MgdXAgaGVyZS4KKyAgICAgKi8KKyNkZWZpbmUgWExBVF9pb21tdV9vcF91X3F1ZXJ5X3Jl c2VydmVkIFhFTl9JT01NVU9QX3F1ZXJ5X3Jlc2VydmVkCisgICAgdSA9IGNtcC5vcDsKKworI2Rl ZmluZSBYTEFUX2lvbW11X29wX3F1ZXJ5X3Jlc2VydmVkX0hORExfcmFuZ2VzKF9kXywgX3NfKSAg ICAgICAgICAgIFwKKyAgICBkbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBpZiAo ICFjb21wYXRfaGFuZGxlX2lzX251bGwoKF9zXyktPnJhbmdlcykgKSAgICAgICAgICAgICAgICAg IFwKKyAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKm5yX2VudHJpZXMg PSBDT01QQVRfQVJHX1hMQVRfVklSVF9CQVNFOyAgICAgXAorICAgICAgICAgICAgeGVuX2lvbW11 X3Jlc2VydmVkX3JhbmdlX3QgKnJhbmdlcyA9ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAg ICAgICAgICAgICAodm9pZCAqKShucl9lbnRyaWVzICsgMSk7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgaWYgKCBzaXplb2YoKm5yX2Vu dHJpZXMpICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAg ICAgKHNpemVvZigqcmFuZ2VzKSAqIChfc18pLT5ucl9lbnRyaWVzKSA+ICAgICAgICAgICAgICBc CisgICAgICAgICAgICAgICAgIENPTVBBVF9BUkdfWExBVF9TSVpFICkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIHJldHVybiAtRTJCSUc7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAg ICAgICAqbnJfZW50cmllcyA9IChfc18pLT5ucl9lbnRyaWVzOyAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorICAgICAgICAgICAgc2V0X3hlbl9ndWVzdF9oYW5kbGUoKF9kXyktPnJhbmdlcywg cmFuZ2VzKTsgICAgICAgICAgICAgIFwKKyAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGVsc2UgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor ICAgICAgICAgICAgc2V0X3hlbl9ndWVzdF9oYW5kbGUoKF9kXyktPnJhbmdlcywgTlVMTCk7ICAg ICAgICAgICAgICAgIFwKKyAgICB9IHdoaWxlIChmYWxzZSkKKwogICAgIFhMQVRfaW9tbXVfb3Ao Jm5hdCwgJmNtcCk7CiAKKyN1bmRlZiBYTEFUX2lvbW11X29wX3F1ZXJ5X3Jlc2VydmVkX0hORExf cmFuZ2VzCisKICAgICBpb21tdV9vcCgmbmF0KTsKIAorICAgIHN0YXR1cyA9IG5hdC5zdGF0dXM7 CisKKyNkZWZpbmUgWExBVF9pb21tdV9vcF9xdWVyeV9yZXNlcnZlZF9ITkRMX3JhbmdlcyhfZF8s IF9zXykgICAgICAgICAgICBcCisgICAgZG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAg ICAgaWYgKCAhY29tcGF0X2hhbmRsZV9pc19udWxsKChfZF8pLT5yYW5nZXMpICkgICAgICAgICAg ICAgICAgICBcCisgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgdW5zaWduZWQgaW50ICpucl9l bnRyaWVzID0gQ09NUEFUX0FSR19YTEFUX1ZJUlRfQkFTRTsgICAgIFwKKyAgICAgICAgICAgIHhl bl9pb21tdV9yZXNlcnZlZF9yYW5nZV90ICpyYW5nZXMgPSAgICAgICAgICAgICAgICAgICAgICBc CisgICAgICAgICAgICAgICAgKHZvaWQgKikobnJfZW50cmllcyArIDEpOyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgdW5zaWduZWQgaW50IGo7ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAg ICAgICBmb3IgKCBqID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorICAgICAgICAgICAgICAgICAgaiA8IG1pbl90KHVuc2lnbmVkIGludCwgKF9kXykt Pm5yX2VudHJpZXMsICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbnJf ZW50cmllcyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAg ICBqKysgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor ICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICBjb21wYXRfaW9tbXVfcmVzZXJ2ZWRfcmFu Z2VfdCByYW5nZTsgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAg ICAgICAgIFhMQVRfaW9tbXVfcmVzZXJ2ZWRfcmFuZ2UoJnJhbmdlLCAmcmFuZ2VzW2pdKTsgICAg ICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgaWYgKCBfX2NvcHlfdG9fY29t cGF0X29mZnNldCgoX2RfKS0+cmFuZ2VzLCBqLCAgICAgICAgXAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJnJhbmdlLCAxKSApICAgICAgICAgICAgIFwKKyAg ICAgICAgICAgICAgICAgICAgc3RhdHVzID0gLUVGQVVMVDsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCisgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB9ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9IHdoaWxl IChmYWxzZSkKKwogICAgIFhMQVRfaW9tbXVfb3AoJmNtcCwgJm5hdCk7CiAKKyAgICAvKiBzdGF0 dXMgd2lsbCBoYXZlIGJlZW4gbW9kaWZpZWQgaWYgX19jb3B5X3RvX2NvbXBhdF9vZmZzZXQoKSBm YWlsZWQgKi8KKyAgICBjbXAuc3RhdHVzID0gc3RhdHVzOworCisjdW5kZWYgWExBVF9pb21tdV9v cF9xdWVyeV9yZXNlcnZlZF9ITkRMX3JhbmdlcworCiAgICAgaWYgKCBfX2NvcHlfZmllbGRfdG9f Y29tcGF0KGNvbXBhdF9oYW5kbGVfY2FzdChidWYtPmgsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wYXRfaW9tbXVfb3BfdCksCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICZjbXAsIHN0YXR1cykgKQpkaWZmIC0tZ2l0IGEveGVu L2luY2x1ZGUvcHVibGljL2lvbW11X29wLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvaW9tbXVfb3Au aAppbmRleCBjM2I2OGY2NjVhLi4wMjIxM2MxMmE0IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9w dWJsaWMvaW9tbXVfb3AuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvaW9tbXVfb3AuaApAQCAt MjUsMTEgKzI1LDUwIEBACiAKICNpbmNsdWRlICJ4ZW4uaCIKIAordHlwZWRlZiB1bnNpZ25lZCBs b25nIHhlbl9iZm5fdDsKKworLyogU3RydWN0dXJlIGRlc2NyaWJpbmcgYSBzaW5nbGUgcmFuZ2Ug cmVzZXJ2ZWQgaW4gdGhlIElPTU1VICovCitzdHJ1Y3QgeGVuX2lvbW11X3Jlc2VydmVkX3Jhbmdl IHsKKyAgICB4ZW5fYmZuX3Qgc3RhcnRfYmZuOworICAgIHVuc2lnbmVkIGludCBucl9mcmFtZXM7 CisgICAgdW5zaWduZWQgaW50IHBhZDsKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5faW9tbXVfcmVz ZXJ2ZWRfcmFuZ2UgeGVuX2lvbW11X3Jlc2VydmVkX3JhbmdlX3Q7CitERUZJTkVfWEVOX0dVRVNU X0hBTkRMRSh4ZW5faW9tbXVfcmVzZXJ2ZWRfcmFuZ2VfdCk7CisKKy8qCisgKiBYRU5fSU9NTVVP UF9xdWVyeV9yZXNlcnZlZDogUXVlcnkgcmFuZ2VzIHJlc2VydmVkIGluIHRoZSBJT01NVS4KKyAq LworI2RlZmluZSBYRU5fSU9NTVVPUF9xdWVyeV9yZXNlcnZlZCAxCisKK3N0cnVjdCB4ZW5faW9t bXVfb3BfcXVlcnlfcmVzZXJ2ZWQgeworICAgIC8qCisgICAgICogSU4vT1VUIC0gT24gZW50cnkg dGhpcyBpcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgYXZhaWxhYmxlCisgICAgICogICAgICAgICAg aW4gdGhlIHJhbmdlcyBhcnJheSBiZWxvdy4KKyAgICAgKiAgICAgICAgICBPbiBleGl0IHRoaXMg aXMgdGhlIGFjdHVhbCBudW1iZXIgb2YgcmVzZXJ2ZWQgcmFuZ2VzLgorICAgICAqLworICAgIHVu c2lnbmVkIGludCBucl9lbnRyaWVzOworICAgIHVuc2lnbmVkIGludCBwYWQ7CisgICAgLyoKKyAg ICAgKiBPVVQgLSBUaGlzIGFycmF5IGlzIHBvcHVsYXRlZCB3aXRoIHJlc2VydmVkIHJhbmdlcy4g SWYgaXQgaXMKKyAgICAgKiAgICAgICBub3Qgc3VmZmljaWVudGx5IGxhcmdlIHRoZW4gYXZhaWxh YmxlIGVudHJpZXMgYXJlIHBvcHVsYXRlZCwKKyAgICAgKiAgICAgICBidXQgdGhlIG9wIHN0YXR1 cyBjb2RlIHdpbGwgYmUgc2V0IHRvIC1FTk9CVUZTLgorICAgICAqICAgICAgIEl0IGlzIHBlcm1p c3NhYmxlIHRvIHNldCB0aGlzIHRvIE5VTEwgaWYgbnJfZW50cmllcyBpcyBhbHNvCisgICAgICog ICAgICAgc2V0IHRvIHplcm8uIEluIHRoaXMgY2FzZSwgb24gZXhpdCwgbnJfZW50cmllcyB3aWxs IHN0aWxsIGJlCisgICAgICogICAgICAgc2V0IHRvIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHJlc2Vy dmVkIHJhbmdlcyBidXQgdGhlIHN0YXR1cworICAgICAqICAgICAgIGNvZGUgd2lsbCBiZSBzZXQg dG8gemVyby4KKyAgICAgKi8KKyAgICBYRU5fR1VFU1RfSEFORExFKHhlbl9pb21tdV9yZXNlcnZl ZF9yYW5nZV90KSByYW5nZXM7Cit9OworCiBzdHJ1Y3QgeGVuX2lvbW11X29wIHsKICAgICB1aW50 MTZfdCBvcDsgICAgLyogb3AgdHlwZSAqLwogICAgIHVpbnQxNl90IHBhZDsKICAgICBpbnQzMl90 IHN0YXR1czsgLyogb3AgY29tcGxldGlvbiBzdGF0dXM6ICovCiAgICAgICAgICAgICAgICAgICAg IC8qIDAgZm9yIHN1Y2Nlc3Mgb3RoZXJ3aXNlLCBuZWdhdGl2ZSBlcnJubyAqLworICAgIHVuaW9u IHsKKyAgICAgICAgc3RydWN0IHhlbl9pb21tdV9vcF9xdWVyeV9yZXNlcnZlZCBxdWVyeV9yZXNl cnZlZDsKKyAgICB9IHU7CiB9OwogdHlwZWRlZiBzdHJ1Y3QgeGVuX2lvbW11X29wIHhlbl9pb21t dV9vcF90OwogREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2lvbW11X29wX3QpOwpkaWZmIC0t Z2l0IGEveGVuL2luY2x1ZGUveGxhdC5sc3QgYi94ZW4vaW5jbHVkZS94bGF0LmxzdAppbmRleCAz YjE1YzE4YzRlLi45M2JjZjRiNGQwIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94bGF0LmxzdAor KysgYi94ZW4vaW5jbHVkZS94bGF0LmxzdApAQCAtNzksNiArNzksOCBAQAogPwl2Y3B1X2h2bV94 ODZfNjQJCQlodm0vaHZtX3ZjcHUuaAogIQlpb21tdV9vcAkJCWlvbW11X29wLmgKICEJaW9tbXVf b3BfYnVmCQkJaW9tbXVfb3AuaAorIQlpb21tdV9vcF9xdWVyeV9yZXNlcnZlZAkJaW9tbXVfb3Au aAorIQlpb21tdV9yZXNlcnZlZF9yYW5nZQkJaW9tbXVfb3AuaAogPwlrZXhlY19leGVjCQkJa2V4 ZWMuaAogIQlrZXhlY19pbWFnZQkJCWtleGVjLmgKICEJa2V4ZWNfcmFuZ2UJCQlrZXhlYy5oCi0t IAoyLjExLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpo dHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs