From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau Monne Subject: [PATCH v7 6/6] x86/iommu: add map-reserved dom0-iommu option to map reserved memory ranges Date: Wed, 22 Aug 2018 09:52:00 +0200 Message-ID: <20180822075200.50278-7-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 1fsNwP-0000wx-Oa for xen-devel@lists.xenproject.org; Wed, 22 Aug 2018 07:52:33 +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 , Paul Durrant , Jan Beulich , Brian Woods , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org U2V2ZXJhbCBwZW9wbGUgaGF2ZSByZXBvcnRlZCBoYXJkd2FyZSBpc3N1ZXMgKG1hbGZ1bmN0aW9u aW5nIFVTQgpjb250cm9sbGVycykgZHVlIHRvIGlvbW11IHBhZ2UgZmF1bHRzIG9uIEludGVsIGhh cmR3YXJlLiBUaG9zZSBmYXVsdHMKYXJlIGNhdXNlZCBieSBtaXNzaW5nIFJNUlIgKFZUZCkgZW50 cmllcyBpbiB0aGUgQUNQSSB0YWJsZXMuIFRob3NlIGNhbgpiZSB3b3JrZWQgYXJvdW5kIG9uIFZU ZCBoYXJkd2FyZSBieSBtYW51YWxseSBhZGRpbmcgUk1SUiBlbnRyaWVzIG9uCnRoZSBjb21tYW5k IGxpbmUsIHRoaXMgaXMgaG93ZXZlciBsaW1pdGVkIHRvIEludGVsIGhhcmR3YXJlIGFuZCBxdWl0 ZQpjdW1iZXJzb21lIHRvIGRvLgoKSW4gb3JkZXIgdG8gc29sdmUgdGhvc2UgaXNzdWVzIGFkZCBh IG5ldyBkb20wLWlvbW11PW1hcC1yZXNlcnZlZApvcHRpb24gdGhhdCBpZGVudGl0eSBtYXBzIGFs bCByZWdpb25zIG1hcmtlZCBhcyByZXNlcnZlZCBpbiB0aGUgbWVtb3J5Cm1hcC4gTm90ZSB0aGF0 IHJlZ2lvbnMgdXNlZCBieSBkZXZpY2VzIGVtdWxhdGVkIGJ5IFhlbiAoTEFQSUMsIElPLUFQSUMK b3IgUENJZSBNQ0ZHIHJlZ2lvbnMpIGFyZSBzcGVjaWZpY2FsbHkgYXZvaWRlZC4gTm90ZSB0aGF0 IHRoaXMgb3B0aW9uCmlzIGF2YWlsYWJsZSB0byBhbGwgRG9tMCBtb2RlcyAoYXMgb3Bwb3NlZCB0 byB0aGUgaW5jbHVzaXZlIG9wdGlvbgp3aGljaCBvbmx5IHdvcmtzIGZvciBQViBEb20wKS4KClNp Z25lZC1vZmYtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgpSZXZp ZXdlZC1ieTogS2V2aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+Ci0tLQpDaGFuZ2VzIHNp bmNlIHY2OgogLSBSZXdvcmQgdGhlIG1hcC1yZXNlcnZlZCBoZWxwIHRvIG1ha2UgaXQgY2xlYXIg aXQncyBhdmFpbGFibGUgdG8KICAgYm90aCBQViBhbmQgUFZIIERvbTAuCiAtIEFzc2lnbiB0eXBl IGluc2lkZSBvZiB0aGUgc3dpdGNoIGV4cHJlc3Npb24uCiAtIFJlbW92ZSB0aGUgY29tbWVudCBh Ym91dCBJTy1BUElDIE1NSU8gcmVsb2NhdGlvbiwgdGhpcyBpcyBub3QKICAgc3VwcG9ydGVkIEFU TS4KCkNoYW5nZXMgc2luY2UgdjU6CiAtIE1lcmdlIHdpdGggdGhlIHZwY2kgTU1DRkcgaGVscGVy IHBhdGNoLgogLSBBZGQgYSBUT0RPIGl0ZW0gYWJvdXQgdGhlIGlzc3VlcyB3aXRoIHJlbG9jYXRp bmcgdGhlIExBUElDIG9yCiAgIElPQVBJQyBNTUlPIHJlZ2lvbnMuCiAtIFVzZSB0aGUgbmV3bHkg aW50cm9kdWNlZCBwYWdlX2dldF9yYW1fdHlwZSB0aGF0IHJldHVybnMgYWxsIHRoZQogICB0eXBl cyB0aGF0IGZhbGwgYmV0d2VlbiBhIHBhZ2UuCiAtIFVzZSBwYWdpbmdfbW9kZV90cmFuc2xhdGUg aW5zdGVhZCBvZiBpb21tdV91c2VfaGFwX3B0IHdoZW4gZGVjaWRpbmcKICAgd2hldGhlciB0byB1 c2Ugc2V0X2lkZW50aXR5X3AybV9lbnRyeSBvciBpb21tdV9tYXBfcGFnZS4KCkNoYW5nZXMgc2lu Y2UgdjQ6CiAtIFVzZSBwZm5fdG9fcGFkZHIuCiAtIFJlYmFzZSBvbiB0b3Agb2YgcHJldmlvdXMg Y2hhbmdlcy4KIC0gQ2hhbmdlIHRoZSBkZWZhdWx0IG9wdGlvbiBzZXR0aW5nIHRvIHVzZSBpZiBp bnN0ZWFkIG9mIGEgdGVybmFyeQogICBvcGVyYXRvci4KIC0gUmVuYW1lIHRvIG1hcC1yZXNlcnZl ZC4KCkNoYW5nZXMgc2luY2UgdjM6CiAtIEFkZCBtYXBwaW5ncyBpZiB0aGUgaW9tbXUgcGFnZSB0 YWJsZXMgYXJlIHNoYXJlZC4KCkNoYW5nZXMgc2luY2UgdjI6CiAtIEZpeCBjb21tZW50IHJlZ2Fy ZGluZyBkb20wLXN0cmljdC4KIC0gQ2hhbmdlIGRvY3VtZW50YXRpb24gc3R5bGUgb2YgeGVuIGNv bW1hbmQgbGluZS4KIC0gUmVuYW1lIGlvbW11X21hcCB0byBod2RvbV9pb21tdV9tYXAuCiAtIE1v dmUgYWxsIHRoZSBjaGVja3MgdG8gaHdkb21faW9tbXVfbWFwLgoKQ2hhbmdlcyBzaW5jZSB2MToK IC0gSW50cm9kdWNlIGEgbmV3IHJlc2VydmVkIG9wdGlvbiBpbnN0ZWFkIG9mIGFidXNpbmcgdGhl IGluY2x1c2l2ZQogICBvcHRpb24uCiAtIFVzZSB0aGUgc2FtZSBoZWxwZXIgZnVuY3Rpb24gZm9y IFBWIGFuZCBQVkggaW4gb3JkZXIgdG8gZGVjaWRlIGlmIGEKICAgcGFnZSBzaG91bGQgYmUgYWRk ZWQgdG8gdGhlIGRvbWFpbiBwYWdlIHRhYmxlcy4KIC0gVXNlIHRoZSBkYXRhIGluc2lkZSBvZiB0 aGUgZG9tYWluIHN0cnVjdCB0byBkZXRlY3Qgb3ZlcmxhcHMgd2l0aAogICBlbXVsYXRlZCBNTUlP IHJlZ2lvbnMuCi0tLQpDYzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv bT4KQ2M6IEdlb3JnZSBEdW5sYXAgPEdlb3JnZS5EdW5sYXBAZXUuY2l0cml4LmNvbT4KQ2M6IElh biBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgpDYzogSmFuIEJldWxpY2ggPGpi ZXVsaWNoQHN1c2UuY29tPgpDYzogSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4K Q2M6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4KQ2M6IFN0 ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KQ2M6IFRpbSBEZWVnYW4g PHRpbUB4ZW4ub3JnPgpDYzogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KQ2M6IFBhdWwg RHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+CkNjOiBTdXJhdmVlIFN1dGhpa3VscGFu aXQgPHN1cmF2ZWUuc3V0aGlrdWxwYW5pdEBhbWQuY29tPgpDYzogQnJpYW4gV29vZHMgPGJyaWFu Lndvb2RzQGFtZC5jb20+CkNjOiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNvbT4KLS0t CiBkb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93biAgICAgICAgIHwgIDkgKysrKwog eGVuL2FyY2gveDg2L2h2bS9pby5jICAgICAgICAgICAgICAgICAgICAgICB8ICA1ICsrCiB4ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jIHwgIDMgKysKIHhlbi9kcml2 ZXJzL3Bhc3N0aHJvdWdoL2FybS9zbW11LmMgICAgICAgICAgfCAgMSArCiB4ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC9pb21tdS5jICAgICAgICAgICAgIHwgIDMgKysKIHhlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL3Z0ZC9pb21tdS5jICAgICAgICAgfCAgMyArKwogeGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gveDg2L2lvbW11LmMgICAgICAgICB8IDUzICsrKysrKysrKysrKysrKysrKy0tLQogeGVuL2lu Y2x1ZGUvYXNtLXg4Ni9odm0vaW8uaCAgICAgICAgICAgICAgICB8ICAzICsrCiB4ZW4vaW5jbHVk ZS94ZW4vaW9tbXUuaCAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIDkgZmlsZXMgY2hhbmdl ZCwgNzUgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2NzL21p c2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93biBiL2RvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5l Lm1hcmtkb3duCmluZGV4IDk4ZjBmM2I2OGIuLjFmZmQ1ODYyMjQgMTAwNjQ0Ci0tLSBhL2RvY3Mv bWlzYy94ZW4tY29tbWFuZC1saW5lLm1hcmtkb3duCisrKyBiL2RvY3MvbWlzYy94ZW4tY29tbWFu ZC1saW5lLm1hcmtkb3duCkBAIC03MDQsNiArNzA0LDE1IEBAIFRoaXMgbGlzdCBvZiBib29sZWFu cyBjb250cm9scyB0aGUgaW9tbXUgdXNhZ2UgYnkgRG9tMDoKICAgb3B0aW9uIGlzIG9ubHkgYXBw bGljYWJsZSB0byBhIFBWIERvbTAgYW5kIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvbiBJbnRlbAog ICBoYXJkd2FyZS4KIAorKiBgbWFwLXJlc2VydmVkYDogc2V0cyB1cCBETUEgcmVtYXBwaW5nIGZv ciBhbGwgdGhlIHJlc2VydmVkIHJlZ2lvbnMgaW4gdGhlCisgIG1lbW9yeSBtYXAgZm9yIERvbTAu IFVzZSB0aGlzIHRvIHdvcmsgYXJvdW5kIGZpcm13YXJlIGlzc3VlcyBwcm92aWRpbmcKKyAgaW5j b3JyZWN0IFJNUlIvSVZNRCBlbnRyaWVzLiBSYXRoZXIgdGhhbiBvbmx5IG1hcHBpbmcgUkFNIHBh Z2VzIGZvciBJT01NVQorICBhY2Nlc3NlcyBmb3IgRG9tMCwgYWxsIG1lbW9yeSByZWdpb25zIG1h cmtlZCBhcyByZXNlcnZlZCBpbiB0aGUgbWVtb3J5IG1hcAorICB0aGF0IGRvbid0IG92ZXJsYXAg d2l0aCBhbnkgTU1JTyByZWdpb24gZnJvbSBlbXVsYXRlZCBkZXZpY2VzIHdpbGwgYmUKKyAgaWRl bnRpdHkgbWFwcGVkLiBUaGlzIG9wdGlvbiBtYXBzIGEgc3Vic2V0IG9mIHRoZSBtZW1vcnkgdGhh dCB3b3VsZCBiZQorICBtYXBwZWQgd2hlbiB1c2luZyB0aGUgYG1hcC1pbmNsdXNpdmVgIG9wdGlv bi4gVGhpcyBvcHRpb24gaXMgYXZhaWxhYmxlIHRvIGFsbAorICBEb20wIG1vZGVzIGFuZCBpcyBl bmFibGVkIGJ5IGRlZmF1bHQgb24gSW50ZWwgaGFyZHdhcmUuCisKICMjIyBkb20wXF9pb3BvcnRz XF9kaXNhYmxlICh4ODYpCiA+IGA9IExpc3Qgb2YgPGhleD4tPGhleD5gCiAKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9odm0vaW8uYyBiL3hlbi9hcmNoL3g4Ni9odm0vaW8uYwppbmRleCBiZjRk ODc0OGQzLi4xZjhmZTM2MTY4IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2lvLmMKKysr IGIveGVuL2FyY2gveDg2L2h2bS9pby5jCkBAIC00MDQsNiArNDA0LDExIEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgaHZtX21tY2ZnICp2cGNpX21tY2ZnX2ZpbmQoY29uc3Qgc3RydWN0IGRvbWFpbiAq ZCwKICAgICByZXR1cm4gTlVMTDsKIH0KIAorYm9vbCB2cGNpX2lzX21tY2ZnX2FkZHJlc3MoY29u c3Qgc3RydWN0IGRvbWFpbiAqZCwgcGFkZHJfdCBhZGRyKQoreworICAgIHJldHVybiB2cGNpX21t Y2ZnX2ZpbmQoZCwgYWRkcik7Cit9CisKIHN0YXRpYyB1bnNpZ25lZCBpbnQgdnBjaV9tbWNmZ19k ZWNvZGVfYWRkcihjb25zdCBzdHJ1Y3QgaHZtX21tY2ZnICptbWNmZywKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkcl90IGFkZHIsIHBjaV9zYmRmX3QgKnNi ZGYpCiB7CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9p b21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUuYwppbmRl eCAyN2ViNDk2MTlkLi40OWQ5MzRlMWFjIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2Ft ZC9wY2lfYW1kX2lvbW11LmMKQEAgLTI1Niw2ICsyNTYsOSBAQCBzdGF0aWMgdm9pZCBfX2h3ZG9t X2luaXQgYW1kX2lvbW11X2h3ZG9tX2luaXQoc3RydWN0IGRvbWFpbiAqZCkKICAgICAvKiBJbmNs dXNpdmUgSU9NTVUgbWFwcGluZ3MgYXJlIGRpc2FibGVkIGJ5IGRlZmF1bHQgb24gQU1EIGhhcmR3 YXJlLiAqLwogICAgIGlmICggaW9tbXVfaHdkb21faW5jbHVzaXZlID09IC0xICkKICAgICAgICAg aW9tbXVfaHdkb21faW5jbHVzaXZlID0gZmFsc2U7CisgICAgLyogUmVzZXJ2ZWQgSU9NTVUgbWFw cGluZ3MgYXJlIGRpc2FibGVkIGJ5IGRlZmF1bHQgb24gQU1EIGhhcmR3YXJlLiAqLworICAgIGlm ICggaW9tbXVfaHdkb21fcmVzZXJ2ZWQgPT0gLTEgKQorICAgICAgICBpb21tdV9od2RvbV9yZXNl cnZlZCA9IGZhbHNlOwogCiAgICAgaWYgKCBhbGxvY2F0ZV9kb21haW5fcmVzb3VyY2VzKGRvbV9p b21tdShkKSkgKQogICAgICAgICBCVUcoKTsKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL2FybS9zbW11LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vc21tdS5jCmlu ZGV4IGIxNDI2NzdiOGMuLjhlYTM5NjU5ZDEgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL2FybS9zbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL3NtbXUu YwpAQCAtMjcyOSw2ICsyNzI5LDcgQEAgc3RhdGljIHZvaWQgX19od2RvbV9pbml0IGFybV9zbW11 X2lvbW11X2h3ZG9tX2luaXQoc3RydWN0IGRvbWFpbiAqZCkKIHsKIAkvKiBTZXQgdG8gZmFsc2Ug b3B0aW9ucyBub3Qgc3VwcG9ydGVkIG9uIEFSTS4gKi8KIAlpb21tdV9od2RvbV9pbmNsdXNpdmUg PSBmYWxzZTsKKwlpb21tdV9od2RvbV9yZXNlcnZlZCA9IGZhbHNlOwogfQogCiBzdGF0aWMgdm9p ZCBhcm1fc21tdV9pb21tdV9kb21haW5fdGVhcmRvd24oc3RydWN0IGRvbWFpbiAqZCkKZGlmZiAt LWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMgYi94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC9pb21tdS5jCmluZGV4IDU3OTgxNDI3MzAuLjk1YTQ3MWFhODkgMTAwNjQ0Ci0tLSBh L3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvaW9tbXUuYwpAQCAtNjIsNiArNjIsNyBAQCBib29sX3QgX19yZWFkX21vc3RseSBpb21t dV9pbnRyZW1hcCA9IDE7CiBib29sIF9faHdkb21faW5pdGRhdGEgaW9tbXVfaHdkb21fc3RyaWN0 OwogYm9vbCBfX3JlYWRfbW9zdGx5IGlvbW11X2h3ZG9tX3Bhc3N0aHJvdWdoOwogaW50OF90IF9f aHdkb21faW5pdGRhdGEgaW9tbXVfaHdkb21faW5jbHVzaXZlID0gLTE7CitpbnQ4X3QgX19od2Rv bV9pbml0ZGF0YSBpb21tdV9od2RvbV9yZXNlcnZlZCA9IC0xOwogCiAvKgogICogSW4gdGhlIGN1 cnJlbnQgaW1wbGVtZW50YXRpb24gb2YgVlQtZCBwb3N0ZWQgaW50ZXJydXB0cywgaW4gc29tZSBl eHRyZW1lCkBAIC0xNTUsNiArMTU2LDggQEAgc3RhdGljIGludCBfX2luaXQgcGFyc2VfZG9tMF9p b21tdV9wYXJhbShjb25zdCBjaGFyICpzKQogICAgICAgICAgICAgaW9tbXVfaHdkb21fc3RyaWN0 ID0gdmFsOwogICAgICAgICBlbHNlIGlmICggKHZhbCA9IHBhcnNlX2Jvb2xlYW4oIm1hcC1pbmNs dXNpdmUiLCBzLCBzcykpID49IDAgKQogICAgICAgICAgICAgaW9tbXVfaHdkb21faW5jbHVzaXZl ID0gdmFsOworICAgICAgICBlbHNlIGlmICggKHZhbCA9IHBhcnNlX2Jvb2xlYW4oIm1hcC1yZXNl cnZlZCIsIHMsIHNzKSkgPj0gMCApCisgICAgICAgICAgICBpb21tdV9od2RvbV9pbmNsdXNpdmUg PSB2YWw7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJjID0gLUVJTlZBTDsKIApkaWZmIC0t Z2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMgYi94ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC92dGQvaW9tbXUuYwppbmRleCBhMDllMDJjOGRiLi40MTUyYzU5NzEzIDEwMDY0 NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYworKysgYi94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYwpAQCAtMTMwNyw2ICsxMzA3LDkgQEAgc3RhdGlj IHZvaWQgX19od2RvbV9pbml0IGludGVsX2lvbW11X2h3ZG9tX2luaXQoc3RydWN0IGRvbWFpbiAq ZCkKICAgICAvKiBJbmNsdXNpdmUgbWFwcGluZ3MgYXJlIGVuYWJsZWQgYnkgZGVmYXVsdCBvbiBJ bnRlbCBoYXJkd2FyZSBmb3IgUFYuICovCiAgICAgaWYgKCBpb21tdV9od2RvbV9pbmNsdXNpdmUg PT0gLTEgKQogICAgICAgICBpb21tdV9od2RvbV9pbmNsdXNpdmUgPSBpc19wdl9kb21haW4oZCk7 CisgICAgLyogUmVzZXJ2ZWQgSU9NTVUgbWFwcGluZ3MgYXJlIGVuYWJsZWQgYnkgZGVmYXVsdCBv biBJbnRlbCBoYXJkd2FyZS4gKi8KKyAgICBpZiAoIGlvbW11X2h3ZG9tX3Jlc2VydmVkID09IC0x ICkKKyAgICAgICAgaW9tbXVfaHdkb21fcmVzZXJ2ZWQgPSB0cnVlOwogCiAgICAgc2V0dXBfaHdk b21fcGNpX2RldmljZXMoZCwgc2V0dXBfaHdkb21fZGV2aWNlKTsKICAgICBzZXR1cF9od2RvbV9y bXJyKGQpOwpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2L2lvbW11LmMg Yi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvaW9tbXUuYwppbmRleCBiOTQ3ZWQ2MDQzLi5j ODViZjBiY2Q3IDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvaW9tbXUu YworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvaW9tbXUuYwpAQCAtMjAsNiArMjAs NyBAQAogI2luY2x1ZGUgPHhlbi9zb2Z0aXJxLmg+CiAjaW5jbHVkZSA8eHNtL3hzbS5oPgogCisj aW5jbHVkZSA8YXNtL2h2bS9pby5oPgogI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgogCiB2b2lkIGlv bW11X3VwZGF0ZV9pcmVfZnJvbV9hcGljKApAQCAtMTM4LDE2ICsxMzksMjMgQEAgc3RhdGljIGJv b2wgX19od2RvbV9pbml0IGh3ZG9tX2lvbW11X21hcChjb25zdCBzdHJ1Y3QgZG9tYWluICpkLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHBm biwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9u ZyBtYXhfcGZuKQogeworICAgIHVuc2lnbmVkIGludCBpLCB0eXBlOworCiAgICAgLyoKICAgICAg KiBTZXQgdXAgMToxIG1hcHBpbmcgZm9yIGRvbTAuIERlZmF1bHQgdG8gaW5jbHVkZSBvbmx5IGNv bnZlbnRpb25hbCBSQU0KICAgICAgKiBhcmVhcyBhbmQgbGV0IFJNUlJzIGluY2x1ZGUgbmVlZGVk IHJlc2VydmVkIHJlZ2lvbnMuIFdoZW4gc2V0LCB0aGUKICAgICAgKiBpbmNsdXNpdmUgbWFwcGlu ZyBhZGRpdGlvbmFsbHkgbWFwcyBpbiBldmVyeSBwZm4gdXAgdG8gNEdCIGV4Y2VwdCB0aG9zZQot ICAgICAqIHRoYXQgZmFsbCBpbiB1bnVzYWJsZSByYW5nZXMuCisgICAgICogdGhhdCBmYWxsIGlu IHVudXNhYmxlIHJhbmdlcyBmb3IgUFYgRG9tMC4KICAgICAgKi8KLSAgICBpZiAoIChwZm4gPiBt YXhfcGZuICYmICFtZm5fdmFsaWQoX21mbihwZm4pKSkgfHwgeGVuX2luX3JhbmdlKHBmbikgKQor ICAgIGlmICggKHBmbiA+IG1heF9wZm4gJiYgIW1mbl92YWxpZChfbWZuKHBmbikpKSB8fCB4ZW5f aW5fcmFuZ2UocGZuKSB8fAorICAgICAgICAgLyoKKyAgICAgICAgICAqIElnbm9yZSBhbnkgYWRk cmVzcyBiZWxvdyAxTUIsIHRoYXQncyBhbHJlYWR5IGlkZW50aXR5IG1hcHBlZCBieSB0aGUKKyAg ICAgICAgICAqIERvbTAgYnVpbGRlciBmb3IgSFZNLgorICAgICAgICAgICovCisgICAgICAgICAo IWQtPmRvbWFpbl9pZCAmJiBpc19odm1fZG9tYWluKGQpICYmIHBmbiA8IFBGTl9ET1dOKE1CKDEp KSkgKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBzd2l0Y2ggKCBwYWdlX2dldF9yYW1f dHlwZShwZm4pICkKKyAgICBzd2l0Y2ggKCB0eXBlID0gcGFnZV9nZXRfcmFtX3R5cGUocGZuKSAp CiAgICAgewogICAgIGNhc2UgUkFNX1RZUEVfVU5VU0FCTEU6CiAgICAgICAgIHJldHVybiBmYWxz ZTsKQEAgLTE1OCwxMCArMTY2LDQwIEBAIHN0YXRpYyBib29sIF9faHdkb21faW5pdCBod2RvbV9p b21tdV9tYXAoY29uc3Qgc3RydWN0IGRvbWFpbiAqZCwKICAgICAgICAgYnJlYWs7CiAKICAgICBk ZWZhdWx0OgotICAgICAgICBpZiAoICFpb21tdV9od2RvbV9pbmNsdXNpdmUgfHwgcGZuID4gbWF4 X3BmbiApCisgICAgICAgIGlmICggdHlwZSAmIFJBTV9UWVBFX1JFU0VSVkVEICkKKyAgICAgICAg eworICAgICAgICAgICAgaWYgKCAhaW9tbXVfaHdkb21faW5jbHVzaXZlICYmICFpb21tdV9od2Rv bV9yZXNlcnZlZCApCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9Cisg ICAgICAgIGVsc2UgaWYgKCBpc19odm1fZG9tYWluKGQpIHx8ICFpb21tdV9od2RvbV9pbmNsdXNp dmUgfHwgcGZuID4gbWF4X3BmbiApCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQog CisgICAgLyoKKyAgICAgKiBDaGVjayB0aGF0IGl0IGRvZXNuJ3Qgb3ZlcmxhcCB3aXRoIHRoZSBM QVBJQworICAgICAqIFRPRE86IGlmIHRoZSBndWVzdCByZWxvY2F0ZXMgdGhlIE1NSU8gYXJlYSBv ZiB0aGUgTEFQSUMgWGVuIHNob3VsZCBtYWtlCisgICAgICogc3VyZSB0aGVyZSdzIG5vdGhpbmcg aW4gdGhlIG5ldyBhZGRyZXNzIHRoYXQgd291bGQgcHJldmVudCB0cmFwcGluZy4KKyAgICAgKi8K KyAgICBpZiAoIGhhc192bGFwaWMoZCkgKQorICAgIHsKKyAgICAgICAgY29uc3Qgc3RydWN0IHZj cHUgKnY7CisKKyAgICAgICAgZm9yX2VhY2hfdmNwdShkLCB2KQorICAgICAgICAgICAgaWYgKCBw Zm4gPT0gUEZOX0RPV04odmxhcGljX2Jhc2VfYWRkcmVzcyh2Y3B1X3ZsYXBpYyh2KSkpICkKKyAg ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIC8qIC4uLiBvciB0aGUgSU8t QVBJQyAqLworICAgIGZvciAoIGkgPSAwOyBoYXNfdmlvYXBpYyhkKSAmJiBpIDwgZC0+YXJjaC5o dm1fZG9tYWluLm5yX3Zpb2FwaWNzOyBpKysgKQorICAgICAgICBpZiAoIHBmbiA9PSBQRk5fRE9X Tihkb21haW5fdmlvYXBpYyhkLCBpKS0+YmFzZV9hZGRyZXNzKSApCisgICAgICAgICAgICByZXR1 cm4gZmFsc2U7CisgICAgLyoKKyAgICAgKiAuLi4gb3IgdGhlIFBDSWUgTUNGRyByZWdpb25zLgor ICAgICAqIFRPRE86IHJ1bnRpbWUgYWRkZWQgTU1DRkcgcmVnaW9ucyBhcmUgbm90IGNoZWNrZWQg dG8gbWFrZSBzdXJlIHRoZXkKKyAgICAgKiBkb24ndCBvdmVybGFwIHdpdGggYWxyZWFkeSBtYXBw ZWQgcmVnaW9ucywgdGh1cyBwcmV2ZW50aW5nIHRyYXBwaW5nLgorICAgICAqLworICAgIGlmICgg aGFzX3ZwY2koZCkgJiYgdnBjaV9pc19tbWNmZ19hZGRyZXNzKGQsIHBmbl90b19wYWRkcihwZm4p KSApCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0x NzEsNyArMjA5LDcgQEAgdm9pZCBfX2h3ZG9tX2luaXQgYXJjaF9pb21tdV9od2RvbV9pbml0KHN0 cnVjdCBkb21haW4gKmQpCiAKICAgICBCVUdfT04oIWlzX2hhcmR3YXJlX2RvbWFpbihkKSk7CiAK LSAgICBpZiAoIGlvbW11X2h3ZG9tX3Bhc3N0aHJvdWdoIHx8ICFpc19wdl9kb21haW4oZCkgKQor ICAgIGlmICggaW9tbXVfaHdkb21fcGFzc3Rocm91Z2ggKQogICAgICAgICByZXR1cm47CiAKICAg ICBtYXhfcGZuID0gKEdCKDQpID4+IFBBR0VfU0hJRlQpIC0gMTsKQEAgLTE4NSw3ICsyMjMsMTAg QEAgdm9pZCBfX2h3ZG9tX2luaXQgYXJjaF9pb21tdV9od2RvbV9pbml0KHN0cnVjdCBkb21haW4g KmQpCiAgICAgICAgIGlmICggIWh3ZG9tX2lvbW11X21hcChkLCBwZm4sIG1heF9wZm4pICkKICAg ICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIHJjID0gaW9tbXVfbWFwX3BhZ2UoZCwgcGZu LCBwZm4sIElPTU1VRl9yZWFkYWJsZXxJT01NVUZfd3JpdGFibGUpOworICAgICAgICBpZiAoIHBh Z2luZ19tb2RlX3RyYW5zbGF0ZShkKSApCisgICAgICAgICAgICByYyA9IHNldF9pZGVudGl0eV9w Mm1fZW50cnkoZCwgcGZuLCBwMm1fYWNjZXNzX3J3LCAwKTsKKyAgICAgICAgZWxzZQorICAgICAg ICAgICAgcmMgPSBpb21tdV9tYXBfcGFnZShkLCBwZm4sIHBmbiwgSU9NTVVGX3JlYWRhYmxlfElP TU1VRl93cml0YWJsZSk7CiAgICAgICAgIGlmICggcmMgKQogICAgICAgICAgICAgcHJpbnRrKFhF TkxPR19XQVJOSU5HICIgZCVkOiBJT01NVSBtYXBwaW5nIGZhaWxlZDogJWRcbiIsCiAgICAgICAg ICAgICAgICAgICAgZC0+ZG9tYWluX2lkLCByYyk7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9h c20teDg2L2h2bS9pby5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaW8uaAppbmRleCBlNmI2 ZWQwYjkyLi44MzQzMWI0NGYyIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9p by5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2lvLmgKQEAgLTE4MCw2ICsxODAsOSBA QCBpbnQgcmVnaXN0ZXJfdnBjaV9tbWNmZ19oYW5kbGVyKHN0cnVjdCBkb21haW4gKmQsIHBhZGRy X3QgYWRkciwKIC8qIERlc3Ryb3kgdHJhY2tlZCBNTUNGRyBhcmVhcy4gKi8KIHZvaWQgZGVzdHJv eV92cGNpX21tY2ZnKHN0cnVjdCBkb21haW4gKmQpOwogCisvKiBDaGVjayBpZiBhbiBhZGRyZXNz IGlzIGJldHdlZW4gYSBNTUNGRyByZWdpb24gZm9yIGEgZG9tYWluLiAqLworYm9vbCB2cGNpX2lz X21tY2ZnX2FkZHJlc3MoY29uc3Qgc3RydWN0IGRvbWFpbiAqZCwgcGFkZHJfdCBhZGRyKTsKKwog I2VuZGlmIC8qIF9fQVNNX1g4Nl9IVk1fSU9fSF9fICovCiAKIApkaWZmIC0tZ2l0IGEveGVuL2lu Y2x1ZGUveGVuL2lvbW11LmggYi94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaAppbmRleCA4OWM2ODMw Njg5Li41N2M0ZTgxZWM2IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaAorKysg Yi94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaApAQCAtMzcsNyArMzcsNyBAQCBleHRlcm4gYm9vbF90 IGlvbW11X2RlYnVnOwogZXh0ZXJuIGJvb2xfdCBhbWRfaW9tbXVfcGVyZGV2X2ludHJlbWFwOwog CiBleHRlcm4gYm9vbCBpb21tdV9od2RvbV9zdHJpY3QsIGlvbW11X2h3ZG9tX3Bhc3N0aHJvdWdo OwotZXh0ZXJuIGludDhfdCBpb21tdV9od2RvbV9pbmNsdXNpdmU7CitleHRlcm4gaW50OF90IGlv bW11X2h3ZG9tX2luY2x1c2l2ZSwgaW9tbXVfaHdkb21fcmVzZXJ2ZWQ7CiAKIGV4dGVybiB1bnNp Z25lZCBpbnQgaW9tbXVfZGV2X2lvdGxiX3RpbWVvdXQ7CiAKLS0gCjIuMTguMAoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5n IGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJv amVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=