From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau Monne Subject: [PATCH v3 2/4] iommu: make iommu_inclusive_mapping a suboption of dom0-iommu Date: Tue, 7 Aug 2018 16:02:41 +0200 Message-ID: <20180807140243.11265-3-roger.pau@citrix.com> References: <20180807140243.11265-1-roger.pau@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 1fn2aE-00042H-GW for xen-devel@lists.xenproject.org; Tue, 07 Aug 2018 14:03:34 +0000 In-Reply-To: <20180807140243.11265-1-roger.pau@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: Kevin Tian , Stefano Stabellini , Wei Liu , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Jan Beulich , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org SW50cm9kdWNlIGEgbmV3IGRvbTAtaW9tbXU9aW5jbHVzaXZlIGdlbmVyaWMgb3B0aW9uIHRoYXQg c3VwZXJzZWRlcwppb21tdV9pbmNsdXNpdmVfbWFwcGluZy4gVGhlIHByZXZpb3VzIGJlaGF2aW91 ciBpcyBwcmVzZXJ2ZWQgYW5kIHRoZQpvcHRpb24gc2hvdWxkIG9ubHkgYmUgZW5hYmxlZCBieSBk ZWZhdWx0IG9uIEludGVsIGhhcmR3YXJlLgoKTm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWQu CgpTaWduZWQtb2ZmLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4K LS0tCkNoYW5nZXMgc2luY2UgdjI6CiAtIEZpeCB0eXBvIGluIGNvbW1pdCBtZXNzYWdlLgogLSBD aGFuZ2Ugc3R5bGUgYW5kIHRleHQgb2YgdGhlIGRvY3VtZW50YXRpb24gaW4geGVuIGNvbW1hbmQg bGluZS4KIC0gU2V0IHRoZSBkZWZhdWx0cyBpbiB7aW50ZWwvYW1kfV9pb21tdV9od2RvbV9pbml0 IGZvciBpbmNsdXNpdmUuCiAtIFJlLWFkZCB0aGUgaW9tbXVfZG9tMF9wYXNzdGhyb3VnaCB8fCAh aXNfcHZfZG9tYWluKGQpIGNoZWNrLgoKQ2hhbmdlcyBzaW5jZSB2MToKIC0gVXNlIGRvbTAtaW9t bXUgaW5zdGVhZCBvZiB0aGUgaW9tbXUgb3B0aW9uLgogLSBPbmx5IGVuYWJsZSBieSBkZWZhdWx0 IG9uIEludGVsIGhhcmR3YXJlLgotLS0KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIz QGNpdHJpeC5jb20+CkNjOiBHZW9yZ2UgRHVubGFwIDxHZW9yZ2UuRHVubGFwQGV1LmNpdHJpeC5j b20+CkNjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4LmNvbT4KQ2M6IEphbiBC ZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KQ2M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxs QGFybS5jb20+CkNjOiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5j b20+CkNjOiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+CkNjOiBU aW0gRGVlZ2FuIDx0aW1AeGVuLm9yZz4KQ2M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+ CkNjOiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNvbT4KLS0tCiBkb2NzL21pc2MveGVu LWNvbW1hbmQtbGluZS5tYXJrZG93biAgICAgICAgIHwgMTcgKysrKystCiB4ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jIHwgIDQgKysKIHhlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL2FybS9pb21tdS5jICAgICAgICAgfCAgNCArKwogeGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gvaW9tbXUuYyAgICAgICAgICAgICB8IDIzICsrKysrKy0tCiB4ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC92dGQvZXh0ZXJuLmggICAgICAgIHwgIDIgLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv dnRkL2lvbW11LmMgICAgICAgICB8ICA4ICsrLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRk L3g4Ni92dGQuYyAgICAgICB8IDU4ICstLS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC94ODYvaW9tbXUuYyAgICAgICAgIHwgNTkgKysrKysrKysrKysrKysrKysrKysr CiB4ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaCAgICAgICAgICAgICAgICAgICAgIHwgIDIgKwogOSBm aWxlcyBjaGFuZ2VkLCAxMDkgaW5zZXJ0aW9ucygrKSwgNjggZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZG9jcy9taXNjL3hlbi1jb21tYW5kLWxpbmUubWFya2Rvd24gYi9kb2NzL21pc2MveGVu LWNvbW1hbmQtbGluZS5tYXJrZG93bgppbmRleCBlYTQ1MWYwODhlLi45MGIzMmZlM2YwIDEwMDY0 NAotLS0gYS9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93bgorKysgYi9kb2NzL21p c2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93bgpAQCAtMTIwNSw3ICsxMjA1LDcgQEAgZGV0ZWN0 aW9uIG9mIHN5c3RlbXMga25vd24gdG8gbWlzYmVoYXZlIHVwb24gYWNjZXNzZXMgdG8gdGhhdCBw b3J0LgogPj4gRW5hYmxlIElPTU1VIGRlYnVnZ2luZyBjb2RlIChpbXBsaWVzIGB2ZXJib3NlYCku CiAKICMjIyBkb20wLWlvbW11Ci0+IGA9IExpc3Qgb2YgWyBub25lIHwgc3RyaWN0IHwgcmVsYXhl ZCBdYAorPiBgPSBMaXN0IG9mIFsgbm9uZSB8IHN0cmljdCB8IHJlbGF4ZWQgfCBpbmNsdXNpdmUg XWAKIAogKiBgbm9uZWA6IGRpc2FibGVzIERNQSByZW1hcHBpbmcgZm9yIERvbTAuCiAKQEAgLTEy MjEsNiArMTIyMSwxOCBAQCBQViBEb20wOgogTm90ZSB0aGF0IGFsbCB0aGUgYWJvdmUgb3B0aW9u cyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiBTcGVjaWZ5aW5nIG1vcmUgdGhhbgogb25lIG9uIHRo ZSBgZG9tMC1pb21tdWAgY29tbWFuZCBsaW5lIHdpbGwgcmVzdWx0IGluIHVuZGVmaW5lZCBiZWhh dmlvci4KIAorVGhlIGZvbGxvd2luZyBvcHRpb25zIGNvbnRyb2wgd2hldGhlciBub24tUkFNIHJl Z2lvbnMgYXJlIGFkZGVkIHRvIHRoZSBEb20wCitpb21tdSB0YWJsZXMuIE5vdGUgdGhhdCB0aGV5 IGNhbiBiZSBwcmVmaXhlZCB3aXRoIGBuby1gIHRvIGVmZmVjdCB0aGUgaW52ZXJzZQorbWVhbmlu ZzoKKworKiBgaW5jbHVzaXZlYDogc2V0cyB1cCBETUEgcmVtYXBwaW5nIGZvciBhbGwgdGhlIG5v bi1SQU0gbWVtb3J5IGJlbG93IDRHQgorICBleGNlcHQgZm9yIHVudXNhYmxlIHJhbmdlcy4gVXNl IHRoaXMgdG8gd29yayBhcm91bmQgZmlybXdhcmUgaXNzdWVzIHByb3ZpZGluZworICBpbmNvcnJl Y3QgUk1SUi9JVk1EIGVudHJpZXMuIFJhdGhlciB0aGFuIG9ubHkgbWFwcGluZyBSQU0gcGFnZXMg Zm9yIElPTU1VCisgIGFjY2Vzc2VzIGZvciBEb20wLCB3aXRoIHRoaXMgb3B0aW9uIGFsbCBwYWdl cyB1cCB0byA0R0IsIG5vdCBtYXJrZWQgYXMKKyAgdW51c2FibGUgaW4gdGhlIEU4MjAgdGFibGUs IHdpbGwgZ2V0IGEgbWFwcGluZyBlc3RhYmxpc2hlZC4gTm90ZSB0aGF0IHRoaXMKKyAgb3B0aW9u IGlzIG9ubHkgYXBwbGljYWJsZSB0byBhIFBWIERvbTAgYW5kIGlzIGVuYWJsZWQgYnkgZGVmYXVs dCBvbiBJbnRlbAorICBoYXJkd2FyZS4KKwogIyMjIGlvbW11XF9kZXZcX2lvdGxiXF90aW1lb3V0 CiA+IGA9IDxpbnRlZ2VyPmAKIApAQCAtMTIzMyw2ICsxMjQ1LDkgQEAgd2FpdCBkZXNjcmlwdG9y IHRpbWVkIG91dCcsIHRyeSBpbmNyZWFzaW5nIHRoaXMgdmFsdWUuCiAjIyMgaW9tbXVcX2luY2x1 c2l2ZVxfbWFwcGluZyAoVlQtZCkKID4gYD0gPGJvb2xlYW4+YAogCisqKldBUk5JTkc6IFRoaXMg Y29tbWFuZCBsaW5lIG9wdGlvbiBpcyBkZXByZWNhdGVkLCBhbmQgc3VwZXJzZWRlZCBieQorX2Rv bTAtaW9tbXU9aW5jbHVzaXZlXyAtIHVzaW5nIGJvdGggb3B0aW9ucyBpbiBjb21iaW5hdGlvbiBp cyB1bmRlZmluZWQuKioKKwogPiBEZWZhdWx0OiBgdHJ1ZWAKIAogVXNlIHRoaXMgdG8gd29yayBh cm91bmQgZmlybXdhcmUgaXNzdWVzIHByb3ZpZGluZyBpbmNvcnJlY3QgUk1SUiBlbnRyaWVzLgpk aWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUuYyBi L3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMKaW5kZXggZWVhY2Y3 MTNlNC4uMGUwYzk5Yzk0MiAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1k L3BjaV9hbWRfaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2Ft ZF9pb21tdS5jCkBAIC0yNTMsNiArMjUzLDEwIEBAIHN0YXRpYyB2b2lkIF9faHdkb21faW5pdCBh bWRfaW9tbXVfaHdkb21faW5pdChzdHJ1Y3QgZG9tYWluICpkKQogICAgIHVuc2lnbmVkIGxvbmcg aTsgCiAgICAgY29uc3Qgc3RydWN0IGFtZF9pb21tdSAqaW9tbXU7CiAKKyAgICAvKiBJbmNsdXNp dmUgSU9NTVUgbWFwcGluZ3MgYXJlIGRpc2FibGVkIGJ5IGRlZmF1bHQgb24gQU1EIGhhcmR3YXJl LiAqLworICAgIGlvbW11X2RvbTBfaW5jbHVzaXZlID0gaW9tbXVfZG9tMF9pbmNsdXNpdmUgPT0g LTEgPyBmYWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgOiBpb21tdV9kb20wX2luY2x1c2l2ZTsKKwogICAgIGlmICggYWxsb2NhdGVfZG9t YWluX3Jlc291cmNlcyhkb21faW9tbXUoZCkpICkKICAgICAgICAgQlVHKCk7CiAKZGlmZiAtLWdp dCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9pb21tdS5jIGIveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvYXJtL2lvbW11LmMKaW5kZXggOTViMWFiYjk3Mi4uMzI1OTk3YjE5ZiAxMDA2NDQK LS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL2lvbW11LmMKKysrIGIveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvYXJtL2lvbW11LmMKQEAgLTczLDMgKzczLDcgQEAgaW50IGFyY2hfaW9t bXVfcG9wdWxhdGVfcGFnZV90YWJsZShzdHJ1Y3QgZG9tYWluICpkKQogICAgIC8qIFRoZSBJT01N VSBzaGFyZXMgdGhlIHAybSB3aXRoIHRoZSBDUFUgKi8KICAgICByZXR1cm4gLUVOT1NZUzsKIH0K Kwordm9pZCBfX2h3ZG9tX2luaXQgYXJjaF9pb21tdV9od2RvbV9pbml0KHN0cnVjdCBkb21haW4g KmQpCit7Cit9CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jIGIv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYwppbmRleCA4MzA1NjBiZGNmLi5mMTVjOTRi ZTQyIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jCisrKyBiL3hl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMKQEAgLTc0LDYgKzc0LDcgQEAgYm9vbF90IF9f cmVhZF9tb3N0bHkgYW1kX2lvbW11X3BlcmRldl9pbnRyZW1hcCA9IDE7CiBjdXN0b21fcGFyYW0o ImRvbTAtaW9tbXUiLCBwYXJzZV9kb20wX2lvbW11X3BhcmFtKTsKIGJvb2wgX19od2RvbV9pbml0 ZGF0YSBpb21tdV9kb20wX3N0cmljdDsKIGJvb2wgX19yZWFkX21vc3RseSBpb21tdV9kb20wX3Bh c3N0aHJvdWdoOworaW50OF90IF9faHdkb21faW5pdGRhdGEgaW9tbXVfZG9tMF9pbmNsdXNpdmUg PSAtMTsKIAogREVGSU5FX1BFUl9DUFUoYm9vbF90LCBpb21tdV9kb250X2ZsdXNoX2lvdGxiKTsK IApAQCAtMTQ0LDE2ICsxNDUsMjMgQEAgc3RhdGljIGludCBfX2luaXQgcGFyc2VfZG9tMF9pb21t dV9wYXJhbShjb25zdCBjaGFyICpzKQogICAgIGludCByYyA9IDA7CiAKICAgICBkbyB7CisgICAg ICAgIGJvb2wgdmFsID0gISFzdHJuY21wKHMsICJuby0iLCAzKTsKKworICAgICAgICBpZiAoICF2 YWwgKQorICAgICAgICAgICAgcyArPSAzOworCiAgICAgICAgIHNzID0gc3RyY2hyKHMsICcsJyk7 CiAgICAgICAgIGlmICggIXNzICkKICAgICAgICAgICAgIHNzID0gc3RyY2hyKHMsICdcMCcpOwog Ci0gICAgICAgIGlmICggIXN0cm5jbXAocywgIm5vbmUiLCBzcyAtIHMpICkKKyAgICAgICAgaWYg KCAhc3RybmNtcChzLCAibm9uZSIsIHNzIC0gcykgJiYgdmFsICkKICAgICAgICAgICAgIGlvbW11 X2RvbTBfcGFzc3Rocm91Z2ggPSB0cnVlOwotICAgICAgICBlbHNlIGlmICggIXN0cm5jbXAocywg InN0cmljdCIsIHNzIC0gcykgKQorICAgICAgICBlbHNlIGlmICggIXN0cm5jbXAocywgInN0cmlj dCIsIHNzIC0gcykgJiYgdmFsICkKICAgICAgICAgICAgIGlvbW11X2RvbTBfc3RyaWN0ID0gdHJ1 ZTsKLSAgICAgICAgZWxzZSBpZiAoICFzdHJuY21wKHMsICJyZWxheGVkIiwgc3MgLSBzKSApCisg ICAgICAgIGVsc2UgaWYgKCAhc3RybmNtcChzLCAicmVsYXhlZCIsIHNzIC0gcykgJiYgdmFsICkK ICAgICAgICAgICAgIGlvbW11X2RvbTBfc3RyaWN0ID0gZmFsc2U7CisgICAgICAgIGVsc2UgaWYg KCAhc3RybmNtcChzLCAiaW5jbHVzaXZlIiwgc3MgLSBzKSApCisgICAgICAgICAgICBpb21tdV9k b20wX2luY2x1c2l2ZSA9IHZhbDsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmMgPSAtRUlO VkFMOwogCkBAIC0yMDIsNiArMjEwLDEzIEBAIHZvaWQgX19od2RvbV9pbml0IGlvbW11X2h3ZG9t X2luaXQoc3RydWN0IGRvbWFpbiAqZCkKICAgICBpZiAoICFpb21tdV9lbmFibGVkICkKICAgICAg ICAgcmV0dXJuOwogCisgICAgaWYgKCBpb21tdV9kb20wX2luY2x1c2l2ZSA9PSB0cnVlICYmICFp c19wdl9kb21haW4oZCkgKQorICAgIHsKKyAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HCisg ICAgICAgICAgICAgICAiSU9NTVUgaW5jbHVzaXZlIG1hcHBpbmdzIGFyZSBvbmx5IHN1cHBvcnRl ZCBvbiBQViBEb20wXG4iKTsKKyAgICAgICAgaW9tbXVfZG9tMF9pbmNsdXNpdmUgPSBmYWxzZTsK KyAgICB9CisKICAgICByZWdpc3Rlcl9rZXloYW5kbGVyKCdvJywgJmlvbW11X2R1bXBfcDJtX3Rh YmxlLCAiZHVtcCBpb21tdSBwMm0gdGFibGUiLCAwKTsKICAgICBkLT5uZWVkX2lvbW11ID0gISFp b21tdV9kb20wX3N0cmljdDsKICAgICBpZiAoIG5lZWRfaW9tbXUoZCkgJiYgIWlvbW11X3VzZV9o YXBfcHQoZCkgKQpAQCAtMjM2LDYgKzI1MSw4IEBAIHZvaWQgX19od2RvbV9pbml0IGlvbW11X2h3 ZG9tX2luaXQoc3RydWN0IGRvbWFpbiAqZCkKICAgICB9CiAKICAgICBoZC0+cGxhdGZvcm1fb3Bz LT5od2RvbV9pbml0KGQpOworCisgICAgYXJjaF9pb21tdV9od2RvbV9pbml0KGQpOwogfQogCiB2 b2lkIGlvbW11X3RlYXJkb3duKHN0cnVjdCBkb21haW4gKmQpCmRpZmYgLS1naXQgYS94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC92dGQvZXh0ZXJuLmggYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92 dGQvZXh0ZXJuLmgKaW5kZXggZmI3ZWRmYWVmOS4uOTFjYWRjNjAyZSAxMDA2NDQKLS0tIGEveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2V4dGVybi5oCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL3Z0ZC9leHRlcm4uaApAQCAtOTksNiArOTksNCBAQCB2b2lkIHBjaV92dGRfcXVpcmso Y29uc3Qgc3RydWN0IHBjaV9kZXYgKik7CiBib29sX3QgcGxhdGZvcm1fc3VwcG9ydHNfaW50cmVt YXAodm9pZCk7CiBib29sX3QgcGxhdGZvcm1fc3VwcG9ydHNfeDJhcGljKHZvaWQpOwogCi12b2lk IHZ0ZF9zZXRfaHdkb21fbWFwcGluZyhzdHJ1Y3QgZG9tYWluICpkKTsKLQogI2VuZGlmIC8vIF9W VERfRVhURVJOX0hfCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9t bXUuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCmluZGV4IDhhYzc3NDIx NWIuLjdjN2UxNTc1NWQgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9p b21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCkBAIC0xMzA0 LDExICsxMzA0LDkgQEAgc3RhdGljIHZvaWQgX19od2RvbV9pbml0IGludGVsX2lvbW11X2h3ZG9t X2luaXQoc3RydWN0IGRvbWFpbiAqZCkKIHsKICAgICBzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQgKmRy aGQ7CiAKLSAgICBpZiAoICFpb21tdV9kb20wX3Bhc3N0aHJvdWdoICYmIGlzX3B2X2RvbWFpbihk KSApCi0gICAgewotICAgICAgICAvKiBTZXQgdXAgMToxIHBhZ2UgdGFibGUgZm9yIGhhcmR3YXJl IGRvbWFpbi4gKi8KLSAgICAgICAgdnRkX3NldF9od2RvbV9tYXBwaW5nKGQpOwotICAgIH0KKyAg ICAvKiBJbmNsdXNpdmUgbWFwcGluZ3MgYXJlIGVuYWJsZWQgYnkgZGVmYXVsdCBvbiBJbnRlbCBo YXJkd2FyZSBmb3IgUFYuICovCisgICAgaW9tbXVfZG9tMF9pbmNsdXNpdmUgPSBpb21tdV9kb20w X2luY2x1c2l2ZSA9PSAtMSA/IGlzX3B2X2RvbWFpbihkKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBpb21tdV9kb20wX2luY2x1c2l2ZTsK IAogICAgIHNldHVwX2h3ZG9tX3BjaV9kZXZpY2VzKGQsIHNldHVwX2h3ZG9tX2RldmljZSk7CiAg ICAgc2V0dXBfaHdkb21fcm1ycihkKTsKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3Z0ZC94ODYvdnRkLmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQveDg2L3Z0ZC5j CmluZGV4IDAwYTk4OTEwMDUuLjIwMzIzMDUxZDAgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL3Z0ZC94ODYvdnRkLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRk L3g4Ni92dGQuYwpAQCAtMjUsNyArMjUsNiBAQAogI2luY2x1ZGUgPHhlbi9pcnEuaD4KICNpbmNs dWRlIDx4ZW4vbnVtYS5oPgogI2luY2x1ZGUgPGFzbS9maXhtYXAuaD4KLSNpbmNsdWRlIDxhc20v c2V0dXAuaD4KICNpbmNsdWRlICIuLi9pb21tdS5oIgogI2luY2x1ZGUgIi4uL2RtYXIuaCIKICNp bmNsdWRlICIuLi92dGQuaCIKQEAgLTM1LDggKzM0LDcgQEAKICAqIGlvbW11X2luY2x1c2l2ZV9t YXBwaW5nOiB3aGVuIHNldCwgYWxsIG1lbW9yeSBiZWxvdyA0R0IgaXMgaW5jbHVkZWQgaW4gZG9t MAogICogMToxIGlvbW11IG1hcHBpbmdzIGV4Y2VwdCB4ZW4gYW5kIHVudXNhYmxlIHJlZ2lvbnMu CiAgKi8KLXN0YXRpYyBib29sX3QgX19od2RvbV9pbml0ZGF0YSBpb21tdV9pbmNsdXNpdmVfbWFw cGluZyA9IDE7Ci1ib29sZWFuX3BhcmFtKCJpb21tdV9pbmNsdXNpdmVfbWFwcGluZyIsIGlvbW11 X2luY2x1c2l2ZV9tYXBwaW5nKTsKK2Jvb2xlYW5fcGFyYW0oImlvbW11X2luY2x1c2l2ZV9tYXBw aW5nIiwgaW9tbXVfZG9tMF9pbmNsdXNpdmUpOwogCiB2b2lkICptYXBfdnRkX2RvbWFpbl9wYWdl KHU2NCBtYWRkcikKIHsKQEAgLTEwOCw1NyArMTA2LDMgQEAgdm9pZCBodm1fZHBjaV9pc2FpcnFf ZW9pKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBpc2FpcnEpCiAgICAgc3Bpbl91bmxv Y2soJmQtPmV2ZW50X2xvY2spOwogfQogCi12b2lkIF9faHdkb21faW5pdCB2dGRfc2V0X2h3ZG9t X21hcHBpbmcoc3RydWN0IGRvbWFpbiAqZCkKLXsKLSAgICB1bnNpZ25lZCBsb25nIGksIHRvcCwg bWF4X3BmbjsKLQotICAgIEJVR19PTighaXNfaGFyZHdhcmVfZG9tYWluKGQpKTsKLQotICAgIG1h eF9wZm4gPSAoR0IoNCkgPj4gUEFHRV9TSElGVCkgLSAxOwotICAgIHRvcCA9IG1heChtYXhfcGR4 LCBwZm5fdG9fcGR4KG1heF9wZm4pICsgMSk7Ci0KLSAgICBmb3IgKCBpID0gMDsgaSA8IHRvcDsg aSsrICkKLSAgICB7Ci0gICAgICAgIHVuc2lnbmVkIGxvbmcgcGZuID0gcGR4X3RvX3BmbihpKTsK LSAgICAgICAgYm9vbCBtYXA7Ci0gICAgICAgIGludCByYzsKLQotICAgICAgICAvKgotICAgICAg ICAgKiBTZXQgdXAgMToxIG1hcHBpbmcgZm9yIGRvbTAuIERlZmF1bHQgdG8gaW5jbHVkZSBvbmx5 Ci0gICAgICAgICAqIGNvbnZlbnRpb25hbCBSQU0gYXJlYXMgYW5kIGxldCBSTVJScyBpbmNsdWRl IG5lZWRlZCByZXNlcnZlZAotICAgICAgICAgKiByZWdpb25zLiBXaGVuIHNldCwgdGhlIGluY2x1 c2l2ZSBtYXBwaW5nIGFkZGl0aW9uYWxseSBtYXBzIGluCi0gICAgICAgICAqIGV2ZXJ5IHBmbiB1 cCB0byA0R0IgZXhjZXB0IHRob3NlIHRoYXQgZmFsbCBpbiB1bnVzYWJsZSByYW5nZXMuCi0gICAg ICAgICAqLwotICAgICAgICBpZiAoIHBmbiA+IG1heF9wZm4gJiYgIW1mbl92YWxpZChfbWZuKHBm bikpICkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIGlmICggaW9tbXVfaW5jbHVz aXZlX21hcHBpbmcgJiYgcGZuIDw9IG1heF9wZm4gKQotICAgICAgICAgICAgbWFwID0gIXBhZ2Vf aXNfcmFtX3R5cGUocGZuLCBSQU1fVFlQRV9VTlVTQUJMRSk7Ci0gICAgICAgIGVsc2UKLSAgICAg ICAgICAgIG1hcCA9IHBhZ2VfaXNfcmFtX3R5cGUocGZuLCBSQU1fVFlQRV9DT05WRU5USU9OQUwp OwotCi0gICAgICAgIGlmICggIW1hcCApCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAg ICAvKiBFeGNsdWRlIFhlbiBiaXRzICovCi0gICAgICAgIGlmICggeGVuX2luX3JhbmdlKHBmbikg KQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgLyoKLSAgICAgICAgICogSWYgZG9t MC1zdHJpY3QgbW9kZSBpcyBlbmFibGVkIHRoZW4gZXhjbHVkZSBjb252ZW50aW9uYWwgUkFNCi0g ICAgICAgICAqIGFuZCBsZXQgdGhlIGNvbW1vbiBjb2RlIG1hcCBkb20wJ3MgcGFnZXMuCi0gICAg ICAgICAqLwotICAgICAgICBpZiAoIGlvbW11X2RvbTBfc3RyaWN0ICYmCi0gICAgICAgICAgICAg cGFnZV9pc19yYW1fdHlwZShwZm4sIFJBTV9UWVBFX0NPTlZFTlRJT05BTCkgKQotICAgICAgICAg ICAgY29udGludWU7Ci0KLSAgICAgICAgcmMgPSBpb21tdV9tYXBfcGFnZShkLCBwZm4sIHBmbiwg SU9NTVVGX3JlYWRhYmxlfElPTU1VRl93cml0YWJsZSk7Ci0gICAgICAgIGlmICggcmMgKQotICAg ICAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HIFZURFBSRUZJWCAiIGQlZDogSU9NTVUgbWFw cGluZyBmYWlsZWQ6ICVkXG4iLAotICAgICAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgcmMp OwotCi0gICAgICAgIGlmICghKGkgJiAweGZmZmZmKSkKLSAgICAgICAgICAgIHByb2Nlc3NfcGVu ZGluZ19zb2Z0aXJxcygpOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gveDg2L2lvbW11LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvaW9tbXUu YwppbmRleCA2ODE4MmFmZDkxLi41YTdhNzY1ZTlkIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC94ODYvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYv aW9tbXUuYwpAQCAtMjAsNiArMjAsOCBAQAogI2luY2x1ZGUgPHhlbi9zb2Z0aXJxLmg+CiAjaW5j bHVkZSA8eHNtL3hzbS5oPgogCisjaW5jbHVkZSA8YXNtL3NldHVwLmg+CisKIHZvaWQgaW9tbXVf dXBkYXRlX2lyZV9mcm9tX2FwaWMoCiAgICAgdW5zaWduZWQgaW50IGFwaWMsIHVuc2lnbmVkIGlu dCByZWcsIHVuc2lnbmVkIGludCB2YWx1ZSkKIHsKQEAgLTEzMiw2ICsxMzQsNjMgQEAgdm9pZCBh cmNoX2lvbW11X2RvbWFpbl9kZXN0cm95KHN0cnVjdCBkb21haW4gKmQpCiB7CiB9CiAKK3ZvaWQg X19od2RvbV9pbml0IGFyY2hfaW9tbXVfaHdkb21faW5pdChzdHJ1Y3QgZG9tYWluICpkKQorewor ICAgIHVuc2lnbmVkIGxvbmcgaSwgdG9wLCBtYXhfcGZuOworCisgICAgQlVHX09OKCFpc19oYXJk d2FyZV9kb21haW4oZCkpOworCisgICAgaWYgKCBpb21tdV9kb20wX3Bhc3N0aHJvdWdoIHx8ICFp c19wdl9kb21haW4oZCkgKQorICAgICAgICByZXR1cm47CisKKyAgICBtYXhfcGZuID0gKEdCKDQp ID4+IFBBR0VfU0hJRlQpIC0gMTsKKyAgICB0b3AgPSBtYXgobWF4X3BkeCwgcGZuX3RvX3BkeCht YXhfcGZuKSArIDEpOworCisgICAgZm9yICggaSA9IDA7IGkgPCB0b3A7IGkrKyApCisgICAgewor ICAgICAgICB1bnNpZ25lZCBsb25nIHBmbiA9IHBkeF90b19wZm4oaSk7CisgICAgICAgIGJvb2wg bWFwOworICAgICAgICBpbnQgcmM7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogU2V0IHVwIDE6 MSBtYXBwaW5nIGZvciBkb20wLiBEZWZhdWx0IHRvIGluY2x1ZGUgb25seQorICAgICAgICAgKiBj b252ZW50aW9uYWwgUkFNIGFyZWFzIGFuZCBsZXQgUk1SUnMgaW5jbHVkZSBuZWVkZWQgcmVzZXJ2 ZWQKKyAgICAgICAgICogcmVnaW9ucy4gV2hlbiBzZXQsIHRoZSBpbmNsdXNpdmUgbWFwcGluZyBh ZGRpdGlvbmFsbHkgbWFwcyBpbgorICAgICAgICAgKiBldmVyeSBwZm4gdXAgdG8gNEdCIGV4Y2Vw dCB0aG9zZSB0aGF0IGZhbGwgaW4gdW51c2FibGUgcmFuZ2VzLgorICAgICAgICAgKi8KKyAgICAg ICAgaWYgKCBwZm4gPiBtYXhfcGZuICYmICFtZm5fdmFsaWQoX21mbihwZm4pKSApCisgICAgICAg ICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAoIGlvbW11X2RvbTBfaW5jbHVzaXZlICYmIHBm biA8PSBtYXhfcGZuICkKKyAgICAgICAgICAgIG1hcCA9ICFwYWdlX2lzX3JhbV90eXBlKHBmbiwg UkFNX1RZUEVfVU5VU0FCTEUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtYXAgPSBwYWdl X2lzX3JhbV90eXBlKHBmbiwgUkFNX1RZUEVfQ09OVkVOVElPTkFMKTsKKworICAgICAgICBpZiAo ICFtYXAgKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgLyogRXhjbHVkZSBYZW4g Yml0cyAqLworICAgICAgICBpZiAoIHhlbl9pbl9yYW5nZShwZm4pICkKKyAgICAgICAgICAgIGNv bnRpbnVlOworCisgICAgICAgIC8qCisgICAgICAgICAqIElmIGRvbTAtc3RyaWN0IG1vZGUgaXMg ZW5hYmxlZCB0aGVuIGV4Y2x1ZGUgY29udmVudGlvbmFsIFJBTQorICAgICAgICAgKiBhbmQgbGV0 IHRoZSBjb21tb24gY29kZSBtYXAgZG9tMCdzIHBhZ2VzLgorICAgICAgICAgKi8KKyAgICAgICAg aWYgKCBpb21tdV9kb20wX3N0cmljdCAmJgorICAgICAgICAgICAgIHBhZ2VfaXNfcmFtX3R5cGUo cGZuLCBSQU1fVFlQRV9DT05WRU5USU9OQUwpICkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisg ICAgICAgIHJjID0gaW9tbXVfbWFwX3BhZ2UoZCwgcGZuLCBwZm4sIElPTU1VRl9yZWFkYWJsZXxJ T01NVUZfd3JpdGFibGUpOworICAgICAgICBpZiAoIHJjICkKKyAgICAgICAgICAgIHByaW50ayhY RU5MT0dfV0FSTklORyAiIGQlZDogSU9NTVUgbWFwcGluZyBmYWlsZWQ6ICVkXG4iLAorICAgICAg ICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgcmMpOworCisgICAgICAgIGlmICghKGkgJiAweGZm ZmZmKSkKKyAgICAgICAgICAgIHByb2Nlc3NfcGVuZGluZ19zb2Z0aXJxcygpOworICAgIH0KK30K KwogLyoKICAqIExvY2FsIHZhcmlhYmxlczoKICAqIG1vZGU6IEMKZGlmZiAtLWdpdCBhL3hlbi9p bmNsdWRlL3hlbi9pb21tdS5oIGIveGVuL2luY2x1ZGUveGVuL2lvbW11LmgKaW5kZXggYzBjNjk3 NWFjNC4uOTllNWI4OWMwZiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2lvbW11LmgKKysr IGIveGVuL2luY2x1ZGUveGVuL2lvbW11LmgKQEAgLTM3LDYgKzM3LDcgQEAgZXh0ZXJuIGJvb2xf dCBpb21tdV9kZWJ1ZzsKIGV4dGVybiBib29sX3QgYW1kX2lvbW11X3BlcmRldl9pbnRyZW1hcDsK IAogZXh0ZXJuIGJvb2wgaW9tbXVfZG9tMF9zdHJpY3QsIGlvbW11X2RvbTBfcGFzc3Rocm91Z2g7 CitleHRlcm4gaW50OF90IGlvbW11X2RvbTBfaW5jbHVzaXZlOwogCiBleHRlcm4gdW5zaWduZWQg aW50IGlvbW11X2Rldl9pb3RsYl90aW1lb3V0OwogCkBAIC01MSw2ICs1Miw3IEBAIHZvaWQgYXJj aF9pb21tdV9kb21haW5fZGVzdHJveShzdHJ1Y3QgZG9tYWluICpkKTsKIGludCBhcmNoX2lvbW11 X2RvbWFpbl9pbml0KHN0cnVjdCBkb21haW4gKmQpOwogaW50IGFyY2hfaW9tbXVfcG9wdWxhdGVf cGFnZV90YWJsZShzdHJ1Y3QgZG9tYWluICpkKTsKIHZvaWQgYXJjaF9pb21tdV9jaGVja19hdXRv dHJhbnNsYXRlZF9od2RvbShzdHJ1Y3QgZG9tYWluICpkKTsKK3ZvaWQgYXJjaF9pb21tdV9od2Rv bV9pbml0KHN0cnVjdCBkb21haW4gKmQpOwogCiBpbnQgaW9tbXVfY29uc3RydWN0KHN0cnVjdCBk b21haW4gKmQpOwogCi0tIAoyLjE4LjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54 ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGlu Zm8veGVuLWRldmVs