Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp1127809yba; Fri, 26 Apr 2019 14:41:37 -0700 (PDT) X-Google-Smtp-Source: APXvYqyTnBodIFxlJOUfVckZp30zCbRDVy7JFzbJhBrvEwMt2Fq9blvKcOLbFqJbPT/0ozRXkitz X-Received: by 2002:a17:902:2b88:: with SMTP id l8mr48077684plb.262.1556314897622; Fri, 26 Apr 2019 14:41:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1556314897; cv=none; d=google.com; s=arc-20160816; b=sDwtx7+TQEiZ9S0BgzFNdehPLMXQq0HBlQFfEsaDsyLaXEP59cIhNxaI0eDGjM0JmC J1TsrV0Fr+jeHwnQPBXTmxX9TaCkEA1ZZlFObT96iXOi0N9E9ZJ79ncc701uPn05aZyA NDlWcqiEgEOcoPgaRJ0P7030S12GyKwwplw5n8MOzGumM1d3aP3hqSGRxRBl/aBvYSY1 ZOJqoSD4DRIVmwxBAcvKlCK06xhfVe+0pYwIuxl3QgY/UCdmWdeoRg3kRTmLzfXvcAKS XSUMRAAdFrSwNKUIBuqoL39GGWn29YA8nDe5duOprxjz4qtmz+/SSm0Bn8k7415UbBaD vhXw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-id:content-language:accept-language:in-reply-to:references :message-id:date:thread-index:thread-topic:subject:cc:to:from :dkim-signature; bh=jlFSi9f2KoESxviQ8K5xnv/fMfxokrLyKsyFBQ0QQPA=; b=ySC5LxEujhtgK4mPvrHSYjb784de3YGPnXvdmJ3E66SnBrUnslIwJZO8oz0e1cSJp+ QbDY7xzjzfosWR8xG2DRHg+xX4FvfRv6j/xGh1bjeae7/NBSBAESO2E7DixayPAo3xjY wxnE6IAB8lyybZAIdVA5+YtR9xvcDggj1YamzvmyL2Ks0VRmjSFnNZ73M8SkgGrHYi+h WUYYyx0rLlSmsbWo+y6tnXml0dgZWAZDFxuGo3bAhA42rX1MC3kg8OCjxgmohx+7xDC4 oK45UQhFXVWuB9E6/AMT/ESYiAf5ijwA9hQhjLvDFh8ygrVPXSiYwdInUehieK//nE8M weJA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amdcloud.onmicrosoft.com header.s=selector1-amd-com header.b=nhTGBGUa; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y13si26239620plp.238.2019.04.26.14.41.12; Fri, 26 Apr 2019 14:41:37 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@amdcloud.onmicrosoft.com header.s=selector1-amd-com header.b=nhTGBGUa; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726977AbfDZVjp (ORCPT + 99 others); Fri, 26 Apr 2019 17:39:45 -0400 Received: from mail-eopbgr710058.outbound.protection.outlook.com ([40.107.71.58]:19424 "EHLO NAM05-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726343AbfDZVjo (ORCPT ); Fri, 26 Apr 2019 17:39:44 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jlFSi9f2KoESxviQ8K5xnv/fMfxokrLyKsyFBQ0QQPA=; b=nhTGBGUambt8GQUXdFIzkDTlfWaOGIVWEcMiFowDmQicEWtC/7HKjv0lJNmcp/uS6DWmCg1bWIWKZqQ9lnCzRYSJFJwh22oxo5e9xeN+mnE2W/xfWcFa5wfbeuqj41sJhED7EsTGzzYLUC3xeUezVeXHdy/g2kjgY6tb1guTdf4= Received: from DM6PR12MB3163.namprd12.prod.outlook.com (20.179.104.150) by DM6PR12MB3337.namprd12.prod.outlook.com (20.178.31.207) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1835.12; Fri, 26 Apr 2019 21:39:36 +0000 Received: from DM6PR12MB3163.namprd12.prod.outlook.com ([fe80::c96d:c1dd:fd7a:ffd6]) by DM6PR12MB3163.namprd12.prod.outlook.com ([fe80::c96d:c1dd:fd7a:ffd6%4]) with mapi id 15.20.1835.010; Fri, 26 Apr 2019 21:39:36 +0000 From: "Lendacky, Thomas" To: "Singh, Brijesh" , "kvm@vger.kernel.org" CC: "qemu-devel@nongnu.org" , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , Paolo Bonzini , =?utf-8?B?UmFkaW0gS3LEjW3DocWZ?= , Joerg Roedel , Borislav Petkov , "x86@kernel.org" , "linux-kernel@vger.kernel.org" Subject: Re: [RFC PATCH v1 08/10] KVM: X86: Introduce KVM_HC_PAGE_ENC_STATUS hypercall Thread-Topic: [RFC PATCH v1 08/10] KVM: X86: Introduce KVM_HC_PAGE_ENC_STATUS hypercall Thread-Index: AQHU+rgz0mso5ntZo0mIXYBwLViZgKZO+6MA Date: Fri, 26 Apr 2019 21:39:36 +0000 Message-ID: References: <20190424160942.13567-1-brijesh.singh@amd.com> <20190424160942.13567-9-brijesh.singh@amd.com> In-Reply-To: <20190424160942.13567-9-brijesh.singh@amd.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: SN4PR0501CA0055.namprd05.prod.outlook.com (2603:10b6:803:41::32) To DM6PR12MB3163.namprd12.prod.outlook.com (2603:10b6:5:182::22) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Thomas.Lendacky@amd.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [165.204.78.1] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: bdcf5f4c-ffde-4dde-48bd-08d6ca8fad9c x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(4618075)(2017052603328)(7193020);SRVR:DM6PR12MB3337; x-ms-traffictypediagnostic: DM6PR12MB3337: x-microsoft-antispam-prvs: x-forefront-prvs: 001968DD50 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(346002)(396003)(39850400004)(376002)(136003)(366004)(189003)(199004)(81156014)(68736007)(110136005)(76176011)(71200400001)(25786009)(71190400001)(66066001)(36756003)(72206003)(6246003)(31696002)(54906003)(6436002)(11346002)(486006)(446003)(99286004)(2616005)(6506007)(386003)(102836004)(14454004)(316002)(8676002)(8936002)(476003)(2501003)(53546011)(478600001)(81166006)(186003)(31686004)(97736004)(7736002)(6486002)(229853002)(86362001)(5660300002)(7416002)(66556008)(6512007)(6116002)(305945005)(26005)(3846002)(2906002)(64756008)(66946007)(66446008)(66574012)(14444005)(73956011)(256004)(66476007)(4326008)(53936002)(52116002);DIR:OUT;SFP:1101;SCL:1;SRVR:DM6PR12MB3337;H:DM6PR12MB3163.namprd12.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: amd.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: wE5tlV6hvk2XdBk3sko6b4Nm9A/S39a86o8zDQ5Vf4u4IKmtisd61Poi5M5ElZZ45nKWGgx1xaCRZxLoAxZyxLvzN1ymXytC6nPtrsm3t0ngFS4lJPnibJQFlGJ9wdGZrmCgskxDZLi4S9/x3OtScW8VtVuk5WqHZNSh8UAx6dtlXU+Qtwg6OO2H0Em0SMFAcJXAzsx/DDIvuXTaMrjnhYmn9HQQBG3wqqRLe6dPNvqi4Jt6ZOp1kDquc3j8qG6nhkR3+ia0O9DtdmlFe6u7PLINBqWK8qhYt98X+ME12zrNtIl2uf6iSaU6mH/l0l3xuDvZ536pVznPsFCSTprxgkg0DjNc/XvqEb7Ob+/q5A5EuHEEauu94XKcetGWi3euPomJmLUFkzorZk+YVowK8a+0LH8u1c8pXAdji2BHlcg= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: bdcf5f4c-ffde-4dde-48bd-08d6ca8fad9c X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Apr 2019 21:39:36.4470 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB3337 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gNC8yNC8xOSAxMToxMCBBTSwgU2luZ2gsIEJyaWplc2ggd3JvdGU6DQo+IFRoZSBoeXBlcmNh bGwgY2FuIGJlIHVzZWQgYnkgdGhlIFNFViBndWVzdCB0byBub3RpZnkgdGhlIHBhZ2UgZW5jcnlw dGlvbg0KDQpUaGlzIGh5ZXJjYWxsIGlzIHVzZWQgYnkgdGhlIFNFViBndWVzdCB0byBub3RpZnkg YSBjaGFuZ2UgaW4gdGhlIHBhZ2UuLi4NCg0KPiBzdGF0dXMgdG8gdGhlIGh5cGVydmlzb3IuIFRo ZSBoeXBlcmNhbGwgc2hvdWxkIGJlIGludm9rZWQgb25seSB3aGVuDQo+IHRoZSBlbmNyeXB0aW9u IGF0dHJpYnV0ZSBpcyBjaGFuZ2VkIGZyb20gZW5jcnlwdGVkIC0+IGRlY3J5cHRlZCBhbmQgdmlj ZQ0KPiB2ZXJzYS4gQnkgZGVmYXVsdCBhbGwgdGhlIGd1ZXN0IHBhZ2VzIHNob3VsZCBiZSBjb25z aWRlcmVkIGVuY3J5cHRlZC4NCg0KQnkgZGVmYXVsdCBhbGwgZ3Vlc3QgcGFnZSBhcmUgY29uc2lk ZXJlZA0KDQo+IA0KPiBDYzogVGhvbWFzIEdsZWl4bmVyIDx0Z2x4QGxpbnV0cm9uaXguZGU+DQo+ IENjOiBJbmdvIE1vbG5hciA8bWluZ29AcmVkaGF0LmNvbT4NCj4gQ2M6ICJILiBQZXRlciBBbnZp biIgPGhwYUB6eXRvci5jb20+DQo+IENjOiBQYW9sbyBCb256aW5pIDxwYm9uemluaUByZWRoYXQu Y29tPg0KPiBDYzogIlJhZGltIEtyxI1tw6HFmSIgPHJrcmNtYXJAcmVkaGF0LmNvbT4NCj4gQ2M6 IEpvZXJnIFJvZWRlbCA8am9yb0A4Ynl0ZXMub3JnPg0KPiBDYzogQm9yaXNsYXYgUGV0a292IDxi cEBzdXNlLmRlPg0KPiBDYzogVG9tIExlbmRhY2t5IDx0aG9tYXMubGVuZGFja3lAYW1kLmNvbT4N Cj4gQ2M6IHg4NkBrZXJuZWwub3JnDQo+IENjOiBrdm1Admdlci5rZXJuZWwub3JnDQo+IENjOiBs aW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnDQo+IFNpZ25lZC1vZmYtYnk6IEJyaWplc2ggU2lu Z2ggPGJyaWplc2guc2luZ2hAYW1kLmNvbT4NCj4gLS0tDQo+ICBEb2N1bWVudGF0aW9uL3ZpcnR1 YWwva3ZtL2h5cGVyY2FsbHMudHh0IHwgMTQgKysrKysNCj4gIGFyY2gveDg2L2luY2x1ZGUvYXNt L2t2bV9ob3N0LmggICAgICAgICAgfCAgMiArDQo+ICBhcmNoL3g4Ni9rdm0vc3ZtLmMgICAgICAg ICAgICAgICAgICAgICAgIHwgNjkgKysrKysrKysrKysrKysrKysrKysrKysrDQo+ICBhcmNoL3g4 Ni9rdm0vdm14L3ZteC5jICAgICAgICAgICAgICAgICAgIHwgIDEgKw0KPiAgYXJjaC94ODYva3Zt L3g4Ni5jICAgICAgICAgICAgICAgICAgICAgICB8ICA1ICsrDQo+ICBpbmNsdWRlL3VhcGkvbGlu dXgva3ZtX3BhcmEuaCAgICAgICAgICAgIHwgIDEgKw0KPiAgNiBmaWxlcyBjaGFuZ2VkLCA5MiBp bnNlcnRpb25zKCspDQo+IA0KPiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi92aXJ0dWFsL2t2 bS9oeXBlcmNhbGxzLnR4dCBiL0RvY3VtZW50YXRpb24vdmlydHVhbC9rdm0vaHlwZXJjYWxscy50 eHQNCj4gaW5kZXggZGEyNGMxMzhjOGQxLi5lY2Q0NGU0ODg2NzkgMTAwNjQ0DQo+IC0tLSBhL0Rv Y3VtZW50YXRpb24vdmlydHVhbC9rdm0vaHlwZXJjYWxscy50eHQNCj4gKysrIGIvRG9jdW1lbnRh dGlvbi92aXJ0dWFsL2t2bS9oeXBlcmNhbGxzLnR4dA0KPiBAQCAtMTQxLDMgKzE0MSwxNyBAQCBh MCBjb3JyZXNwb25kcyB0byB0aGUgQVBJQyBJRCBpbiB0aGUgdGhpcmQgYXJndW1lbnQgKGEyKSwg Yml0IDENCj4gIGNvcnJlc3BvbmRzIHRvIHRoZSBBUElDIElEIGEyKzEsIGFuZCBzbyBvbi4NCj4g IA0KPiAgUmV0dXJucyB0aGUgbnVtYmVyIG9mIENQVXMgdG8gd2hpY2ggdGhlIElQSXMgd2VyZSBk ZWxpdmVyZWQgc3VjY2Vzc2Z1bGx5Lg0KPiArDQo+ICs3LiBLVk1fSENfUEFHRV9FTkNfU1RBVFVT DQo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICtBcmNoaXRlY3R1cmU6IHg4Ng0KPiAr U3RhdHVzOiBhY3RpdmUNCj4gK1B1cnBvc2U6IE5vdGlmeSB0aGUgZW5jcnlwdGlvbiBzdGF0dXMg Y2hhbmdlcyBpbiBndWVzdCBwYWdlIHRhYmxlIChTRVYgZ3Vlc3QpDQo+ICsNCj4gK2EwOiB0aGUg Z3Vlc3QgcGh5c2ljYWwgYWRkcmVzcyBvZiB0aGUgc3RhcnQgcGFnZQ0KPiArYTE6IHRoZSBudW1i ZXIgb2YgcGFnZXMNCj4gK2EyOiBzZXQgb3IgY2xlYXIgdGhlIGVuY3J5cHRpb24gYXR0cmlidXRl DQoNCmEyOiBlbmNyeXB0aW9uIGF0dHJpYnV0ZQ0KDQo+ICsNCj4gKyAgIFdoZXJlOg0KPiArCSog MTogRW5jcnlwdGlvbiBhdHRyaWJ1dGUgaXMgc2V0DQo+ICsJKiAwOiBFbmNyeXB0aW9uIGF0dHJp YnV0ZSBpcyBjbGVhcmVkDQo+IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1f aG9zdC5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaA0KPiBpbmRleCBhOWQwM2Fm MzQwMzAuLmFkYjBjYTAzNWI5NyAxMDA2NDQNCj4gLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20v a3ZtX2hvc3QuaA0KPiArKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oDQo+IEBA IC0xMTk2LDYgKzExOTYsOCBAQCBzdHJ1Y3Qga3ZtX3g4Nl9vcHMgew0KPiAgCXVpbnQxNl90ICgq bmVzdGVkX2dldF9ldm1jc192ZXJzaW9uKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOw0KPiAgDQo+ ICAJYm9vbCAoKm5lZWRfZW11bGF0aW9uX29uX3BhZ2VfZmF1bHQpKHN0cnVjdCBrdm1fdmNwdSAq dmNwdSk7DQo+ICsJaW50ICgqcGFnZV9lbmNfc3RhdHVzX2hjKShzdHJ1Y3Qga3ZtICprdm0sIHVu c2lnbmVkIGxvbmcgZ3BhLA0KPiArCQkJCSAgdW5zaWduZWQgbG9uZyBzeiwgdW5zaWduZWQgbG9u ZyBtb2RlKTsNCj4gIH07DQo+ICANCj4gIHN0cnVjdCBrdm1fYXJjaF9hc3luY19wZiB7DQo+IGRp ZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vc3ZtLmMgYi9hcmNoL3g4Ni9rdm0vc3ZtLmMNCj4gaW5k ZXggNzRiNTdhYjc0MmFkLi5mMDI0ZjIwOGIwNTIgMTAwNjQ0DQo+IC0tLSBhL2FyY2gveDg2L2t2 bS9zdm0uYw0KPiArKysgYi9hcmNoL3g4Ni9rdm0vc3ZtLmMNCj4gQEAgLTEzOCw2ICsxMzgsOCBA QCBzdHJ1Y3Qga3ZtX3Nldl9pbmZvIHsNCj4gIAlpbnQgZmQ7CQkJLyogU0VWIGRldmljZSBmZCAq Lw0KPiAgCXVuc2lnbmVkIGxvbmcgcGFnZXNfbG9ja2VkOyAvKiBOdW1iZXIgb2YgcGFnZXMgbG9j a2VkICovDQo+ICAJc3RydWN0IGxpc3RfaGVhZCByZWdpb25zX2xpc3Q7ICAvKiBMaXN0IG9mIHJl Z2lzdGVyZWQgcmVnaW9ucyAqLw0KPiArCXVuc2lnbmVkIGxvbmcgKnBhZ2VfZW5jX2JtYXA7DQo+ ICsJdW5zaWduZWQgbG9uZyBwYWdlX2VuY19ibWFwX3NpemU7DQo+ICB9Ow0KPiAgDQo+ICBzdHJ1 Y3Qga3ZtX3N2bSB7DQo+IEBAIC0xOTExLDYgKzE5MTMsOCBAQCBzdGF0aWMgdm9pZCBzZXZfdm1f ZGVzdHJveShzdHJ1Y3Qga3ZtICprdm0pDQo+ICANCj4gIAlzZXZfdW5iaW5kX2FzaWQoa3ZtLCBz ZXYtPmhhbmRsZSk7DQo+ICAJc2V2X2FzaWRfZnJlZShrdm0pOw0KPiArDQo+ICsJa3ZmcmVlKHNl di0+cGFnZV9lbmNfYm1hcCk7DQo+ICB9DQo+ICANCj4gIHN0YXRpYyB2b2lkIGF2aWNfdm1fZGVz dHJveShzdHJ1Y3Qga3ZtICprdm0pDQo+IEBAIC03MzcwLDYgKzczNzQsNjkgQEAgc3RhdGljIGlu dCBzZXZfcmVjZWl2ZV9maW5pc2goc3RydWN0IGt2bSAqa3ZtLCBzdHJ1Y3Qga3ZtX3Nldl9jbWQg KmFyZ3ApDQo+ICAJcmV0dXJuIHJldDsNCj4gIH0NCj4gIA0KPiArc3RhdGljIGludCBzZXZfcmVz aXplX3BhZ2VfZW5jX2JpdG1hcChzdHJ1Y3Qga3ZtICprdm0sIHVuc2lnbmVkIGxvbmcgbmV3X3Np emUpDQo+ICt7DQo+ICsJc3RydWN0IGt2bV9zZXZfaW5mbyAqc2V2ID0gJnRvX2t2bV9zdm0oa3Zt KS0+c2V2X2luZm87DQo+ICsJdW5zaWduZWQgbG9uZyAqbWFwOw0KPiArCXVuc2lnbmVkIGxvbmcg c3o7DQo+ICsNCj4gKwlpZiAoc2V2LT5wYWdlX2VuY19ibWFwX3NpemUgPj0gbmV3X3NpemUpDQo+ ICsJCXJldHVybiAwOw0KPiArDQo+ICsJc3ogPSBBTElHTihuZXdfc2l6ZSwgQklUU19QRVJfTE9O RykgLyA4Ow0KPiArDQo+ICsJaWYgKHN6ID4gUEFHRV9TSVpFKQ0KPiArCQltYXAgPSB2bWFsbG9j KHN6KTsNCj4gKwllbHNlDQo+ICsJCW1hcCA9IGttYWxsb2Moc3osIEdGUF9LRVJORUwpOw0KDQpB bnkgcmVhc29uIHRoaXMgY2FuJ3QgYWx3YXlzIGJlIHZtYWxsb2MoKT8NCg0KPiArDQo+ICsJaWYg KCFtYXApIHsNCj4gKwkJcHJfZXJyX29uY2UoIkZhaWxlZCB0byBhbGxvY2F0ZSBkZWNyeXB0ZWQg Yml0bWFwIHNpemUgJWx4XG4iLCBzeik7DQo+ICsJCXJldHVybiAxOw0KDQpTaG91bGQgdGhpcyBi ZSAtRU5PTUVNPw0KDQo+ICsJfQ0KPiArDQo+ICsJLyogbWFyayB0aGUgcGFnZSBlbmNyeXB0ZWQg KGJ5IGRlZmF1bHQpICovDQo+ICsJbWVtc2V0KG1hcCwgMHhmZiwgc3opOw0KPiArDQo+ICsJYml0 bWFwX2NvcHkobWFwLCBzZXYtPnBhZ2VfZW5jX2JtYXAsIHNldi0+cGFnZV9lbmNfYm1hcF9zaXpl KTsNCj4gKwlrdmZyZWUoc2V2LT5wYWdlX2VuY19ibWFwKTsNCj4gKw0KPiArCXNldi0+cGFnZV9l bmNfYm1hcCA9IG1hcDsNCj4gKwlzZXYtPnBhZ2VfZW5jX2JtYXBfc2l6ZSA9IG5ld19zaXplOw0K PiArDQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQgc3ZtX3BhZ2VfZW5j X3N0YXR1c19oYyhzdHJ1Y3Qga3ZtICprdm0sIHVuc2lnbmVkIGxvbmcgZ3BhLA0KPiArCQkJCSAg dW5zaWduZWQgbG9uZyBucGFnZXMsIHVuc2lnbmVkIGxvbmcgZW5jKQ0KPiArew0KPiArCXN0cnVj dCBrdm1fc2V2X2luZm8gKnNldiA9ICZ0b19rdm1fc3ZtKGt2bSktPnNldl9pbmZvOw0KPiArCWdm bl90IGdmbl9zdGFydCwgZ2ZuX2VuZDsNCj4gKwlpbnQgcjsNCg0KaW50IHJldDsgPyAgInIiIGF0 IGZpcnN0IGNvbmZ1c2VkIG1lLg0KDQo+ICsNCj4gKwlpZiAoIW5wYWdlcykNCj4gKwkJcmV0dXJu IDA7DQo+ICsNCj4gKwlnZm5fc3RhcnQgPSBncGFfdG9fZ2ZuKGdwYSk7DQo+ICsJZ2ZuX2VuZCA9 IGdmbl9zdGFydCArIG5wYWdlczsNCj4gKw0KPiArCW11dGV4X2xvY2soJmt2bS0+bG9jayk7DQo+ ICsNCj4gKwlyID0gMTsNCj4gKwlpZiAoc2V2X3Jlc2l6ZV9wYWdlX2VuY19iaXRtYXAoa3ZtLCBn Zm5fZW5kKSkNCg0KcmV0ID0gc2V2X3Jlc2l6ZV8uLi4NCmlmIChyZXQpDQoNCj4gKwkJZ290byB1 bmxvY2s7DQo+ICsNCj4gKwlpZiAoZW5jKQ0KPiArCQlfX2JpdG1hcF9zZXQoc2V2LT5wYWdlX2Vu Y19ibWFwLCBnZm5fc3RhcnQsIGdmbl9lbmQgLSBnZm5fc3RhcnQpOw0KPiArCWVsc2UNCj4gKwkJ X19iaXRtYXBfY2xlYXIoc2V2LT5wYWdlX2VuY19ibWFwLCBnZm5fc3RhcnQsIGdmbl9lbmQgLSBn Zm5fc3RhcnQpOw0KPiArDQo+ICsJciA9IDA7DQoNCklmIHlvdSBkbyB0aGUgYWJvdmUsIHRoaXMg aXMgbm90IG5lZWRlZC4NCg0KVGhhbmtzLA0KVG9tDQoNCj4gK3VubG9jazoNCj4gKwltdXRleF91 bmxvY2soJmt2bS0+bG9jayk7DQo+ICsJcmV0dXJuIHI7DQo+ICt9DQo+ICsNCj4gIHN0YXRpYyBp bnQgc3ZtX21lbV9lbmNfb3Aoc3RydWN0IGt2bSAqa3ZtLCB2b2lkIF9fdXNlciAqYXJncCkNCj4g IHsNCj4gIAlzdHJ1Y3Qga3ZtX3Nldl9jbWQgc2V2X2NtZDsNCj4gQEAgLTc3MTEsNiArNzc3OCw4 IEBAIHN0YXRpYyBzdHJ1Y3Qga3ZtX3g4Nl9vcHMgc3ZtX3g4Nl9vcHMgX19yb19hZnRlcl9pbml0 ID0gew0KPiAgCS5uZXN0ZWRfZ2V0X2V2bWNzX3ZlcnNpb24gPSBuZXN0ZWRfZ2V0X2V2bWNzX3Zl cnNpb24sDQo+ICANCj4gIAkubmVlZF9lbXVsYXRpb25fb25fcGFnZV9mYXVsdCA9IHN2bV9uZWVk X2VtdWxhdGlvbl9vbl9wYWdlX2ZhdWx0LA0KPiArDQo+ICsJLnBhZ2VfZW5jX3N0YXR1c19oYyA9 IHN2bV9wYWdlX2VuY19zdGF0dXNfaGMNCj4gIH07DQo+ICANCj4gIHN0YXRpYyBpbnQgX19pbml0 IHN2bV9pbml0KHZvaWQpDQo+IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jIGIv YXJjaC94ODYva3ZtL3ZteC92bXguYw0KPiBpbmRleCBiNGU3ZDY0NTI3NWEuLjljODE0ZTU2MGUw ZiAxMDA2NDQNCj4gLS0tIGEvYXJjaC94ODYva3ZtL3ZteC92bXguYw0KPiArKysgYi9hcmNoL3g4 Ni9rdm0vdm14L3ZteC5jDQo+IEBAIC03NzMxLDYgKzc3MzEsNyBAQCBzdGF0aWMgc3RydWN0IGt2 bV94ODZfb3BzIHZteF94ODZfb3BzIF9fcm9fYWZ0ZXJfaW5pdCA9IHsNCj4gIAkuZ2V0X3ZtY3Mx Ml9wYWdlcyA9IE5VTEwsDQo+ICAJLm5lc3RlZF9lbmFibGVfZXZtY3MgPSBOVUxMLA0KPiAgCS5u ZWVkX2VtdWxhdGlvbl9vbl9wYWdlX2ZhdWx0ID0gdm14X25lZWRfZW11bGF0aW9uX29uX3BhZ2Vf ZmF1bHQsDQo+ICsJLnBhZ2VfZW5jX3N0YXR1c19oYyA9IE5VTEwsDQo+ICB9Ow0KPiAgDQo+ICBz dGF0aWMgdm9pZCB2bXhfY2xlYW51cF9sMWRfZmx1c2godm9pZCkNCj4gZGlmZiAtLWdpdCBhL2Fy Y2gveDg2L2t2bS94ODYuYyBiL2FyY2gveDg2L2t2bS94ODYuYw0KPiBpbmRleCBhMGQxZmM4MGFj NWEuLmRlYTY0NGJlNTk5MiAxMDA2NDQNCj4gLS0tIGEvYXJjaC94ODYva3ZtL3g4Ni5jDQo+ICsr KyBiL2FyY2gveDg2L2t2bS94ODYuYw0KPiBAQCAtNzE0MSw2ICs3MTQxLDExIEBAIGludCBrdm1f ZW11bGF0ZV9oeXBlcmNhbGwoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQ0KPiAgCWNhc2UgS1ZNX0hD X1NFTkRfSVBJOg0KPiAgCQlyZXQgPSBrdm1fcHZfc2VuZF9pcGkodmNwdS0+a3ZtLCBhMCwgYTEs IGEyLCBhMywgb3BfNjRfYml0KTsNCj4gIAkJYnJlYWs7DQo+ICsJY2FzZSBLVk1fSENfUEFHRV9F TkNfU1RBVFVTOg0KPiArCQlyZXQgPSAtS1ZNX0VOT1NZUzsNCj4gKwkJaWYgKGt2bV94ODZfb3Bz LT5wYWdlX2VuY19zdGF0dXNfaGMpDQo+ICsJCQlyZXQgPSBrdm1feDg2X29wcy0+cGFnZV9lbmNf c3RhdHVzX2hjKHZjcHUtPmt2bSwgYTAsIGExLCBhMik7DQo+ICsJCWJyZWFrOw0KPiAgCWRlZmF1 bHQ6DQo+ICAJCXJldCA9IC1LVk1fRU5PU1lTOw0KPiAgCQlicmVhazsNCj4gZGlmZiAtLWdpdCBh L2luY2x1ZGUvdWFwaS9saW51eC9rdm1fcGFyYS5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L2t2bV9w YXJhLmgNCj4gaW5kZXggNmMwY2U0OTkzMWU1Li4zZGM5ZTU3OWY0ZjkgMTAwNjQ0DQo+IC0tLSBh L2luY2x1ZGUvdWFwaS9saW51eC9rdm1fcGFyYS5oDQo+ICsrKyBiL2luY2x1ZGUvdWFwaS9saW51 eC9rdm1fcGFyYS5oDQo+IEBAIC0yOCw2ICsyOCw3IEBADQo+ICAjZGVmaW5lIEtWTV9IQ19NSVBT X0NPTlNPTEVfT1VUUFVUCTgNCj4gICNkZWZpbmUgS1ZNX0hDX0NMT0NLX1BBSVJJTkcJCTkNCj4g ICNkZWZpbmUgS1ZNX0hDX1NFTkRfSVBJCQkxMA0KPiArI2RlZmluZSBLVk1fSENfUEFHRV9FTkNf U1RBVFVTCQkxMQ0KPiAgDQo+ICAvKg0KPiAgICogaHlwZXJjYWxscyB1c2UgYXJjaGl0ZWN0dXJl IHNwZWNpZmljDQo+IA0K