From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v6 07/14] x86: add iommu_op to query reserved ranges Date: Thu, 23 Aug 2018 10:47:04 +0100 Message-ID: <20180823094711.21376-8-paul.durrant@citrix.com> References: <20180823094711.21376-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 1fsmD3-00006A-G9 for xen-devel@lists.xenproject.org; Thu, 23 Aug 2018 09:47:21 +0000 In-Reply-To: <20180823094711.21376-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 aXRyaXguY29tPgoKdjQ6CiAtIE1ha2UgeGVuX2Jmbl90IHN0cmljdGx5IDY0IGJpdHMgd2lkZSBh bmQgZHJvcCBhc3NvY2lhdGVkIGNvbXBhdAogICB0cmFuc2xhdGlvbi4KCnYzOgogLSBBdm9pZCBz cGVjdWxhdGlvbiBiZXlvbmQgYXJyYXkgYm91bmRzIGNoZWNrLgoKdjI6CiAtIFJlLWltcGxlbWVu dGVkIGZvciB2MiBiYXNlZCBvbiBuZXcgcmFuZ2VzZXQuCi0tLQogeGVuL2NvbW1vbi9pb21tdV9v cC5jICAgICAgICAgfCAxNjQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tCiB4ZW4vaW5jbHVkZS9wdWJsaWMvaW9tbXVfb3AuaCB8ICAzOSArKysrKysrKysrCiB4ZW4v aW5jbHVkZS94bGF0LmxzdCAgICAgICAgICB8ICAgMiArCiAzIGZpbGVzIGNoYW5nZWQsIDE5OSBp bnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vaW9t bXVfb3AuYyBiL3hlbi9jb21tb24vaW9tbXVfb3AuYwppbmRleCA3NDRjMGZjZTI3Li5iY2ZjZDQ5 MTAyIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2lvbW11X29wLmMKKysrIGIveGVuL2NvbW1vbi9p b21tdV9vcC5jCkBAIC0yMiwxMSArMjIsNzAgQEAKICNpbmNsdWRlIDx4ZW4vZXZlbnQuaD4KICNp bmNsdWRlIDx4ZW4vZ3Vlc3RfYWNjZXNzLmg+CiAjaW5jbHVkZSA8eGVuL2h5cGVyY2FsbC5oPgor I2luY2x1ZGUgPHhlbi9ub3NwZWMuaD4KKworc3RydWN0IGdldF9yZXNlcnZlZF9jdHh0IHsKKyAg ICB1bnNpZ25lZCBpbnQgbWF4X2VudHJpZXM7CisgICAgdW5zaWduZWQgaW50IG5yX2VudHJpZXM7 CisgICAgWEVOX0dVRVNUX0hBTkRMRSh4ZW5faW9tbXVfcmVzZXJ2ZWRfcmFuZ2VfdCkgcmFuZ2Vz OworfTsKKworc3RhdGljIGludCBnZXRfcmVzZXJ2ZWQodW5zaWduZWQgbG9uZyBzLCB1bnNpZ25l ZCBsb25nIGUsIHZvaWQgKmFyZykKK3sKKyAgICBzdHJ1Y3QgZ2V0X3Jlc2VydmVkX2N0eHQgKmN0 eHQgPSBhcmc7CisKKyAgICBpZiAoIGN0eHQtPm5yX2VudHJpZXMgPCBjdHh0LT5tYXhfZW50cmll cyApCisgICAgeworICAgICAgICB4ZW5faW9tbXVfcmVzZXJ2ZWRfcmFuZ2VfdCByYW5nZSA9IHsK KyAgICAgICAgICAgIC5zdGFydF9iZm4gPSBzLAorICAgICAgICAgICAgLm5yX2ZyYW1lcyA9IGUg LSBzLAorICAgICAgICB9OworCisgICAgICAgIGlmICggY29weV90b19ndWVzdF9vZmZzZXQoY3R4 dC0+cmFuZ2VzLCBjdHh0LT5ucl9lbnRyaWVzLCAmcmFuZ2UsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMSkgKQorICAgICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7CisgICAgfQor CisgICAgY3R4dC0+bnJfZW50cmllcysrOworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50 IGlvbW11X29wX3F1ZXJ5X3Jlc2VydmVkKHN0cnVjdCB4ZW5faW9tbXVfb3BfcXVlcnlfcmVzZXJ2 ZWQgKm9wKQoreworICAgIHN0cnVjdCBkb21haW4gKmN1cnJkID0gY3VycmVudC0+ZG9tYWluOwor ICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmlvbW11ID0gZG9tX2lvbW11KGN1cnJkKTsKKyAgICBz dHJ1Y3QgZ2V0X3Jlc2VydmVkX2N0eHQgY3R4dCA9IHsKKyAgICAgICAgLm1heF9lbnRyaWVzID0g b3AtPm5yX2VudHJpZXMsCisgICAgICAgIC5yYW5nZXMgPSBvcC0+cmFuZ2VzLAorICAgIH07Cisg ICAgaW50IHJjOworCisgICAgaWYgKCBvcC0+cGFkICkKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7 CisKKyAgICByYyA9IHJhbmdlc2V0X3JlcG9ydF9yYW5nZXMoaW9tbXUtPnJlc2VydmVkX3Jhbmdl cywgMCwgfjB1bCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0X3Jlc2VydmVk LCAmY3R4dCk7CisgICAgaWYgKCByYyApCisgICAgICAgIHJldHVybiByYzsKKworICAgIC8qIFBh c3MgYmFjayB0aGUgYWN0dWFsIG51bWJlciBvZiByZXNlcnZlZCByYW5nZXMgKi8KKyAgICBvcC0+ bnJfZW50cmllcyA9IGN0eHQubnJfZW50cmllczsKKworICAgIGlmICggIWd1ZXN0X2hhbmRsZV9p c19udWxsKGN0eHQucmFuZ2VzKSAmJgorICAgICAgICAgY3R4dC5ucl9lbnRyaWVzID4gY3R4dC5t YXhfZW50cmllcyApCisgICAgICAgIHJldHVybiAtRU5PQlVGUzsKKworICAgIHJldHVybiAwOwor fQogCiBzdGF0aWMgdm9pZCBpb21tdV9vcCh4ZW5faW9tbXVfb3BfdCAqb3ApCiB7CiAgICAgc3dp dGNoICggb3AtPm9wICkKICAgICB7CisgICAgY2FzZSBYRU5fSU9NTVVPUF9xdWVyeV9yZXNlcnZl ZDoKKyAgICAgICAgb3AtPnN0YXR1cyA9IGlvbW11X29wX3F1ZXJ5X3Jlc2VydmVkKCZvcC0+dS5x dWVyeV9yZXNlcnZlZCk7CisgICAgICAgIGJyZWFrOworCiAgICAgZGVmYXVsdDoKICAgICAgICAg b3AtPnN0YXR1cyA9IC1FT1BOT1RTVVBQOwogICAgICAgICBicmVhazsKQEAgLTM1LDEzICs5NCwy MCBAQCBzdGF0aWMgdm9pZCBpb21tdV9vcCh4ZW5faW9tbXVfb3BfdCAqb3ApCiAKIGludCBkb19v bmVfaW9tbXVfb3AoeGVuX2lvbW11X29wX2J1Zl90ICpidWYpCiB7Ci0gICAgeGVuX2lvbW11X29w X3Qgb3A7CisgICAgeGVuX2lvbW11X29wX3Qgb3AgPSB7fTsKKyAgICBzaXplX3Qgb2Zmc2V0Owor ICAgIHN0YXRpYyBjb25zdCBzaXplX3Qgb3Bfc2l6ZVtdID0geworICAgICAgICBbWEVOX0lPTU1V T1BfcXVlcnlfcmVzZXJ2ZWRdID0gc2l6ZW9mKHN0cnVjdCB4ZW5faW9tbXVfb3BfcXVlcnlfcmVz ZXJ2ZWQpLAorICAgIH07CisgICAgc2l6ZV90IHNpemU7CiAgICAgaW50IHJjOwogCi0gICAgaWYg KCBidWYtPnNpemUgPCBzaXplb2Yob3ApICkKKyAgICBvZmZzZXQgPSBvZmZzZXRvZihzdHJ1Y3Qg eGVuX2lvbW11X29wLCB1KTsKKworICAgIGlmICggYnVmLT5zaXplIDwgb2Zmc2V0ICkKICAgICAg ICAgcmV0dXJuIC1FRkFVTFQ7CiAKLSAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdCgodm9pZCAqKSZv cCwgYnVmLT5oLCBzaXplb2Yob3ApKSApCisgICAgaWYgKCBjb3B5X2Zyb21fZ3Vlc3QoKHZvaWQg Kikmb3AsIGJ1Zi0+aCwgb2Zmc2V0KSApCiAgICAgICAgIHJldHVybiAtRUZBVUxUOwogCiAgICAg aWYgKCBvcC5wYWQgKQpAQCAtNTEsNiArMTE3LDE2IEBAIGludCBkb19vbmVfaW9tbXVfb3AoeGVu X2lvbW11X29wX2J1Zl90ICpidWYpCiAgICAgaWYgKCByYyApCiAgICAgICAgIHJldHVybiByYzsK IAorICAgIGlmICggb3Aub3AgPj0gQVJSQVlfU0laRShvcF9zaXplKSApCisgICAgICAgIHJldHVy biAtRU9QTk9UU1VQUDsKKworICAgIHNpemUgPSBvcF9zaXplW2FycmF5X2luZGV4X25vc3BlYyhv cC5vcCwgQVJSQVlfU0laRShvcF9zaXplKSldOworICAgIGlmICggYnVmLT5zaXplIDwgb2Zmc2V0 ICsgc2l6ZSApCisgICAgICAgIHJldHVybiAtRUZBVUxUOworCisgICAgaWYgKCBjb3B5X2Zyb21f Z3Vlc3Rfb2Zmc2V0KCh2b2lkICopJm9wLnUsIGJ1Zi0+aCwgb2Zmc2V0LCBzaXplKSApCisgICAg ICAgIHJldHVybiAtRUZBVUxUOworCiAgICAgaW9tbXVfb3AoJm9wKTsKIAogICAgIGlmICggX19j b3B5X2ZpZWxkX3RvX2d1ZXN0KGd1ZXN0X2hhbmRsZV9jYXN0KGJ1Zi0+aCwgeGVuX2lvbW11X29w X3QpLApAQCAtMTAwLDE2ICsxNzYsMjcgQEAgbG9uZyBkb19pb21tdV9vcCh1bnNpZ25lZCBpbnQg bnJfYnVmcywKICAgICByZXR1cm4gcmM7CiB9CiAKK0NIRUNLX2lvbW11X3Jlc2VydmVkX3Jhbmdl OworCiBpbnQgY29tcGF0X29uZV9pb21tdV9vcChjb21wYXRfaW9tbXVfb3BfYnVmX3QgKmJ1ZikK IHsKLSAgICBjb21wYXRfaW9tbXVfb3BfdCBjbXA7CisgICAgY29tcGF0X2lvbW11X29wX3QgY21w ID0ge307CisgICAgc2l6ZV90IG9mZnNldDsKKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG9wX3Np emVbXSA9IHsKKyAgICAgICAgW1hFTl9JT01NVU9QX3F1ZXJ5X3Jlc2VydmVkXSA9IHNpemVvZihz dHJ1Y3QgY29tcGF0X2lvbW11X29wX3F1ZXJ5X3Jlc2VydmVkKSwKKyAgICB9OworICAgIHNpemVf dCBzaXplOwogICAgIHhlbl9pb21tdV9vcF90IG5hdDsKKyAgICB1bnNpZ25lZCBpbnQgdTsKKyAg ICBpbnQzMl90IHN0YXR1czsKICAgICBpbnQgcmM7CiAKLSAgICBpZiAoIGJ1Zi0+c2l6ZSA8IHNp emVvZihjbXApICkKKyAgICBvZmZzZXQgPSBvZmZzZXRvZihzdHJ1Y3QgY29tcGF0X2lvbW11X29w LCB1KTsKKworICAgIGlmICggYnVmLT5zaXplIDwgb2Zmc2V0ICkKICAgICAgICAgcmV0dXJuIC1F RkFVTFQ7CiAKLSAgICBpZiAoIGNvcHlfZnJvbV9jb21wYXQoKHZvaWQgKikmY21wLCBidWYtPmgs IHNpemVvZihjbXApKSApCisgICAgaWYgKCBjb3B5X2Zyb21fY29tcGF0KCh2b2lkICopJmNtcCwg YnVmLT5oLCBvZmZzZXQpICkKICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7CiAKICAgICBpZiAoIGNt cC5wYWQgKQpAQCAtMTE5LDE3ICsyMDYsODIgQEAgaW50IGNvbXBhdF9vbmVfaW9tbXVfb3AoY29t cGF0X2lvbW11X29wX2J1Zl90ICpidWYpCiAgICAgaWYgKCByYyApCiAgICAgICAgIHJldHVybiBy YzsKIAorICAgIGlmICggY21wLm9wID49IEFSUkFZX1NJWkUob3Bfc2l6ZSkgKQorICAgICAgICBy ZXR1cm4gLUVPUE5PVFNVUFA7CisKKyAgICBzaXplID0gb3Bfc2l6ZVthcnJheV9pbmRleF9ub3Nw ZWMoY21wLm9wLCBBUlJBWV9TSVpFKG9wX3NpemUpKV07CisgICAgaWYgKCBidWYtPnNpemUgPCBv ZmZzZXQgKyBzaXplICkKKyAgICAgICAgcmV0dXJuIC1FRkFVTFQ7CisKKyAgICBpZiAoIGNvcHlf ZnJvbV9jb21wYXRfb2Zmc2V0KCh2b2lkICopJmNtcC51LCBidWYtPmgsIG9mZnNldCwgc2l6ZSkg KQorICAgICAgICByZXR1cm4gLUVGQVVMVDsKKworICAgIC8qCisgICAgICogVGhlIHhsYXQgbWFn aWMgZG9lc24ndCBxdWl0ZSBrbm93IGhvdyB0byBoYW5kbGUgdGhlIHVuaW9uIHNvCisgICAgICog d2UgbmVlZCB0byBmaXggdGhpbmdzIHVwIGhlcmUuCisgICAgICovCisjZGVmaW5lIFhMQVRfaW9t bXVfb3BfdV9xdWVyeV9yZXNlcnZlZCBYRU5fSU9NTVVPUF9xdWVyeV9yZXNlcnZlZAorICAgIHUg PSBjbXAub3A7CisKKyNkZWZpbmUgWExBVF9pb21tdV9vcF9xdWVyeV9yZXNlcnZlZF9ITkRMX3Jh bmdlcyhfZF8sIF9zXykgICAgICAgICAgICBcCisgICAgZG8gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKyAgICAgICAgaWYgKCAhY29tcGF0X2hhbmRsZV9pc19udWxsKChfc18pLT5yYW5nZXMpICkg ICAgICAgICAgICAgICAgICBcCisgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgdW5zaWduZWQg aW50ICpucl9lbnRyaWVzID0gQ09NUEFUX0FSR19YTEFUX1ZJUlRfQkFTRTsgICAgIFwKKyAgICAg ICAgICAgIHhlbl9pb21tdV9yZXNlcnZlZF9yYW5nZV90ICpyYW5nZXMgPSAgICAgICAgICAgICAg ICAgICAgICBcCisgICAgICAgICAgICAgICAgKHZvaWQgKikobnJfZW50cmllcyArIDEpOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIGlm ICggc2l6ZW9mKCpucl9lbnRyaWVzKSArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisgICAgICAgICAgICAgICAgIChzaXplb2YoKnJhbmdlcykgKiAoX3NfKS0+bnJfZW50cmllcykg PiAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICBDT01QQVRfQVJHX1hMQVRfU0laRSAp ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICByZXR1cm4g LUUyQklHOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorICAgICAgICAgICAgKm5yX2VudHJpZXMgPSAoX3NfKS0+bnJfZW50cmllczsgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIHNldF94ZW5fZ3Vlc3RfaGFuZGxl KChfZF8pLT5yYW5nZXMsIHJhbmdlcyk7ICAgICAgICAgICAgICBcCisgICAgICAgIH0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor ICAgICAgICBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIHNldF94ZW5fZ3Vlc3RfaGFuZGxlKChfZF8pLT5y YW5nZXMsIE5VTEwpOyAgICAgICAgICAgICAgICBcCisgICAgfSB3aGlsZSAoZmFsc2UpCisKICAg ICBYTEFUX2lvbW11X29wKCZuYXQsICZjbXApOwogCisjdW5kZWYgWExBVF9pb21tdV9vcF9xdWVy eV9yZXNlcnZlZF9ITkRMX3JhbmdlcworCiAgICAgaW9tbXVfb3AoJm5hdCk7CiAKKyAgICBzdGF0 dXMgPSBuYXQuc3RhdHVzOworCisjZGVmaW5lIFhMQVRfaW9tbXVfb3BfcXVlcnlfcmVzZXJ2ZWRf SE5ETF9yYW5nZXMoX2RfLCBfc18pICAgICAgICAgICAgICAgXAorICAgIGRvICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK KyAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCisgICAgICAgIGlmICggIWNvbXBhdF9oYW5kbGVfaXNfbnVsbCgo X2RfKS0+cmFuZ2VzKSApICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK KyAgICAgICAgICAgIHVuc2lnbmVkIGludCAqbnJfZW50cmllcyA9IENPTVBBVF9BUkdfWExBVF9W SVJUX0JBU0U7ICAgICAgICBcCisgICAgICAgICAgICBjb21wYXRfaW9tbXVfcmVzZXJ2ZWRfcmFu Z2VfdCAqcmFuZ2VzID0gICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICh2 b2lkICopKG5yX2VudHJpZXMgKyAxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK KyAgICAgICAgICAgIHVuc2lnbmVkIGludCBuciA9ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgbWluX3QodW5zaWduZWQgaW50LCAo X2RfKS0+bnJfZW50cmllcywgKm5yX2VudHJpZXMpOyAgICAgXAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK KyAgICAgICAgICAgIGlmICggX19jb3B5X3RvX2NvbXBhdF9vZmZzZXQoKF9kXyktPnJhbmdlcywg MCwgcmFuZ2VzLCBucikgKSBcCisgICAgICAgICAgICAgICAgc3RhdHVzID0gLUVGQVVMVDsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB9ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK KyAgICB9IHdoaWxlIChmYWxzZSkKKwogICAgIFhMQVRfaW9tbXVfb3AoJmNtcCwgJm5hdCk7CiAK KyAgICAvKiBzdGF0dXMgd2lsbCBoYXZlIGJlZW4gbW9kaWZpZWQgaWYgX19jb3B5X3RvX2NvbXBh dF9vZmZzZXQoKSBmYWlsZWQgKi8KKyAgICBjbXAuc3RhdHVzID0gc3RhdHVzOworCisjdW5kZWYg WExBVF9pb21tdV9vcF9xdWVyeV9yZXNlcnZlZF9ITkRMX3JhbmdlcworCiAgICAgaWYgKCBfX2Nv cHlfZmllbGRfdG9fY29tcGF0KGNvbXBhdF9oYW5kbGVfY2FzdChidWYtPmgsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wYXRfaW9tbXVfb3Bf dCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjbXAsIHN0YXR1cykgKQogICAg ICAgICByZXR1cm4gLUVGQVVMVDsKIAorI3VuZGVmIFhMQVRfaW9tbXVfb3BfdV9xdWVyeV9yZXNl cnZlZAorCiAgICAgcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1Ymxp Yy9pb21tdV9vcC5oIGIveGVuL2luY2x1ZGUvcHVibGljL2lvbW11X29wLmgKaW5kZXggYzNiNjhm NjY1YS4uYWRlNDA0YTg3NyAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2lvbW11X29w LmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2lvbW11X29wLmgKQEAgLTI1LDExICsyNSw1MCBA QAogCiAjaW5jbHVkZSAieGVuLmgiCiAKK3R5cGVkZWYgdWludDY0X3QgeGVuX2Jmbl90OworCisv KiBTdHJ1Y3R1cmUgZGVzY3JpYmluZyBhIHNpbmdsZSByYW5nZSByZXNlcnZlZCBpbiB0aGUgSU9N TVUgKi8KK3N0cnVjdCB4ZW5faW9tbXVfcmVzZXJ2ZWRfcmFuZ2UgeworICAgIHhlbl9iZm5fdCBz dGFydF9iZm47CisgICAgdW5zaWduZWQgaW50IG5yX2ZyYW1lczsKKyAgICB1bnNpZ25lZCBpbnQg cGFkOworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9pb21tdV9yZXNlcnZlZF9yYW5nZSB4ZW5faW9t bXVfcmVzZXJ2ZWRfcmFuZ2VfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9pb21tdV9y ZXNlcnZlZF9yYW5nZV90KTsKKworLyoKKyAqIFhFTl9JT01NVU9QX3F1ZXJ5X3Jlc2VydmVkOiBR dWVyeSByYW5nZXMgcmVzZXJ2ZWQgaW4gdGhlIElPTU1VLgorICovCisjZGVmaW5lIFhFTl9JT01N VU9QX3F1ZXJ5X3Jlc2VydmVkIDEKKworc3RydWN0IHhlbl9pb21tdV9vcF9xdWVyeV9yZXNlcnZl ZCB7CisgICAgLyoKKyAgICAgKiBJTi9PVVQgLSBPbiBlbnRyeSB0aGlzIGlzIHRoZSBudW1iZXIg b2YgZW50cmllcyBhdmFpbGFibGUKKyAgICAgKiAgICAgICAgICBpbiB0aGUgcmFuZ2VzIGFycmF5 IGJlbG93LgorICAgICAqICAgICAgICAgIE9uIGV4aXQgdGhpcyBpcyB0aGUgYWN0dWFsIG51bWJl ciBvZiByZXNlcnZlZCByYW5nZXMuCisgICAgICovCisgICAgdW5zaWduZWQgaW50IG5yX2VudHJp ZXM7CisgICAgdW5zaWduZWQgaW50IHBhZDsKKyAgICAvKgorICAgICAqIE9VVCAtIFRoaXMgYXJy YXkgaXMgcG9wdWxhdGVkIHdpdGggcmVzZXJ2ZWQgcmFuZ2VzLiBJZiBpdCBpcworICAgICAqICAg ICAgIG5vdCBzdWZmaWNpZW50bHkgbGFyZ2UgdGhlbiBhdmFpbGFibGUgZW50cmllcyBhcmUgcG9w dWxhdGVkLAorICAgICAqICAgICAgIGJ1dCB0aGUgb3Agc3RhdHVzIGNvZGUgd2lsbCBiZSBzZXQg dG8gLUVOT0JVRlMuCisgICAgICogICAgICAgSXQgaXMgcGVybWlzc2FibGUgdG8gc2V0IHRoaXMg dG8gTlVMTCBpZiBucl9lbnRyaWVzIGlzIGFsc28KKyAgICAgKiAgICAgICBzZXQgdG8gemVyby4g SW4gdGhpcyBjYXNlLCBvbiBleGl0LCBucl9lbnRyaWVzIHdpbGwgc3RpbGwgYmUKKyAgICAgKiAg ICAgICBzZXQgdG8gdGhlIGFjdHVhbCBudW1iZXIgb2YgcmVzZXJ2ZWQgcmFuZ2VzIGJ1dCB0aGUg c3RhdHVzCisgICAgICogICAgICAgY29kZSB3aWxsIGJlIHNldCB0byB6ZXJvLgorICAgICAqLwor ICAgIFhFTl9HVUVTVF9IQU5ETEUoeGVuX2lvbW11X3Jlc2VydmVkX3JhbmdlX3QpIHJhbmdlczsK K307CisKIHN0cnVjdCB4ZW5faW9tbXVfb3AgewogICAgIHVpbnQxNl90IG9wOyAgICAvKiBvcCB0 eXBlICovCiAgICAgdWludDE2X3QgcGFkOwogICAgIGludDMyX3Qgc3RhdHVzOyAvKiBvcCBjb21w bGV0aW9uIHN0YXR1czogKi8KICAgICAgICAgICAgICAgICAgICAgLyogMCBmb3Igc3VjY2VzcyBv dGhlcndpc2UsIG5lZ2F0aXZlIGVycm5vICovCisgICAgdW5pb24geworICAgICAgICBzdHJ1Y3Qg eGVuX2lvbW11X29wX3F1ZXJ5X3Jlc2VydmVkIHF1ZXJ5X3Jlc2VydmVkOworICAgIH0gdTsKIH07 CiB0eXBlZGVmIHN0cnVjdCB4ZW5faW9tbXVfb3AgeGVuX2lvbW11X29wX3Q7CiBERUZJTkVfWEVO X0dVRVNUX0hBTkRMRSh4ZW5faW9tbXVfb3BfdCk7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94 bGF0LmxzdCBiL3hlbi9pbmNsdWRlL3hsYXQubHN0CmluZGV4IDNiMTVjMThjNGUuLmQyZjliMTAz NGIgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hsYXQubHN0CisrKyBiL3hlbi9pbmNsdWRlL3hs YXQubHN0CkBAIC03OSw2ICs3OSw4IEBACiA/CXZjcHVfaHZtX3g4Nl82NAkJCWh2bS9odm1fdmNw dS5oCiAhCWlvbW11X29wCQkJaW9tbXVfb3AuaAogIQlpb21tdV9vcF9idWYJCQlpb21tdV9vcC5o CishCWlvbW11X29wX3F1ZXJ5X3Jlc2VydmVkCQlpb21tdV9vcC5oCis/CWlvbW11X3Jlc2VydmVk X3JhbmdlCQlpb21tdV9vcC5oCiA/CWtleGVjX2V4ZWMJCQlrZXhlYy5oCiAhCWtleGVjX2ltYWdl CQkJa2V4ZWMuaAogIQlrZXhlY19yYW5nZQkJCWtleGVjLmgKLS0gCjIuMTEuMAoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5n IGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJv amVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=