From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau Monne Subject: [PATCH v7 3/6] iommu: make iommu_inclusive_mapping a suboption of dom0-iommu Date: Wed, 22 Aug 2018 09:51:57 +0200 Message-ID: <20180822075200.50278-4-roger.pau@citrix.com> References: <20180822075200.50278-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 1fsNwF-0000qU-41 for xen-devel@lists.xenproject.org; Wed, 22 Aug 2018 07:52:23 +0000 In-Reply-To: <20180822075200.50278-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 , Suravee Suthikulpanit , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Jan Beulich , Brian Woods , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org SW50cm9kdWNlIGEgbmV3IGRvbTAtaW9tbXU9bWFwLWluY2x1c2l2ZSBnZW5lcmljIG9wdGlvbiB0 aGF0CnN1cGVyc2VkZXMgaW9tbXVfaW5jbHVzaXZlX21hcHBpbmcuIFRoZSBwcmV2aW91cyBiZWhh dmlvciBpcyBwcmVzZXJ2ZWQKYW5kIHRoZSBvcHRpb24gc2hvdWxkIG9ubHkgYmUgZW5hYmxlZCBi eSBkZWZhdWx0IG9uIEludGVsIGhhcmR3YXJlLgoKU2lnbmVkLW9mZi1ieTogUm9nZXIgUGF1IE1v bm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBQYXVsIER1cnJhbnQgPHBh dWwuZHVycmFudEBjaXRyaXguY29tPgpSZXZpZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNo QHN1c2UuY29tPgpSZXZpZXdlZC1ieTogS2V2aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+ Ci0tLQpDaGFuZ2VzIHNpbmNlIHY0OgogLSBVc2UgYW4gaWYgdG8gc2V0IHRoZSBkZWZhdWx0IG9w dGlvbiB2YWx1ZS4KIC0gU2V0IHRoZSBvcHRpb24gdG8gZmFsc2UgdW5jb25kaXRpb25hbGx5IG9u IEFSTS4KCkNoYW5nZXMgc2luY2UgdjI6CiAtIEZpeCB0eXBvIGluIGNvbW1pdCBtZXNzYWdlLgog LSBDaGFuZ2Ugc3R5bGUgYW5kIHRleHQgb2YgdGhlIGRvY3VtZW50YXRpb24gaW4geGVuIGNvbW1h bmQgbGluZS4KIC0gU2V0IHRoZSBkZWZhdWx0cyBpbiB7aW50ZWwvYW1kfV9pb21tdV9od2RvbV9p bml0IGZvciBpbmNsdXNpdmUuCiAtIFJlLWFkZCB0aGUgaW9tbXVfZG9tMF9wYXNzdGhyb3VnaCB8 fCAhaXNfcHZfZG9tYWluKGQpIGNoZWNrLgoKQ2hhbmdlcyBzaW5jZSB2MToKIC0gVXNlIGRvbTAt aW9tbXUgaW5zdGVhZCBvZiB0aGUgaW9tbXUgb3B0aW9uLgogLSBPbmx5IGVuYWJsZSBieSBkZWZh dWx0IG9uIEludGVsIGhhcmR3YXJlLgotLS0KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29w ZXIzQGNpdHJpeC5jb20+CkNjOiBHZW9yZ2UgRHVubGFwIDxHZW9yZ2UuRHVubGFwQGV1LmNpdHJp eC5jb20+CkNjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4LmNvbT4KQ2M6IEph biBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KQ2M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdy YWxsQGFybS5jb20+CkNjOiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNs ZS5jb20+CkNjOiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+CkNj OiBUaW0gRGVlZ2FuIDx0aW1AeGVuLm9yZz4KQ2M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5j b20+CkNjOiBTdXJhdmVlIFN1dGhpa3VscGFuaXQgPHN1cmF2ZWUuc3V0aGlrdWxwYW5pdEBhbWQu Y29tPgpDYzogQnJpYW4gV29vZHMgPGJyaWFuLndvb2RzQGFtZC5jb20+CkNjOiBLZXZpbiBUaWFu IDxrZXZpbi50aWFuQGludGVsLmNvbT4KLS0tCiBkb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5t YXJrZG93biAgICAgICAgIHwgMTMgKysrKy0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9w Y2lfYW1kX2lvbW11LmMgfCAgNCArKwogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL2lvbW11 LmMgICAgICAgICB8ICA0ICsrCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vc21tdS5jICAg ICAgICAgIHwgIDIgKwogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYyAgICAgICAgICAg ICB8IDEyICsrKysrCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvZXh0ZXJuLmggICAgICAg IHwgIDIgLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMgICAgICAgICB8ICA4 ICsrLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3g4Ni92dGQuYyAgICAgICB8IDU4ICst LS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvaW9tbXUuYyAg ICAgICAgIHwgNTkgKysrKysrKysrKysrKysrKysrKysrCiB4ZW4vaW5jbHVkZS94ZW4vaW9tbXUu aCAgICAgICAgICAgICAgICAgICAgIHwgIDIgKwogMTAgZmlsZXMgY2hhbmdlZCwgOTkgaW5zZXJ0 aW9ucygrKSwgNjUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jcy9taXNjL3hlbi1jb21t YW5kLWxpbmUubWFya2Rvd24gYi9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93bgpp bmRleCBjZDU3OTYwZWRlLi45OGYwZjNiNjhiIDEwMDY0NAotLS0gYS9kb2NzL21pc2MveGVuLWNv bW1hbmQtbGluZS5tYXJrZG93bgorKysgYi9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5tYXJr ZG93bgpAQCAtNjgyLDcgKzY4Miw3IEBAIEZsYWcgdGhhdCBtYWtlcyBhIGRvbTAgdXNlIHNoYWRv dyBwYWdpbmcuIE9ubHkgd29ya3Mgd2hlbiAicHZoIiBpcwogZW5hYmxlZC4KIAogIyMjIGRvbTAt aW9tbXUKLT4gYD0gTGlzdCBvZiBbIHBhc3N0aHJvdWdoIHwgc3RyaWN0IF1gCis+IGA9IExpc3Qg b2YgWyBwYXNzdGhyb3VnaCB8IHN0cmljdCB8IG1hcC1pbmNsdXNpdmUgXWAKIAogVGhpcyBsaXN0 IG9mIGJvb2xlYW5zIGNvbnRyb2xzIHRoZSBpb21tdSB1c2FnZSBieSBEb20wOgogCkBAIC02OTYs NiArNjk2LDE0IEBAIFRoaXMgbGlzdCBvZiBib29sZWFucyBjb250cm9scyB0aGUgaW9tbXUgdXNh Z2UgYnkgRG9tMDoKICAgYHRydWVgIGZvciBhIFBWSCBEb20wIGFuZCBhbnkgYXR0ZW1wdCB0byBv dmVyd3JpdGUgaXQgZnJvbSB0aGUgY29tbWFuZCBsaW5lCiAgIGlzIGlnbm9yZWQuCiAKKyogYG1h cC1pbmNsdXNpdmVgOiBzZXRzIHVwIERNQSByZW1hcHBpbmcgZm9yIGFsbCB0aGUgbm9uLVJBTSBy ZWdpb25zIGJlbG93IDRHQgorICBleGNlcHQgZm9yIHVudXNhYmxlIHJhbmdlcy4gVXNlIHRoaXMg dG8gd29yayBhcm91bmQgZmlybXdhcmUgaXNzdWVzIHByb3ZpZGluZworICBpbmNvcnJlY3QgUk1S Ui9JVk1EIGVudHJpZXMuIFJhdGhlciB0aGFuIG9ubHkgbWFwcGluZyBSQU0gcGFnZXMgZm9yIElP TU1VCisgIGFjY2Vzc2VzIGZvciBEb20wLCB3aXRoIHRoaXMgb3B0aW9uIGFsbCBwYWdlcyB1cCB0 byA0R0IsIG5vdCBtYXJrZWQgYXMKKyAgdW51c2FibGUgaW4gdGhlIEU4MjAgdGFibGUsIHdpbGwg Z2V0IGEgbWFwcGluZyBlc3RhYmxpc2hlZC4gTm90ZSB0aGF0IHRoaXMKKyAgb3B0aW9uIGlzIG9u bHkgYXBwbGljYWJsZSB0byBhIFBWIERvbTAgYW5kIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvbiBJ bnRlbAorICBoYXJkd2FyZS4KKwogIyMjIGRvbTBcX2lvcG9ydHNcX2Rpc2FibGUgKHg4NikKID4g YD0gTGlzdCBvZiA8aGV4Pi08aGV4PmAKIApAQCAtMTIzMyw2ICsxMjQxLDkgQEAgd2FpdCBkZXNj cmlwdG9yIHRpbWVkIG91dCcsIHRyeSBpbmNyZWFzaW5nIHRoaXMgdmFsdWUuCiAjIyMgaW9tbXVc X2luY2x1c2l2ZVxfbWFwcGluZyAoVlQtZCkKID4gYD0gPGJvb2xlYW4+YAogCisqKldBUk5JTkc6 IFRoaXMgY29tbWFuZCBsaW5lIG9wdGlvbiBpcyBkZXByZWNhdGVkLCBhbmQgc3VwZXJzZWRlZCBi eQorX2RvbTAtaW9tbXU9bWFwLWluY2x1c2l2ZV8gLSB1c2luZyBib3RoIG9wdGlvbnMgaW4gY29t YmluYXRpb24gaXMgdW5kZWZpbmVkLioqCisKID4gRGVmYXVsdDogYHRydWVgCiAKIFVzZSB0aGlz IHRvIHdvcmsgYXJvdW5kIGZpcm13YXJlIGlzc3VlcyBwcm92aWRpbmcgaW5jb3JyZWN0IFJNUlIg ZW50cmllcy4KZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9wY2lfYW1k X2lvbW11LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jCmlu ZGV4IGFiMzllNzUwMGQuLjI3ZWI0OTYxOWQgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv YW1kL3BjaV9hbWRfaW9tbXUuYwpAQCAtMjUzLDYgKzI1MywxMCBAQCBzdGF0aWMgdm9pZCBfX2h3 ZG9tX2luaXQgYW1kX2lvbW11X2h3ZG9tX2luaXQoc3RydWN0IGRvbWFpbiAqZCkKICAgICB1bnNp Z25lZCBsb25nIGk7IAogICAgIGNvbnN0IHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11OwogCisgICAg LyogSW5jbHVzaXZlIElPTU1VIG1hcHBpbmdzIGFyZSBkaXNhYmxlZCBieSBkZWZhdWx0IG9uIEFN RCBoYXJkd2FyZS4gKi8KKyAgICBpZiAoIGlvbW11X2h3ZG9tX2luY2x1c2l2ZSA9PSAtMSApCisg ICAgICAgIGlvbW11X2h3ZG9tX2luY2x1c2l2ZSA9IGZhbHNlOworCiAgICAgaWYgKCBhbGxvY2F0 ZV9kb21haW5fcmVzb3VyY2VzKGRvbV9pb21tdShkKSkgKQogICAgICAgICBCVUcoKTsKIApkaWZm IC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL2lvbW11LmMgYi94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC9hcm0vaW9tbXUuYwppbmRleCA5NWIxYWJiOTcyLi4zMjU5OTdiMTlmIDEw MDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vaW9tbXUuYworKysgYi94ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vaW9tbXUuYwpAQCAtNzMsMyArNzMsNyBAQCBpbnQgYXJj aF9pb21tdV9wb3B1bGF0ZV9wYWdlX3RhYmxlKHN0cnVjdCBkb21haW4gKmQpCiAgICAgLyogVGhl IElPTU1VIHNoYXJlcyB0aGUgcDJtIHdpdGggdGhlIENQVSAqLwogICAgIHJldHVybiAtRU5PU1lT OwogfQorCit2b2lkIF9faHdkb21faW5pdCBhcmNoX2lvbW11X2h3ZG9tX2luaXQoc3RydWN0IGRv bWFpbiAqZCkKK3sKK30KZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9z bW11LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vc21tdS5jCmluZGV4IDc0YzA5YjA5 OTEuLmIxNDI2NzdiOGMgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9z bW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL3NtbXUuYwpAQCAtMjcyNyw2 ICsyNzI3LDggQEAgc3RhdGljIGludCBhcm1fc21tdV9pb21tdV9kb21haW5faW5pdChzdHJ1Y3Qg ZG9tYWluICpkKQogCiBzdGF0aWMgdm9pZCBfX2h3ZG9tX2luaXQgYXJtX3NtbXVfaW9tbXVfaHdk b21faW5pdChzdHJ1Y3QgZG9tYWluICpkKQogeworCS8qIFNldCB0byBmYWxzZSBvcHRpb25zIG5v dCBzdXBwb3J0ZWQgb24gQVJNLiAqLworCWlvbW11X2h3ZG9tX2luY2x1c2l2ZSA9IGZhbHNlOwog fQogCiBzdGF0aWMgdm9pZCBhcm1fc21tdV9pb21tdV9kb21haW5fdGVhcmRvd24oc3RydWN0IGRv bWFpbiAqZCkKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMgYi94 ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jCmluZGV4IDhmOTk3NWNmNGUuLjU3OTgxNDI3 MzAgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMKKysrIGIveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYwpAQCAtNjEsNiArNjEsNyBAQCBib29sX3QgX19y ZWFkX21vc3RseSBpb21tdV9pbnRyZW1hcCA9IDE7CiAKIGJvb2wgX19od2RvbV9pbml0ZGF0YSBp b21tdV9od2RvbV9zdHJpY3Q7CiBib29sIF9fcmVhZF9tb3N0bHkgaW9tbXVfaHdkb21fcGFzc3Ro cm91Z2g7CitpbnQ4X3QgX19od2RvbV9pbml0ZGF0YSBpb21tdV9od2RvbV9pbmNsdXNpdmUgPSAt MTsKIAogLyoKICAqIEluIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIG9mIFZULWQgcG9zdGVk IGludGVycnVwdHMsIGluIHNvbWUgZXh0cmVtZQpAQCAtMTUyLDYgKzE1Myw4IEBAIHN0YXRpYyBp bnQgX19pbml0IHBhcnNlX2RvbTBfaW9tbXVfcGFyYW0oY29uc3QgY2hhciAqcykKICAgICAgICAg ICAgIGlvbW11X2h3ZG9tX3Bhc3N0aHJvdWdoID0gdmFsOwogICAgICAgICBlbHNlIGlmICggKHZh bCA9IHBhcnNlX2Jvb2xlYW4oInN0cmljdCIsIHMsIHNzKSkgPj0gMCApCiAgICAgICAgICAgICBp b21tdV9od2RvbV9zdHJpY3QgPSB2YWw7CisgICAgICAgIGVsc2UgaWYgKCAodmFsID0gcGFyc2Vf Ym9vbGVhbigibWFwLWluY2x1c2l2ZSIsIHMsIHNzKSkgPj0gMCApCisgICAgICAgICAgICBpb21t dV9od2RvbV9pbmNsdXNpdmUgPSB2YWw7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJjID0g LUVJTlZBTDsKIApAQCAtMjMyLDYgKzIzNSwxNSBAQCB2b2lkIF9faHdkb21faW5pdCBpb21tdV9o d2RvbV9pbml0KHN0cnVjdCBkb21haW4gKmQpCiAgICAgfQogCiAgICAgaGQtPnBsYXRmb3JtX29w cy0+aHdkb21faW5pdChkKTsKKworICAgIGlmICggaW9tbXVfaHdkb21faW5jbHVzaXZlICYmICFp c19wdl9kb21haW4oZCkgKQorICAgIHsKKyAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HCisg ICAgICAgICAgICAgICAiSU9NTVUgaW5jbHVzaXZlIG1hcHBpbmdzIGFyZSBvbmx5IHN1cHBvcnRl ZCBvbiBQViBEb20wXG4iKTsKKyAgICAgICAgaW9tbXVfaHdkb21faW5jbHVzaXZlID0gZmFsc2U7 CisgICAgfQorCisgICAgYXJjaF9pb21tdV9od2RvbV9pbml0KGQpOwogfQogCiB2b2lkIGlvbW11 X3RlYXJkb3duKHN0cnVjdCBkb21haW4gKmQpCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC92dGQvZXh0ZXJuLmggYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvZXh0ZXJu LmgKaW5kZXggZmI3ZWRmYWVmOS4uOTFjYWRjNjAyZSAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvdnRkL2V4dGVybi5oCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0 ZC9leHRlcm4uaApAQCAtOTksNiArOTksNCBAQCB2b2lkIHBjaV92dGRfcXVpcmsoY29uc3Qgc3Ry dWN0IHBjaV9kZXYgKik7CiBib29sX3QgcGxhdGZvcm1fc3VwcG9ydHNfaW50cmVtYXAodm9pZCk7 CiBib29sX3QgcGxhdGZvcm1fc3VwcG9ydHNfeDJhcGljKHZvaWQpOwogCi12b2lkIHZ0ZF9zZXRf aHdkb21fbWFwcGluZyhzdHJ1Y3QgZG9tYWluICpkKTsKLQogI2VuZGlmIC8vIF9WVERfRVhURVJO X0hfCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYyBiL3hl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCmluZGV4IDMyYmYwZmMyOTkuLmEwOWUw MmM4ZGIgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCisr KyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCkBAIC0xMzA0LDExICsxMzA0 LDkgQEAgc3RhdGljIHZvaWQgX19od2RvbV9pbml0IGludGVsX2lvbW11X2h3ZG9tX2luaXQoc3Ry dWN0IGRvbWFpbiAqZCkKIHsKICAgICBzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQgKmRyaGQ7CiAKLSAg ICBpZiAoICFpb21tdV9od2RvbV9wYXNzdGhyb3VnaCAmJiBpc19wdl9kb21haW4oZCkgKQotICAg IHsKLSAgICAgICAgLyogU2V0IHVwIDE6MSBwYWdlIHRhYmxlIGZvciBoYXJkd2FyZSBkb21haW4u ICovCi0gICAgICAgIHZ0ZF9zZXRfaHdkb21fbWFwcGluZyhkKTsKLSAgICB9CisgICAgLyogSW5j bHVzaXZlIG1hcHBpbmdzIGFyZSBlbmFibGVkIGJ5IGRlZmF1bHQgb24gSW50ZWwgaGFyZHdhcmUg Zm9yIFBWLiAqLworICAgIGlmICggaW9tbXVfaHdkb21faW5jbHVzaXZlID09IC0xICkKKyAgICAg ICAgaW9tbXVfaHdkb21faW5jbHVzaXZlID0gaXNfcHZfZG9tYWluKGQpOwogCiAgICAgc2V0dXBf aHdkb21fcGNpX2RldmljZXMoZCwgc2V0dXBfaHdkb21fZGV2aWNlKTsKICAgICBzZXR1cF9od2Rv bV9ybXJyKGQpOwpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3g4Ni92 dGQuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvdnRkLmMKaW5kZXggOGY4Njgy MTYxYi4uNGVhZWMyZWVkNiAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRk L3g4Ni92dGQuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQveDg2L3Z0ZC5jCkBA IC0yNSw3ICsyNSw2IEBACiAjaW5jbHVkZSA8eGVuL2lycS5oPgogI2luY2x1ZGUgPHhlbi9udW1h Lmg+CiAjaW5jbHVkZSA8YXNtL2ZpeG1hcC5oPgotI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgogI2lu Y2x1ZGUgIi4uL2lvbW11LmgiCiAjaW5jbHVkZSAiLi4vZG1hci5oIgogI2luY2x1ZGUgIi4uL3Z0 ZC5oIgpAQCAtMzUsOCArMzQsNyBAQAogICogaW9tbXVfaW5jbHVzaXZlX21hcHBpbmc6IHdoZW4g c2V0LCBhbGwgbWVtb3J5IGJlbG93IDRHQiBpcyBpbmNsdWRlZCBpbiBkb20wCiAgKiAxOjEgaW9t bXUgbWFwcGluZ3MgZXhjZXB0IHhlbiBhbmQgdW51c2FibGUgcmVnaW9ucy4KICAqLwotc3RhdGlj IGJvb2xfdCBfX2h3ZG9tX2luaXRkYXRhIGlvbW11X2luY2x1c2l2ZV9tYXBwaW5nID0gMTsKLWJv b2xlYW5fcGFyYW0oImlvbW11X2luY2x1c2l2ZV9tYXBwaW5nIiwgaW9tbXVfaW5jbHVzaXZlX21h cHBpbmcpOworYm9vbGVhbl9wYXJhbSgiaW9tbXVfaW5jbHVzaXZlX21hcHBpbmciLCBpb21tdV9o d2RvbV9pbmNsdXNpdmUpOwogCiB2b2lkICptYXBfdnRkX2RvbWFpbl9wYWdlKHU2NCBtYWRkcikK IHsKQEAgLTEwOCw1NyArMTA2LDMgQEAgdm9pZCBodm1fZHBjaV9pc2FpcnFfZW9pKHN0cnVjdCBk b21haW4gKmQsIHVuc2lnbmVkIGludCBpc2FpcnEpCiAgICAgc3Bpbl91bmxvY2soJmQtPmV2ZW50 X2xvY2spOwogfQogCi12b2lkIF9faHdkb21faW5pdCB2dGRfc2V0X2h3ZG9tX21hcHBpbmcoc3Ry dWN0IGRvbWFpbiAqZCkKLXsKLSAgICB1bnNpZ25lZCBsb25nIGksIHRvcCwgbWF4X3BmbjsKLQot ICAgIEJVR19PTighaXNfaGFyZHdhcmVfZG9tYWluKGQpKTsKLQotICAgIG1heF9wZm4gPSAoR0Io NCkgPj4gUEFHRV9TSElGVCkgLSAxOwotICAgIHRvcCA9IG1heChtYXhfcGR4LCBwZm5fdG9fcGR4 KG1heF9wZm4pICsgMSk7Ci0KLSAgICBmb3IgKCBpID0gMDsgaSA8IHRvcDsgaSsrICkKLSAgICB7 Ci0gICAgICAgIHVuc2lnbmVkIGxvbmcgcGZuID0gcGR4X3RvX3BmbihpKTsKLSAgICAgICAgYm9v bCBtYXA7Ci0gICAgICAgIGludCByYzsKLQotICAgICAgICAvKgotICAgICAgICAgKiBTZXQgdXAg MToxIG1hcHBpbmcgZm9yIGRvbTAuIERlZmF1bHQgdG8gaW5jbHVkZSBvbmx5Ci0gICAgICAgICAq IGNvbnZlbnRpb25hbCBSQU0gYXJlYXMgYW5kIGxldCBSTVJScyBpbmNsdWRlIG5lZWRlZCByZXNl cnZlZAotICAgICAgICAgKiByZWdpb25zLiBXaGVuIHNldCwgdGhlIGluY2x1c2l2ZSBtYXBwaW5n IGFkZGl0aW9uYWxseSBtYXBzIGluCi0gICAgICAgICAqIGV2ZXJ5IHBmbiB1cCB0byA0R0IgZXhj ZXB0IHRob3NlIHRoYXQgZmFsbCBpbiB1bnVzYWJsZSByYW5nZXMuCi0gICAgICAgICAqLwotICAg ICAgICBpZiAoIHBmbiA+IG1heF9wZm4gJiYgIW1mbl92YWxpZChfbWZuKHBmbikpICkKLSAgICAg ICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIGlmICggaW9tbXVfaW5jbHVzaXZlX21hcHBpbmcg JiYgcGZuIDw9IG1heF9wZm4gKQotICAgICAgICAgICAgbWFwID0gIXBhZ2VfaXNfcmFtX3R5cGUo cGZuLCBSQU1fVFlQRV9VTlVTQUJMRSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1hcCA9 IHBhZ2VfaXNfcmFtX3R5cGUocGZuLCBSQU1fVFlQRV9DT05WRU5USU9OQUwpOwotCi0gICAgICAg IGlmICggIW1hcCApCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICAvKiBFeGNsdWRl IFhlbiBiaXRzICovCi0gICAgICAgIGlmICggeGVuX2luX3JhbmdlKHBmbikgKQotICAgICAgICAg ICAgY29udGludWU7Ci0KLSAgICAgICAgLyoKLSAgICAgICAgICogSWYgZG9tMC1zdHJpY3QgbW9k ZSBpcyBlbmFibGVkIHRoZW4gZXhjbHVkZSBjb252ZW50aW9uYWwgUkFNCi0gICAgICAgICAqIGFu ZCBsZXQgdGhlIGNvbW1vbiBjb2RlIG1hcCBkb20wJ3MgcGFnZXMuCi0gICAgICAgICAqLwotICAg ICAgICBpZiAoIGlvbW11X2h3ZG9tX3N0cmljdCAmJgotICAgICAgICAgICAgIHBhZ2VfaXNfcmFt X3R5cGUocGZuLCBSQU1fVFlQRV9DT05WRU5USU9OQUwpICkKLSAgICAgICAgICAgIGNvbnRpbnVl OwotCi0gICAgICAgIHJjID0gaW9tbXVfbWFwX3BhZ2UoZCwgcGZuLCBwZm4sIElPTU1VRl9yZWFk YWJsZXxJT01NVUZfd3JpdGFibGUpOwotICAgICAgICBpZiAoIHJjICkKLSAgICAgICAgICAgIHBy aW50ayhYRU5MT0dfV0FSTklORyBWVERQUkVGSVggIiBkJWQ6IElPTU1VIG1hcHBpbmcgZmFpbGVk OiAlZFxuIiwKLSAgICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQsIHJjKTsKLQotICAgICAg ICBpZiAoIShpICYgMHhmZmZmZikpCi0gICAgICAgICAgICBwcm9jZXNzX3BlbmRpbmdfc29mdGly cXMoKTsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4 Ni9pb21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2L2lvbW11LmMKaW5kZXggNjgx ODJhZmQ5MS4uMjVlMWViZjhiMyAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv eDg2L2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2L2lvbW11LmMKQEAg LTIwLDYgKzIwLDggQEAKICNpbmNsdWRlIDx4ZW4vc29mdGlycS5oPgogI2luY2x1ZGUgPHhzbS94 c20uaD4KIAorI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgorCiB2b2lkIGlvbW11X3VwZGF0ZV9pcmVf ZnJvbV9hcGljKAogICAgIHVuc2lnbmVkIGludCBhcGljLCB1bnNpZ25lZCBpbnQgcmVnLCB1bnNp Z25lZCBpbnQgdmFsdWUpCiB7CkBAIC0xMzIsNiArMTM0LDYzIEBAIHZvaWQgYXJjaF9pb21tdV9k b21haW5fZGVzdHJveShzdHJ1Y3QgZG9tYWluICpkKQogewogfQogCit2b2lkIF9faHdkb21faW5p dCBhcmNoX2lvbW11X2h3ZG9tX2luaXQoc3RydWN0IGRvbWFpbiAqZCkKK3sKKyAgICB1bnNpZ25l ZCBsb25nIGksIHRvcCwgbWF4X3BmbjsKKworICAgIEJVR19PTighaXNfaGFyZHdhcmVfZG9tYWlu KGQpKTsKKworICAgIGlmICggaW9tbXVfaHdkb21fcGFzc3Rocm91Z2ggfHwgIWlzX3B2X2RvbWFp bihkKSApCisgICAgICAgIHJldHVybjsKKworICAgIG1heF9wZm4gPSAoR0IoNCkgPj4gUEFHRV9T SElGVCkgLSAxOworICAgIHRvcCA9IG1heChtYXhfcGR4LCBwZm5fdG9fcGR4KG1heF9wZm4pICsg MSk7CisKKyAgICBmb3IgKCBpID0gMDsgaSA8IHRvcDsgaSsrICkKKyAgICB7CisgICAgICAgIHVu c2lnbmVkIGxvbmcgcGZuID0gcGR4X3RvX3BmbihpKTsKKyAgICAgICAgYm9vbCBtYXA7CisgICAg ICAgIGludCByYzsKKworICAgICAgICAvKgorICAgICAgICAgKiBTZXQgdXAgMToxIG1hcHBpbmcg Zm9yIGRvbTAuIERlZmF1bHQgdG8gaW5jbHVkZSBvbmx5CisgICAgICAgICAqIGNvbnZlbnRpb25h bCBSQU0gYXJlYXMgYW5kIGxldCBSTVJScyBpbmNsdWRlIG5lZWRlZCByZXNlcnZlZAorICAgICAg ICAgKiByZWdpb25zLiBXaGVuIHNldCwgdGhlIGluY2x1c2l2ZSBtYXBwaW5nIGFkZGl0aW9uYWxs eSBtYXBzIGluCisgICAgICAgICAqIGV2ZXJ5IHBmbiB1cCB0byA0R0IgZXhjZXB0IHRob3NlIHRo YXQgZmFsbCBpbiB1bnVzYWJsZSByYW5nZXMuCisgICAgICAgICAqLworICAgICAgICBpZiAoIHBm biA+IG1heF9wZm4gJiYgIW1mbl92YWxpZChfbWZuKHBmbikpICkKKyAgICAgICAgICAgIGNvbnRp bnVlOworCisgICAgICAgIGlmICggaW9tbXVfaHdkb21faW5jbHVzaXZlICYmIHBmbiA8PSBtYXhf cGZuICkKKyAgICAgICAgICAgIG1hcCA9ICFwYWdlX2lzX3JhbV90eXBlKHBmbiwgUkFNX1RZUEVf VU5VU0FCTEUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtYXAgPSBwYWdlX2lzX3JhbV90 eXBlKHBmbiwgUkFNX1RZUEVfQ09OVkVOVElPTkFMKTsKKworICAgICAgICBpZiAoICFtYXAgKQor ICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgLyogRXhjbHVkZSBYZW4gYml0cyAqLwor ICAgICAgICBpZiAoIHhlbl9pbl9yYW5nZShwZm4pICkKKyAgICAgICAgICAgIGNvbnRpbnVlOwor CisgICAgICAgIC8qCisgICAgICAgICAqIElmIGRvbTAtc3RyaWN0IG1vZGUgaXMgZW5hYmxlZCB0 aGVuIGV4Y2x1ZGUgY29udmVudGlvbmFsIFJBTQorICAgICAgICAgKiBhbmQgbGV0IHRoZSBjb21t b24gY29kZSBtYXAgZG9tMCdzIHBhZ2VzLgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKCBpb21t dV9od2RvbV9zdHJpY3QgJiYKKyAgICAgICAgICAgICBwYWdlX2lzX3JhbV90eXBlKHBmbiwgUkFN X1RZUEVfQ09OVkVOVElPTkFMKSApCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBy YyA9IGlvbW11X21hcF9wYWdlKGQsIHBmbiwgcGZuLCBJT01NVUZfcmVhZGFibGV8SU9NTVVGX3dy aXRhYmxlKTsKKyAgICAgICAgaWYgKCByYyApCisgICAgICAgICAgICBwcmludGsoWEVOTE9HX1dB Uk5JTkcgIiBkJWQ6IElPTU1VIG1hcHBpbmcgZmFpbGVkOiAlZFxuIiwKKyAgICAgICAgICAgICAg ICAgICBkLT5kb21haW5faWQsIHJjKTsKKworICAgICAgICBpZiAoIShpICYgMHhmZmZmZikpCisg ICAgICAgICAgICBwcm9jZXNzX3BlbmRpbmdfc29mdGlycXMoKTsKKyAgICB9Cit9CisKIC8qCiAg KiBMb2NhbCB2YXJpYWJsZXM6CiAgKiBtb2RlOiBDCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94 ZW4vaW9tbXUuaCBiL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oCmluZGV4IDM5MmNmMWU2YjkuLjg5 YzY4MzA2ODkgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oCisrKyBiL3hlbi9p bmNsdWRlL3hlbi9pb21tdS5oCkBAIC0zNyw2ICszNyw3IEBAIGV4dGVybiBib29sX3QgaW9tbXVf ZGVidWc7CiBleHRlcm4gYm9vbF90IGFtZF9pb21tdV9wZXJkZXZfaW50cmVtYXA7CiAKIGV4dGVy biBib29sIGlvbW11X2h3ZG9tX3N0cmljdCwgaW9tbXVfaHdkb21fcGFzc3Rocm91Z2g7CitleHRl cm4gaW50OF90IGlvbW11X2h3ZG9tX2luY2x1c2l2ZTsKIAogZXh0ZXJuIHVuc2lnbmVkIGludCBp b21tdV9kZXZfaW90bGJfdGltZW91dDsKIApAQCAtNTEsNiArNTIsNyBAQCB2b2lkIGFyY2hfaW9t bXVfZG9tYWluX2Rlc3Ryb3koc3RydWN0IGRvbWFpbiAqZCk7CiBpbnQgYXJjaF9pb21tdV9kb21h aW5faW5pdChzdHJ1Y3QgZG9tYWluICpkKTsKIGludCBhcmNoX2lvbW11X3BvcHVsYXRlX3BhZ2Vf dGFibGUoc3RydWN0IGRvbWFpbiAqZCk7CiB2b2lkIGFyY2hfaW9tbXVfY2hlY2tfYXV0b3RyYW5z bGF0ZWRfaHdkb20oc3RydWN0IGRvbWFpbiAqZCk7Cit2b2lkIGFyY2hfaW9tbXVfaHdkb21faW5p dChzdHJ1Y3QgZG9tYWluICpkKTsKIAogaW50IGlvbW11X2NvbnN0cnVjdChzdHJ1Y3QgZG9tYWlu ICpkKTsKIAotLSAKMi4xOC4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJv amVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hl bi1kZXZlbA==