From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tamas K Lengyel Subject: [PATCH v2 2/2] x86/altp2m: allow specifying external-only use-case Date: Wed, 10 Aug 2016 09:00:15 -0600 Message-ID: <1470841215-24450-2-git-send-email-tamas.lengyel@zentific.com> References: <1470841215-24450-1-git-send-email-tamas.lengyel@zentific.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bXUzW-0006GU-JG for xen-devel@lists.xenproject.org; Wed, 10 Aug 2016 15:00:22 +0000 Received: by mail-it0-f67.google.com with SMTP id j124so3190266ith.3 for ; Wed, 10 Aug 2016 08:00:20 -0700 (PDT) In-Reply-To: <1470841215-24450-1-git-send-email-tamas.lengyel@zentific.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Wei Liu , Tamas K Lengyel , Ian Jackson , Jan Beulich , Andrew Cooper , Daniel De Graaf List-Id: xen-devel@lists.xenproject.org Q3VycmVudGx5IHNldHRpbmcgYWx0cDJtaHZtPTEgaW4gdGhlIGRvbWFpbiBjb25maWd1cmF0aW9u IGFsbG93cyBhY2Nlc3MgdG8gdGhlCmFsdHAybSBpbnRlcmZhY2UgZm9yIGJvdGggaW4tZ3Vlc3Qg YW5kIGV4dGVybmFsIHByaXZpbGVnZWQgdG9vbHMuIFRoaXMgcG9zZXMKYSBwcm9ibGVtIGZvciB1 c2UtY2FzZXMgd2hlcmUgb25seSBleHRlcm5hbCBhY2Nlc3Mgc2hvdWxkIGJlIGFsbG93ZWQsIHJl cXVpcmluZwp0aGUgdXNlciB0byBjb21waWxlIFhlbiB3aXRoIFhTTSBlbmFibGVkIHRvIGJlIGFi bGUgdG8gYXBwcm9wcmlhdGVseSByZXN0cmljdAphY2Nlc3MuCgpJbiB0aGlzIHBhdGNoIHdlIGRl cHJlY2F0ZSB0aGUgYWx0cDJtaHZtIGRvbWFpbiBjb25maWd1cmF0aW9uIG9wdGlvbiBhbmQKaW50 cm9kdWNlIHRoZSBhbHRwMm0gb3B0aW9uLCB3aGljaCBhbGxvd3Mgc3BlY2lmeWluZyBpZiBieSBk ZWZhdWx0IHRoZSBhbHRwMm0KaW50ZXJmYWNlIHNob3VsZCBiZSBleHRlcm5hbC1vbmx5LiBUaGUg aW5mb3JtYXRpb24gaXMgc3RvcmVkIGluCkhWTV9QQVJBTV9BTFRQMk0gd2hpY2ggd2Ugbm93IGRl ZmluZSB3aXRoIHNwZWNpZmljIFhFTl9BTFRQMk1fKiBtb2Rlcy4KSWYgZXh0ZXJuYWxfb25seSBt b2RlIGlzIHNlbGVjdGVkLCB0aGUgWFNNIGNoZWNrIGlzIHNoaWZ0ZWQgdG8gdXNlIFhTTV9ETV9Q UklWCnR5cGUgY2hlY2ssIHRodXMgcmVzdHJpY3RpbmcgYWNjZXNzIHRvIHRoZSBpbnRlcmZhY2Ug YnkgdGhlIGd1ZXN0IGl0c2VsZi4gTm90ZQp0aGF0IHdlIGtlZXAgdGhlIGRlZmF1bHQgWFNNIHBv bGljeSB1bnRvdWNoZWQuIFVzZXJzIG9mIFhTTSB3aG8gd2lzaCB0byBlbmZvcmNlCmV4dGVybmFs X29ubHkgbW9kZSBmb3IgYWx0cDJtIGNhbiBkbyBzbyBieSBhZGp1c3RpbmcgdGhlaXIgWFNNIHBv bGljeSBkaXJlY3RseSwKYXMgdGhpcyBkb21haW4gY29uZmlnIG9wdGlvbiBkb2VzIG5vdCBvdmVy cmlkZSBhbiBhY3RpdmUgWFNNIHBvbGljeS4KCkFsc28sIGFzIHBhcnQgb2YgdGhpcyBwYXRjaCB3 ZSBhZGp1c3QgdGhlIGh2bW9wIGhhbmRsZXIgdG8gcmVxdWlyZQpIVk1fUEFSQU1fQUxUUDJNIHRv IGJlIG9mIGEgdHlwZSBvdGhlciB0aGVuIGRpc2FibGVkIGZvciBhbGwgb3BzLiBUaGlzIGhhcyBi ZWVuCnByZXZpb3VzbHkgb25seSByZXF1aXJlZCBmb3IgZ2V0L3NldCBhbHRwMm0gZG9tYWluIHN0 YXRlLCBhbGwgb3RoZXIgb3B0aW9ucwp3ZXJlIGdhdGVkIG9uIGFsdHAybV9lbmFibGVkLiBTaW5j ZSBhbHRwMm1fZW5hYmxlZCBvbmx5IGdldHMgc2V0IGR1cmluZyBzZXQKYWx0cDJtIGRvbWFpbiBz dGF0ZSwgdGhpcyBjaGFuZ2UgaW50cm9kdWNlcyBubyBuZXcgcmVxdWlyZW1lbnRzIHRvIHRoZSBv dGhlcgpvcHMgYnV0IG1ha2VzIGl0IG1vcmUgY2xlYXIgdGhhdCBpdCBpcyByZXF1aXJlZCBmb3Ig YWxsIG9wcy4KClNpZ25lZC1vZmYtYnk6IFRhbWFzIEsgTGVuZ3llbCA8dGFtYXMubGVuZ3llbEB6 ZW50aWZpYy5jb20+Ci0tLQpDYzogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5j b20+CkNjOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgpDYzogSmFuIEJldWxpY2ggPGpi ZXVsaWNoQHN1c2UuY29tPgpDYzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4 LmNvbT4KQ2M6IERhbmllbCBEZSBHcmFhZiA8ZGdkZWdyYUB0eWNoby5uc2EuZ292PgoKdjI6IFJl bmFtZSBIVk1BTFRQMk1fKiB0byBYRU5fQUxUUDJNXyoKICAgIFJlbGF4IHhzbSBjaGVjayB0byBY U01fRE1fUFJJViBmb3IgZXh0ZXJuYWwtb25seSBtb2RlCi0tLQogZG9jcy9tYW4veGwuY2ZnLnBv ZC41LmluICAgICAgICB8IDMxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHRvb2xz L2xpYnhsL2xpYnhsX2NyZWF0ZS5jICAgICAgfCAgNSArKy0tLQogdG9vbHMvbGlieGwvbGlieGxf ZG9tLmMgICAgICAgICB8ICAyICstCiB0b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwgICAgIHwg IDkgKysrKysrKystCiB0b29scy9saWJ4bC94bF9jbWRpbXBsLmMgICAgICAgIHwgMzQgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLQogeGVuL2FyY2gveDg2L2h2bS9odm0uYyAgICAg ICAgICB8IDIwICsrKysrKysrKystLS0tLS0tLS0tCiB4ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL3Bh cmFtcy5oIHwgMTAgKysrKysrKysrLQogeGVuL2luY2x1ZGUveHNtL2R1bW15LmggICAgICAgICB8 IDE0ICsrKysrKysrKysrLS0tCiB4ZW4vaW5jbHVkZS94c20veHNtLmggICAgICAgICAgIHwgIDYg KysrLS0tCiB4ZW4veHNtL2ZsYXNrL2hvb2tzLmMgICAgICAgICAgIHwgIDIgKy0KIDEwIGZpbGVz IGNoYW5nZWQsIDEwOSBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kb2NzL21hbi94bC5jZmcucG9kLjUuaW4gYi9kb2NzL21hbi94bC5jZmcucG9kLjUuaW4KaW5k ZXggNDhjOWMwZC4uMDA0NGI5OCAxMDA2NDQKLS0tIGEvZG9jcy9tYW4veGwuY2ZnLnBvZC41Lmlu CisrKyBiL2RvY3MvbWFuL3hsLmNmZy5wb2QuNS5pbgpAQCAtMTI2OCw2ICsxMjY4LDM3IEBAIGVu YWJsZWQgYnkgZGVmYXVsdCBhbmQgeW91IHNob3VsZCB1c3VhbGx5IG9taXQgaXQuIEl0IG1heSBi ZSBuZWNlc3NhcnkKIHRvIGRpc2FibGUgdGhlIEhQRVQgaW4gb3JkZXIgdG8gaW1wcm92ZSBjb21w YXRpYmlsaXR5IHdpdGggZ3Vlc3QKIE9wZXJhdGluZyBTeXN0ZW1zIChYODYgb25seSkKIAorPWl0 ZW0gQjxhbHRwMm09TU9ERT4KKworU3BlY2lmaWVzIGFjY2VzcyBtb2RlIHRvIHRoZSBhbHRlcm5h dGUtcDJtIGNhcGFiaWxpdHkgZm9yIGh2bSBndWVzdHMuCitBbHRlcm5hdGUtcDJtIGFsbG93cyBh IGd1ZXN0IHRvIG1hbmFnZSBtdWx0aXBsZSBwMm0gZ3Vlc3QgcGh5c2ljYWwKKyJtZW1vcnkgdmll d3MiIChhcyBvcHBvc2VkIHRvIGEgc2luZ2xlIHAybSkuIFlvdSBtYXkgd2FudCB0aGlzIG9wdGlv bgoraWYgeW91IHdhbnQgdG8gYWNjZXNzLWNvbnRyb2wvaXNvbGF0ZSBhY2Nlc3MgdG8gc3BlY2lm aWMgZ3Vlc3QgcGh5c2ljYWwKK21lbW9yeSBwYWdlcyBhY2Nlc3NlZCBieSB0aGUgZ3Vlc3QsIGUu Zy4gZm9yIEhWTSBkb21haW4gbWVtb3J5CitpbnRyb3NwZWN0aW9uIG9yIGZvciBpc29sYXRpb24v YWNjZXNzLWNvbnRyb2wgb2YgbWVtb3J5IGJldHdlZW4KK2NvbXBvbmVudHMgd2l0aGluIGEgc2lu Z2xlIGd1ZXN0IGh2bSBkb21haW4uCisKK1RoZSB2YWxpZCB2YWx1ZXMgYXJlIGFzIGZvbGxvd3M6 CisKKz1vdmVyIDQKKworPWl0ZW0gQjwiZGlzYWJsZWQiPgorCitBbHRwMm0gaXMgZGlzYWJsZWQg Zm9yIHRoZSBkb21haW4gKGRlZmF1bHQpLgorCis9aXRlbSBCPCJtaXhlZCI+CisKK1RoZSBtaXhl ZCBtb2RlIGFsbG93cyBhY2Nlc3MgdG8gdGhlIGFsdHAybSBpbnRlcmZhY2UgZm9yIGJvdGggaW4t Z3Vlc3QKK2FuZCBleHRlcm5hbCB0b29scyBhcyB3ZWxsLgorCis9aXRlbSBCPCJleHRlcm5hbF9v bmx5Ij4KKworRW5hYmxlcyBhY2Nlc3MgdG8gdGhlIGFsdGVybmF0ZS1wMm0gY2FwYWJpbGl0eSBm b3IgaHZtIGd1ZXN0cyBvbmx5CitieSBleHRlcm5hbCBwcml2aWxlZ2VkIHRvb2xzLiBOb3RlOiBp ZiBYU00gaXMgZW5hYmxlZCB0aGVuIHRoZSBYU00gcG9saWN5CitzaG91bGQgYmUgdXNlZCB0byBz cGVjaWZ5IGV4dGVybmFsLW9ubHkgYWNjZXNzIHRvIHRoZSBpbnRlcmZhY2UuCisKKz1iYWNrCisK ID1pdGVtIEI8YWx0cDJtaHZtPUJPT0xFQU4+CiAKIEVuYWJsZXMgb3IgZGlzYWJsZXMgaHZtIGd1 ZXN0IGFjY2VzcyB0byBhbHRlcm5hdGUtcDJtIGNhcGFiaWxpdHkuCmRpZmYgLS1naXQgYS90b29s cy9saWJ4bC9saWJ4bF9jcmVhdGUuYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2NyZWF0ZS5jCmluZGV4 IDA0ZjhhZTkuLmM5MDc2ZGEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX2NyZWF0ZS5j CisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2NyZWF0ZS5jCkBAIC0zMTksNyArMzE5LDYgQEAgaW50 IGxpYnhsX19kb21haW5fYnVpbGRfaW5mb19zZXRkZWZhdWx0KGxpYnhsX19nYyAqZ2MsCiAgICAg ICAgIGxpYnhsX2RlZmJvb2xfc2V0ZGVmYXVsdCgmYl9pbmZvLT51Lmh2bS5ocGV0LCAgICAgICAg ICAgICAgIHRydWUpOwogICAgICAgICBsaWJ4bF9kZWZib29sX3NldGRlZmF1bHQoJmJfaW5mby0+ dS5odm0udnB0X2FsaWduLCAgICAgICAgICB0cnVlKTsKICAgICAgICAgbGlieGxfZGVmYm9vbF9z ZXRkZWZhdWx0KCZiX2luZm8tPnUuaHZtLm5lc3RlZF9odm0sICAgICAgICAgZmFsc2UpOwotICAg ICAgICBsaWJ4bF9kZWZib29sX3NldGRlZmF1bHQoJmJfaW5mby0+dS5odm0uYWx0cDJtLCAgICAg ICAgICAgICBmYWxzZSk7CiAgICAgICAgIGxpYnhsX2RlZmJvb2xfc2V0ZGVmYXVsdCgmYl9pbmZv LT51Lmh2bS51c2IsICAgICAgICAgICAgICAgIGZhbHNlKTsKICAgICAgICAgbGlieGxfZGVmYm9v bF9zZXRkZWZhdWx0KCZiX2luZm8tPnUuaHZtLnhlbl9wbGF0Zm9ybV9wY2ksICAgdHJ1ZSk7CiAK QEAgLTkxOCw4ICs5MTcsOCBAQCBzdGF0aWMgdm9pZCBpbml0aWF0ZV9kb21haW5fY3JlYXRlKGxp YnhsX19lZ2MgKmVnYywKIAogICAgIGlmIChkX2NvbmZpZy0+Y19pbmZvLnR5cGUgPT0gTElCWExf RE9NQUlOX1RZUEVfSFZNICYmCiAgICAgICAgIChsaWJ4bF9kZWZib29sX3ZhbChkX2NvbmZpZy0+ Yl9pbmZvLnUuaHZtLm5lc3RlZF9odm0pICYmCi0gICAgICAgICBsaWJ4bF9kZWZib29sX3ZhbChk X2NvbmZpZy0+Yl9pbmZvLnUuaHZtLmFsdHAybSkpKSB7Ci0gICAgICAgIExPRyhFUlJPUiwgIm5l c3RlZGh2bSBhbmQgYWx0cDJtaHZtIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIik7CisgICAgICAg ICBkX2NvbmZpZy0+Yl9pbmZvLnUuaHZtLmFsdHAybSAhPSBMSUJYTF9BTFRQMk1fTU9ERV9ESVNB QkxFRCkpIHsKKyAgICAgICAgTE9HKEVSUk9SLCAibmVzdGVkaHZtIGFuZCBhbHRwMm0gY2Fubm90 IGJlIHVzZWQgdG9nZXRoZXIiKTsKICAgICAgICAgZ290byBlcnJvcl9vdXQ7CiAgICAgfQogCmRp ZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9kb20uYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2Rv bS5jCmluZGV4IGVlZjUwNDUuLjBiOGIyYTggMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhs X2RvbS5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbS5jCkBAIC0yOTIsNyArMjkyLDcgQEAg c3RhdGljIHZvaWQgaHZtX3NldF9jb25mX3BhcmFtcyh4Y19pbnRlcmZhY2UgKmhhbmRsZSwgdWlu dDMyX3QgZG9taWQsCiAgICAgeGNfaHZtX3BhcmFtX3NldChoYW5kbGUsIGRvbWlkLCBIVk1fUEFS QU1fTkVTVEVESFZNLAogICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZWZib29sX3ZhbChpbmZv LT51Lmh2bS5uZXN0ZWRfaHZtKSk7CiAgICAgeGNfaHZtX3BhcmFtX3NldChoYW5kbGUsIGRvbWlk LCBIVk1fUEFSQU1fQUxUUDJNLAotICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZWZib29sX3Zh bChpbmZvLT51Lmh2bS5hbHRwMm0pKTsKKyAgICAgICAgICAgICAgICAgICAgIGluZm8tPnUuaHZt LmFsdHAybSk7CiB9CiAKIGludCBsaWJ4bF9fYnVpbGRfcHJlKGxpYnhsX19nYyAqZ2MsIHVpbnQz Ml90IGRvbWlkLApkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsIGIvdG9v bHMvbGlieGwvbGlieGxfdHlwZXMuaWRsCmluZGV4IGVmNjE0YmUuLjk3OTQ4ZmQgMTAwNjQ0Ci0t LSBhL3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlkbAorKysgYi90b29scy9saWJ4bC9saWJ4bF90 eXBlcy5pZGwKQEAgLTQzOSw2ICs0MzksMTMgQEAgbGlieGxfcmRtX3Jlc2VydmUgPSBTdHJ1Y3Qo InJkbV9yZXNlcnZlIiwgWwogICAgICgicG9saWN5IiwgICAgICBsaWJ4bF9yZG1fcmVzZXJ2ZV9w b2xpY3kpLAogICAgIF0pCiAKKyMgQ29uc2lzdGVudCB3aXRoIHRoZSB2YWx1ZXMgZGVmaW5lZCBm b3IgSFZNX1BBUkFNX0FMVFAyTQorbGlieGxfYWx0cDJtX21vZGUgPSBFbnVtZXJhdGlvbigiYWx0 cDJtX21vZGUiLCBbCisgICAgKDAsICJkaXNhYmxlZCIpLAorICAgICgxLCAibWl4ZWQiKSwKKyAg ICAoMiwgImV4dGVybmFsX29ubHkiKSwKKyAgICBdLCBpbml0X3ZhbCA9ICJMSUJYTF9BTFRQMk1f TU9ERV9ESVNBQkxFRCIpCisKIGxpYnhsX2RvbWFpbl9idWlsZF9pbmZvID0gU3RydWN0KCJkb21h aW5fYnVpbGRfaW5mbyIsWwogICAgICgibWF4X3ZjcHVzIiwgICAgICAgaW50ZWdlciksCiAgICAg KCJhdmFpbF92Y3B1cyIsICAgICBsaWJ4bF9iaXRtYXApLApAQCAtNTEyLDcgKzUxOSw3IEBAIGxp YnhsX2RvbWFpbl9idWlsZF9pbmZvID0gU3RydWN0KCJkb21haW5fYnVpbGRfaW5mbyIsWwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJtbWlvX2hvbGVfbWVta2IiLCAg TWVtS0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0aW1lcl9t b2RlIiwgICAgICAgbGlieGxfdGltZXJfbW9kZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoIm5lc3RlZF9odm0iLCAgICAgICBsaWJ4bF9kZWZib29sKSwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgiYWx0cDJtIiwgICAgICAgICAgIGxp YnhsX2RlZmJvb2wpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJh bHRwMm0iLCAgICAgICAgICAgbGlieGxfYWx0cDJtX21vZGUpLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKCJzbWJpb3NfZmlybXdhcmUiLCAgc3RyaW5nKSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgiYWNwaV9maXJtd2FyZSIsICAgIHN0 cmluZyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoImhkdHlwZSIs ICAgICAgICAgICBsaWJ4bF9oZHR5cGUpLApkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwveGxfY21k aW1wbC5jIGIvdG9vbHMvbGlieGwveGxfY21kaW1wbC5jCmluZGV4IDdmOTYxZTMuLmE2NTUyOTYg MTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL3hsX2NtZGltcGwuYworKysgYi90b29scy9saWJ4bC94 bF9jbWRpbXBsLmMKQEAgLTE2NjcsNyArMTY2NywzOSBAQCBzdGF0aWMgdm9pZCBwYXJzZV9jb25m aWdfZGF0YShjb25zdCBjaGFyICpjb25maWdfc291cmNlLAogCiAgICAgICAgIHhsdV9jZmdfZ2V0 X2RlZmJvb2woY29uZmlnLCAibmVzdGVkaHZtIiwgJmJfaW5mby0+dS5odm0ubmVzdGVkX2h2bSwg MCk7CiAKLSAgICAgICAgeGx1X2NmZ19nZXRfZGVmYm9vbChjb25maWcsICJhbHRwMm1odm0iLCAm Yl9pbmZvLT51Lmh2bS5hbHRwMm0sIDApOworICAgICAgICAvKgorICAgICAgICAgKiBUaGUgY29u ZmlnIHBhcmFtZXRlciAiYWx0cDJtaHZtIiBpcyBjb25zaWRlcmVkIGRlcHJlY2F0ZWQsIGhvd2V2 ZXIKKyAgICAgICAgICogZnVydGhlciBjb25zaWRlcmVkIGJlY2F1c2Ugb2YgbGVnYWN5IHJlYXNv bnMuIFRoZSBjb25maWcgcGFyYW1ldGVyCisgICAgICAgICAqICJhbHRwMm0iIHNoYWxsIGJlIHVz ZWQgaW5zdGVhZC4KKyAgICAgICAgICovCisgICAgICAgIGlmICgheGx1X2NmZ19nZXRfbG9uZyhj b25maWcsICJhbHRwMm1odm0iLCAmbCwgMCkpIHsKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJy LCAiV0FSTklORzogU3BlY2lmeWluZyBcImFsdHAybWh2bVwiIGlzIGRlcHJlY2F0ZWQuICIKKyAg ICAgICAgICAgICAgICAgICAgIlBsZWFzZSB1c2UgYSBcImFsdHAybVwiIGluc3RlYWQuXG4iKTsK KworICAgICAgICAgICAgaWYgKGwgPCBMSUJYTF9BTFRQMk1fTU9ERV9ESVNBQkxFRCB8fAorICAg ICAgICAgICAgICAgIGwgPiBMSUJYTF9BTFRQMk1fTU9ERV9NSVhFRCkgeworICAgICAgICAgICAg ICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IGludmFsaWQgdmFsdWUgJWxkIGZvciBcImFsdHAy bWh2bVwiXG4iLCBsKTsKKyAgICAgICAgICAgICAgICBleGl0ICgxKTsKKyAgICAgICAgICAgIH0K KworICAgICAgICAgICAgYl9pbmZvLT51Lmh2bS5hbHRwMm0gPSBsOworICAgICAgICB9CisKKyAg ICAgICAgaWYgKCF4bHVfY2ZnX2dldF9sb25nKGNvbmZpZywgImFsdHAybSIsICZsLCAwKSkgewor ICAgICAgICAgICAgaWYgKGwgPCBMSUJYTF9BTFRQMk1fTU9ERV9ESVNBQkxFRCB8fAorICAgICAg ICAgICAgICAgIGwgPiBMSUJYTF9BTFRQMk1fTU9ERV9FWFRFUk5BTF9PTkxZKSB7CisgICAgICAg ICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogaW52YWxpZCB2YWx1ZSAlbGQgZm9yIFwi YWx0cDJtXCJcbiIsIGwpOworICAgICAgICAgICAgICAgIGV4aXQgKDEpOworICAgICAgICAgICAg fQorCisgICAgICAgICAgICBiX2luZm8tPnUuaHZtLmFsdHAybSA9IGw7CisgICAgICAgIH0gZWxz ZSBpZiAoIXhsdV9jZmdfZ2V0X3N0cmluZyhjb25maWcsICJhbHRwMm0iLCAmYnVmLCAwKSkgewor ICAgICAgICAgICAgaWYgKGxpYnhsX2FsdHAybV9tb2RlX2Zyb21fc3RyaW5nKGJ1ZiwgJmJfaW5m by0+dS5odm0uYWx0cDJtKSkgeworICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJS T1I6IGludmFsaWQgdmFsdWUgXCIlc1wiIGZvciBcImFsdHAybVwiXG4iLAorICAgICAgICAgICAg ICAgICAgICAgICAgYnVmKTsKKyAgICAgICAgICAgICAgICBleGl0ICgxKTsKKyAgICAgICAgICAg IH0KKyAgICAgICAgfQogCiAgICAgICAgIHhsdV9jZmdfcmVwbGFjZV9zdHJpbmcoY29uZmlnLCAi c21iaW9zX2Zpcm13YXJlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYl9pbmZv LT51Lmh2bS5zbWJpb3NfZmlybXdhcmUsIDApOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2 bS9odm0uYyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKaW5kZXggODkzZWZmNi4uMGQ1OTk0MCAx MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9odm0uYworKysgYi94ZW4vYXJjaC94ODYvaHZt L2h2bS5jCkBAIC01MDQyLDcgKzUwNDIsNyBAQCBzdGF0aWMgaW50IGh2bW9wX3NldF9wYXJhbSgK ICAgICAgICAgcmMgPSB4c21faHZtX3BhcmFtX2FsdHAybWh2bShYU01fUFJJViwgZCk7CiAgICAg ICAgIGlmICggcmMgKQogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGlmICggYS52YWx1ZSA+ IDEgKQorICAgICAgICBpZiAoIGEudmFsdWUgPiBYRU5fQUxUUDJNX2V4dGVybmFsX29ubHkgKQog ICAgICAgICAgICAgcmMgPSAtRUlOVkFMOwogICAgICAgICBpZiAoIGEudmFsdWUgJiYKICAgICAg ICAgICAgICBkLT5hcmNoLmh2bV9kb21haW4ucGFyYW1zW0hWTV9QQVJBTV9ORVNURURIVk1dICkK QEAgLTUyMzgsMTggKzUyMzgsMTkgQEAgc3RhdGljIGludCBkb19hbHRwMm1fb3AoCiAgICAgICAg IGdvdG8gb3V0OwogICAgIH0KIAotICAgIGlmICggKHJjID0geHNtX2h2bV9hbHRwMm1odm1fb3Ao WFNNX1RBUkdFVCwgZCkpICkKKyAgICBpZiAoICFkLT5hcmNoLmh2bV9kb21haW4ucGFyYW1zW0hW TV9QQVJBTV9BTFRQMk1dICkKKyAgICB7CisgICAgICAgIHJjID0gLUVJTlZBTDsKKyAgICAgICAg Z290byBvdXQ7CisgICAgfQorCisgICAgaWYgKCAocmMgPSB4c21faHZtX2FsdHAybWh2bV9vcChY U01fT1RIRVIsIGQsCisgICAgICAgICAgICAgICAgZC0+YXJjaC5odm1fZG9tYWluLnBhcmFtc1tI Vk1fUEFSQU1fQUxUUDJNXSkpICkKICAgICAgICAgZ290byBvdXQ7CiAKICAgICBzd2l0Y2ggKCBh LmNtZCApCiAgICAgewogICAgIGNhc2UgSFZNT1BfYWx0cDJtX2dldF9kb21haW5fc3RhdGU6Ci0g ICAgICAgIGlmICggIWQtPmFyY2guaHZtX2RvbWFpbi5wYXJhbXNbSFZNX1BBUkFNX0FMVFAyTV0g KQotICAgICAgICB7Ci0gICAgICAgICAgICByYyA9IC1FSU5WQUw7Ci0gICAgICAgICAgICBicmVh azsKLSAgICAgICAgfQotCiAgICAgICAgIGEudS5kb21haW5fc3RhdGUuc3RhdGUgPSBhbHRwMm1f YWN0aXZlKGQpOwogICAgICAgICByYyA9IF9fY29weV90b19ndWVzdChhcmcsICZhLCAxKSA/IC1F RkFVTFQgOiAwOwogICAgICAgICBicmVhazsKQEAgLTUyNTksOCArNTI2MCw3IEBAIHN0YXRpYyBp bnQgZG9fYWx0cDJtX29wKAogICAgICAgICBzdHJ1Y3QgdmNwdSAqdjsKICAgICAgICAgYm9vbF90 IG9zdGF0ZTsKIAotICAgICAgICBpZiAoICFkLT5hcmNoLmh2bV9kb21haW4ucGFyYW1zW0hWTV9Q QVJBTV9BTFRQMk1dIHx8Ci0gICAgICAgICAgICAgbmVzdGVkaHZtX2VuYWJsZWQoZCkgKQorICAg ICAgICBpZiAoIG5lc3RlZGh2bV9lbmFibGVkKGQpICkKICAgICAgICAgewogICAgICAgICAgICAg cmMgPSAtRUlOVkFMOwogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVk ZS9wdWJsaWMvaHZtL3BhcmFtcy5oIGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9wYXJhbXMuaApp bmRleCBmNzMzOGEzLi4zZmZjMzNiIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZt L3BhcmFtcy5oCisrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vcGFyYW1zLmgKQEAgLTIyNSw4 ICsyMjUsMTYgQEAKIC8qIExvY2F0aW9uIG9mIHRoZSBWTSBHZW5lcmF0aW9uIElEIGluIGd1ZXN0 IHBoeXNpY2FsIGFkZHJlc3Mgc3BhY2UuICovCiAjZGVmaW5lIEhWTV9QQVJBTV9WTV9HRU5FUkFU SU9OX0lEX0FERFIgMzQKIAotLyogQm9vbGVhbjogRW5hYmxlIGFsdHAybSAqLworLyoKKyAqIFNl dCBtb2RlIGZvciBhbHRwMm06CisgKiAgZGlzYWJsZWQ6IGRvbid0IGFjdGl2YXRlIGFsdHAybSAo ZGVmYXVsdCkKKyAqICBtaXhlZDogYWxsb3cgYWNjZXNzIHRvIGFsdHAybSBmb3IgYm90aCBpbi1n dWVzdCBhbmQgZXh0ZXJuYWwgdG9vbHMKKyAqICBleHRlcm5hbF9vbmx5OiBhbGxvdyBhY2Nlc3Mg dG8gZXh0ZXJuYWwgcHJpdmlsZWdlZCB0b29scyBvbmx5CisgKi8KICNkZWZpbmUgSFZNX1BBUkFN X0FMVFAyTSAgICAgICAzNQorI2RlZmluZSBYRU5fQUxUUDJNX2Rpc2FibGVkICAgICAgMAorI2Rl ZmluZSBYRU5fQUxUUDJNX21peGVkICAgICAgICAgMQorI2RlZmluZSBYRU5fQUxUUDJNX2V4dGVy bmFsX29ubHkgMgogCiAvKgogICogU2l6ZSBvZiB0aGUgeDg3IEZQVSBGSVAvRkRQIHJlZ2lzdGVy cyB0aGF0IHRoZSBoeXBlcnZpc29yIG5lZWRzIHRvCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94 c20vZHVtbXkuaCBiL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCmluZGV4IDQwNmNkMTguLmEwZjZi NzAgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCisrKyBiL3hlbi9pbmNsdWRl L3hzbS9kdW1teS5oCkBAIC01NTQsMTAgKzU1NCwxOCBAQCBzdGF0aWMgWFNNX0lOTElORSBpbnQg eHNtX2h2bV9wYXJhbV9hbHRwMm1odm0oWFNNX0RFRkFVTFRfQVJHIHN0cnVjdCBkb21haW4gKmQp CiAgICAgcmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihhY3Rpb24sIGN1cnJlbnQtPmRvbWFpbiwg ZCk7CiB9CiAKLXN0YXRpYyBYU01fSU5MSU5FIGludCB4c21faHZtX2FsdHAybWh2bV9vcChYU01f REVGQVVMVF9BUkcgc3RydWN0IGRvbWFpbiAqZCkKK3N0YXRpYyBYU01fSU5MSU5FIGludCB4c21f aHZtX2FsdHAybWh2bV9vcChYU01fREVGQVVMVF9BUkcgc3RydWN0IGRvbWFpbiAqZCwgaW50IG1v ZGUpCiB7Ci0gICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX1RBUkdFVCk7Ci0gICAgcmV0dXJuIHhz bV9kZWZhdWx0X2FjdGlvbihhY3Rpb24sIGN1cnJlbnQtPmRvbWFpbiwgZCk7CisgICAgWFNNX0FT U0VSVF9BQ1RJT04oWFNNX09USEVSKTsKKyAgICBzd2l0Y2ggKCBtb2RlICkKKyAgICB7CisgICAg Y2FzZSBYRU5fQUxUUDJNX21peGVkOgorICAgICAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9u KFhTTV9UQVJHRVQsIGN1cnJlbnQtPmRvbWFpbiwgZCk7CisgICAgY2FzZSBYRU5fQUxUUDJNX2V4 dGVybmFsX29ubHk6CisgICAgICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24oWFNNX0RNX1BS SVYsIGN1cnJlbnQtPmRvbWFpbiwgZCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIC1F UEVSTTsKKyAgICB9OwogfQogCiBzdGF0aWMgWFNNX0lOTElORSBpbnQgeHNtX3ZtX2V2ZW50X2Nv bnRyb2woWFNNX0RFRkFVTFRfQVJHIHN0cnVjdCBkb21haW4gKmQsIGludCBtb2RlLCBpbnQgb3Ap CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94c20veHNtLmggYi94ZW4vaW5jbHVkZS94c20veHNt LmgKaW5kZXggNWRjNTlkZC4uNGY1M2IyNyAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveHNtL3hz bS5oCisrKyBiL3hlbi9pbmNsdWRlL3hzbS94c20uaApAQCAtMTQwLDcgKzE0MCw3IEBAIHN0cnVj dCB4c21fb3BlcmF0aW9ucyB7CiAgICAgaW50ICgqaHZtX2NvbnRyb2wpIChzdHJ1Y3QgZG9tYWlu ICpkLCB1bnNpZ25lZCBsb25nIG9wKTsKICAgICBpbnQgKCpodm1fcGFyYW1fbmVzdGVkKSAoc3Ry dWN0IGRvbWFpbiAqZCk7CiAgICAgaW50ICgqaHZtX3BhcmFtX2FsdHAybWh2bSkgKHN0cnVjdCBk b21haW4gKmQpOwotICAgIGludCAoKmh2bV9hbHRwMm1odm1fb3ApIChzdHJ1Y3QgZG9tYWluICpk KTsKKyAgICBpbnQgKCpodm1fYWx0cDJtaHZtX29wKSAoc3RydWN0IGRvbWFpbiAqZCwgaW50IG1v ZGUpOwogICAgIGludCAoKmdldF92bnVtYWluZm8pIChzdHJ1Y3QgZG9tYWluICpkKTsKIAogICAg IGludCAoKnZtX2V2ZW50X2NvbnRyb2wpIChzdHJ1Y3QgZG9tYWluICpkLCBpbnQgbW9kZSwgaW50 IG9wKTsKQEAgLTU4Myw5ICs1ODMsOSBAQCBzdGF0aWMgaW5saW5lIGludCB4c21faHZtX3BhcmFt X2FsdHAybWh2bSAoeHNtX2RlZmF1bHRfdCBkZWYsIHN0cnVjdCBkb21haW4gKmQpCiAgICAgcmV0 dXJuIHhzbV9vcHMtPmh2bV9wYXJhbV9hbHRwMm1odm0oZCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUg aW50IHhzbV9odm1fYWx0cDJtaHZtX29wICh4c21fZGVmYXVsdF90IGRlZiwgc3RydWN0IGRvbWFp biAqZCkKK3N0YXRpYyBpbmxpbmUgaW50IHhzbV9odm1fYWx0cDJtaHZtX29wICh4c21fZGVmYXVs dF90IGRlZiwgc3RydWN0IGRvbWFpbiAqZCwgaW50IG1vZGUpCiB7Ci0gICAgcmV0dXJuIHhzbV9v cHMtPmh2bV9hbHRwMm1odm1fb3AoZCk7CisgICAgcmV0dXJuIHhzbV9vcHMtPmh2bV9hbHRwMm1o dm1fb3AoZCwgbW9kZSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IHhzbV9nZXRfdm51bWFpbmZv ICh4c21fZGVmYXVsdF90IGRlZiwgc3RydWN0IGRvbWFpbiAqZCkKZGlmZiAtLWdpdCBhL3hlbi94 c20vZmxhc2svaG9va3MuYyBiL3hlbi94c20vZmxhc2svaG9va3MuYwppbmRleCBlYzZmNWI0Li5i OTczOTZlIDEwMDY0NAotLS0gYS94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKKysrIGIveGVuL3hzbS9m bGFzay9ob29rcy5jCkBAIC0xMTk3LDcgKzExOTcsNyBAQCBzdGF0aWMgaW50IGZsYXNrX2h2bV9w YXJhbV9hbHRwMm1odm0oc3RydWN0IGRvbWFpbiAqZCkKICAgICByZXR1cm4gY3VycmVudF9oYXNf cGVybShkLCBTRUNDTEFTU19IVk0sIEhWTV9fQUxUUDJNSFZNKTsKIH0KIAotc3RhdGljIGludCBm bGFza19odm1fYWx0cDJtaHZtX29wKHN0cnVjdCBkb21haW4gKmQpCitzdGF0aWMgaW50IGZsYXNr X2h2bV9hbHRwMm1odm1fb3Aoc3RydWN0IGRvbWFpbiAqZCwgaW50IG1vZGUpCiB7CiAgICAgcmV0 dXJuIGN1cnJlbnRfaGFzX3Blcm0oZCwgU0VDQ0xBU1NfSFZNLCBIVk1fX0FMVFAyTUhWTV9PUCk7 CiB9Ci0tIAoyLjguMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0 cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=