Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp1259556ybl; Thu, 22 Aug 2019 11:44:45 -0700 (PDT) X-Google-Smtp-Source: APXvYqzRPTOchEy5k3NJFM4ZTsDlGTD/dxNUwbXgb+GcUVDqS4M82z0U2p/clqbsFJj28FF6BMUP X-Received: by 2002:a17:90a:eb18:: with SMTP id j24mr1106554pjz.82.1566499485131; Thu, 22 Aug 2019 11:44:45 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1566499485; cv=pass; d=google.com; s=arc-20160816; b=OiGoK/+iJ3y4cNn53s96XYtyly2lAj6cJCpgxC8LgUMHUmUY3NeOYyc78CrRzuknXf W4ddGrra4B3ZPqIV7RfB53162yV+zTtT0BAUUmlOXZTjiH3zXcKxkMWkxIqnVDVUuor1 JbeBmZJ6VNqJGWHsQZ/KJaVhfvprPhNfbeGirE8cxtBPzx+RCk2uBlqh4zBpiu1ROVL5 oGj6Qsfd96csxxeUcxs088FNnfKWooAo/5pOu+JA8I0mYlfXzAyuycR0YAky5E1bAhqE PpjuGgbbjEIo7gvENq9p0YQlIz0UD1oG31Ao2nGZ1P2+mnTxEnxCNni287iSLPO0+1CR dU5w== ARC-Message-Signature: i=2; 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=94UgWArO+0rf+wYFc7vaJfSwLAJG2ILNkKRHH3LEAoE=; b=vBBpdJKwOvcz1anAN+ACXW4ZxM5O7IaDQoRDXZeqIxktSIyoTWHI7zUPQy/UdR5Fb6 G+EuhWmtf73D96UYma9qV/K0RO7c5zzNt2PVl3IfSh/2SUZbzpEYHmNT/C1IiXrSObxb 42W/edOYn0rDuXvkRjSv3PQ0Cw1V/3PekRNqi4oOx/ltN8xnMfONQM0yNMM9CxxGCHRj fSu20omF0Cj2W8iB6eUpXh4MfZS6hN+fer6iZsHY2M+xQocmMfGgr/G1A+ZuUiNzLWag GNU1c3AmIJbLJEdqbIvhux6XUNX9gvGRzqL43PqxFHNp/ODaoJgbN6BvjF+Z6H3BB08k iV+w== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amdcloud.onmicrosoft.com header.s=selector2-amdcloud-onmicrosoft-com header.b=yyiFYg6U; arc=pass (i=1 spf=pass spfdomain=amd.com dkim=pass dkdomain=amd.com dmarc=pass fromdomain=amd.com); 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 12si329591pfi.199.2019.08.22.11.44.30; Thu, 22 Aug 2019 11:44:45 -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=selector2-amdcloud-onmicrosoft-com header.b=yyiFYg6U; arc=pass (i=1 spf=pass spfdomain=amd.com dkim=pass dkdomain=amd.com dmarc=pass fromdomain=amd.com); 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 S2389059AbfHVN1p (ORCPT + 99 others); Thu, 22 Aug 2019 09:27:45 -0400 Received: from mail-eopbgr700060.outbound.protection.outlook.com ([40.107.70.60]:24576 "EHLO NAM04-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2389012AbfHVN1p (ORCPT ); Thu, 22 Aug 2019 09:27:45 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lsy4bJ80cycWv1a5NQ3PC6vaKe7WK55KjSHJnCiftdt9Lc9YpMbTCSifrjZyUeq2kKvMOEQd8cSCzGGzEIbFdyXDu/ZbpTIPs+0HOquXmDl8DS4LjQPtOfRxTjhpFv87WChGFHIIC9d119UT2DAj+t6WAdzXi8YfNgFv7rAzs35j58hwtXrJkvWMWUj9vO5VleOSgQGHcJdWqYRDDJ0OBOLkEIOdOP6w8uacD4pmB96RPNAGH8R3n8+F71hUp6KwDMy/SNx9s4q/PXxNxsiOSBCsw0KJettU5oKeT2w59tPZlB5/PgjumTX9nnVOSCpRIkmxGXOw/OaX3h47HWd6Rw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=94UgWArO+0rf+wYFc7vaJfSwLAJG2ILNkKRHH3LEAoE=; b=ktRc6GqBcpcMozJZAW+D1SwpKQvJMkNB6PlJI+MMfE9foz4Fu3WHVoa+qJ5AiNFzL48jni4z01Jw99p8plSGUsyGhiVh3yPOXxKseokDI2D6nInjZJpQxWYMDxs4FmKuRY8mUv//FcJdY6pmAyssjmJ/xeIpSxFnIlu9HEHTg3ZfsPHQzDiC6k6Z1Fxbe2luGndzEKpR+kmUrPnqspIC6d90k3uG26p1RSA/cu7UsrzVbMiIE36QhFL5MgGOohV2xENhHzmzR/usiQ4aJPOhbg9X+PHK8Ke+Tyk/aeBKaj6vAPfX0s5wrYL2uuP/x1f+sSzRKni3Q0To37Nk/3EK3Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector2-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=94UgWArO+0rf+wYFc7vaJfSwLAJG2ILNkKRHH3LEAoE=; b=yyiFYg6UCBoPE9ICtRH2fojKVxc6UCYkAHca/oYt4lC4pit4soA5/R37lTjBvW4ui2UUw/8xaTWhfZGtowjYV7uUMgYABgjCik4W33KRMFpShhkGMyVPkOseruCLjxRGBHRkxQChY1nlBu+Pp/xHR762TvohtZT4mx3td+1kLtE= Received: from DM6PR12MB2682.namprd12.prod.outlook.com (20.176.118.13) by DM6PR12MB2762.namprd12.prod.outlook.com (20.176.117.79) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2178.16; Thu, 22 Aug 2019 13:27:25 +0000 Received: from DM6PR12MB2682.namprd12.prod.outlook.com ([fe80::a410:b3e6:1557:7450]) by DM6PR12MB2682.namprd12.prod.outlook.com ([fe80::a410:b3e6:1557:7450%6]) with mapi id 15.20.2178.020; Thu, 22 Aug 2019 13:27:25 +0000 From: "Singh, Brijesh" To: Borislav Petkov CC: "Singh, Brijesh" , "kvm@vger.kernel.org" , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , Paolo Bonzini , =?utf-8?B?UmFkaW0gS3LEjW3DocWZ?= , Joerg Roedel , "Lendacky, Thomas" , "x86@kernel.org" , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH v3 02/11] KVM: SVM: Add KVM_SEND_UPDATE_DATA command Thread-Topic: [PATCH v3 02/11] KVM: SVM: Add KVM_SEND_UPDATE_DATA command Thread-Index: AQHVN1vguB8xjUAmOk695EJ1xW718KcHVFcAgAAXmQA= Date: Thu, 22 Aug 2019 13:27:25 +0000 Message-ID: <9c8fd645-8908-7ece-b60d-20de6f246df8@amd.com> References: <20190710201244.25195-1-brijesh.singh@amd.com> <20190710201244.25195-3-brijesh.singh@amd.com> <20190822120254.GC11845@zn.tnic> In-Reply-To: <20190822120254.GC11845@zn.tnic> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: SN4PR0501CA0088.namprd05.prod.outlook.com (2603:10b6:803:22::26) To DM6PR12MB2682.namprd12.prod.outlook.com (2603:10b6:5:42::13) authentication-results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [165.204.77.1] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: d3b4c4f9-31ce-4db5-f29c-08d727047867 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600166)(711020)(4605104)(1401327)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020);SRVR:DM6PR12MB2762; x-ms-traffictypediagnostic: DM6PR12MB2762: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2887; x-forefront-prvs: 01371B902F x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(4636009)(346002)(136003)(376002)(396003)(39860400002)(366004)(199004)(189003)(4326008)(64756008)(6436002)(102836004)(386003)(11346002)(476003)(2616005)(2906002)(486006)(14454004)(76176011)(6486002)(6506007)(53546011)(71190400001)(71200400001)(66574012)(229853002)(81156014)(52116002)(86362001)(81166006)(14444005)(6116002)(26005)(31696002)(3846002)(186003)(6246003)(53936002)(36756003)(316002)(478600001)(8936002)(7736002)(446003)(7416002)(25786009)(66946007)(8676002)(66476007)(66556008)(66446008)(99286004)(31686004)(305945005)(6512007)(5660300002)(6916009)(66066001)(256004)(54906003);DIR:OUT;SFP:1101;SCL:1;SRVR:DM6PR12MB2762;H:DM6PR12MB2682.namprd12.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX: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: h0jji6a82tHtNUxSUgvtGd2ojkkJuX5PMgAKGGi3n5mV3GSYBcxQxlwZLR+E+7q3bmgQttMdZwh7hKY0TkM6a1f0zP8/VMsZaxoUM4Ay66JtkhhQOXidJbcsYeJr/rQlZ+mKSuRkUZysE5b3FUW9XseQm3rJvs251BhUPNRnnOJ4CFlr+ELvRByGCZyznoEOcWVzfrAz8+aIcFX8YRTr4PXxfa4RbPREpotcndIQWKhi3I1FQqykV2fkr4CbawziDelFdhXJxmxyw8lBNiIjQdeSZ+7pJv02VbFaFPapN+Up7a/sEqN5YUud1ngDifsafBeMX37wABpqdAXNAyu07ETL3WaJWkDzGarfvRqDiZJzqJjxxymee8/mEqEWIbM+85JzVCNHh+iO/117E2v+oC4XHbMn+VembJqDJRxP4lY= Content-Type: text/plain; charset="utf-8" Content-ID: <642748DF651E574E95F93592AA33D9AE@namprd12.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: d3b4c4f9-31ce-4db5-f29c-08d727047867 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Aug 2019 13:27:25.0694 (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-CrossTenant-userprincipalname: SaXrEFX9uXkwQbzVhg5mgsbSXj+i3C4v7ci/MLZe7SUbtkhAtHyc7qiYpZEExHHV8dT/OTVWuJqQ7dhTn4I0BQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB2762 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org DQoNCk9uIDgvMjIvMTkgNzowMiBBTSwgQm9yaXNsYXYgUGV0a292IHdyb3RlOg0KPiBPbiBXZWQs IEp1bCAxMCwgMjAxOSBhdCAwODoxMzowMVBNICswMDAwLCBTaW5naCwgQnJpamVzaCB3cm90ZToN Cj4+IFRoZSBjb21tYW5kIGlzIHVzZWQgZm9yIGVuY3J5cHRpbmcgdGhlIGd1ZXN0IG1lbW9yeSBy ZWdpb24gdXNpbmcgdGhlIGVuY3J5cHRpb24NCj4+IGNvbnRleHQgY3JlYXRlZCB3aXRoIEtWTV9T RVZfU0VORF9TVEFSVC4NCj4+DQo+PiBDYzogVGhvbWFzIEdsZWl4bmVyIDx0Z2x4QGxpbnV0cm9u aXguZGU+DQo+PiBDYzogSW5nbyBNb2xuYXIgPG1pbmdvQHJlZGhhdC5jb20+DQo+PiBDYzogIkgu IFBldGVyIEFudmluIiA8aHBhQHp5dG9yLmNvbT4NCj4+IENjOiBQYW9sbyBCb256aW5pIDxwYm9u emluaUByZWRoYXQuY29tPg0KPj4gQ2M6ICJSYWRpbSBLcsSNbcOhxZkiIDxya3JjbWFyQHJlZGhh dC5jb20+DQo+PiBDYzogSm9lcmcgUm9lZGVsIDxqb3JvQDhieXRlcy5vcmc+DQo+PiBDYzogQm9y aXNsYXYgUGV0a292IDxicEBzdXNlLmRlPg0KPj4gQ2M6IFRvbSBMZW5kYWNreSA8dGhvbWFzLmxl bmRhY2t5QGFtZC5jb20+DQo+PiBDYzogeDg2QGtlcm5lbC5vcmcNCj4+IENjOiBrdm1Admdlci5r ZXJuZWwub3JnDQo+PiBDYzogbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZw0KPj4gU2lnbmVk LW9mZi1ieTogQnJpamVzaCBTaW5naCA8YnJpamVzaC5zaW5naEBhbWQuY29tPg0KPj4gLS0tDQo+ PiAgIC4uLi92aXJ0dWFsL2t2bS9hbWQtbWVtb3J5LWVuY3J5cHRpb24ucnN0ICAgICB8ICAyNCAr KysrDQo+PiAgIGFyY2gveDg2L2t2bS9zdm0uYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IDEyMCArKysrKysrKysrKysrKysrKy0NCj4+ICAgaW5jbHVkZS91YXBpL2xpbnV4L2t2bS5oICAg ICAgICAgICAgICAgICAgICAgIHwgICA5ICsrDQo+PiAgIDMgZmlsZXMgY2hhbmdlZCwgMTQ5IGlu c2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50 YXRpb24vdmlydHVhbC9rdm0vYW1kLW1lbW9yeS1lbmNyeXB0aW9uLnJzdCBiL0RvY3VtZW50YXRp b24vdmlydHVhbC9rdm0vYW1kLW1lbW9yeS1lbmNyeXB0aW9uLnJzdA0KPj4gaW5kZXggMGU5ZTFl OWY5Njg3Li4wNjBhYzIzMTZkNjkgMTAwNjQ0DQo+PiAtLS0gYS9Eb2N1bWVudGF0aW9uL3ZpcnR1 YWwva3ZtL2FtZC1tZW1vcnktZW5jcnlwdGlvbi5yc3QNCj4+ICsrKyBiL0RvY3VtZW50YXRpb24v dmlydHVhbC9rdm0vYW1kLW1lbW9yeS1lbmNyeXB0aW9uLnJzdA0KPj4gQEAgLTI2NSw2ICsyNjUs MzAgQEAgUmV0dXJuczogMCBvbiBzdWNjZXNzLCAtbmVnYXRpdmUgb24gZXJyb3INCj4+ICAgICAg ICAgICAgICAgICAgIF9fdTMyIHNlc3Npb25fbGVuOw0KPj4gICAgICAgICAgIH07DQo+PiAgIA0K Pj4gKzExLiBLVk1fU0VWX1NFTkRfVVBEQVRFX0RBVEENCj4+ICstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQo+PiArDQo+PiArVGhlIEtWTV9TRVZfU0VORF9VUERBVEVfREFUQSBjb21tYW5k IGNhbiBiZSB1c2VkIGJ5IHRoZSBoeXBlcnZpc29yIHRvIGVuY3J5cHQgdGhlDQo+PiArb3V0Z29p bmcgZ3Vlc3QgbWVtb3J5IHJlZ2lvbiB3aXRoIHRoZSBlbmNyeXB0aW9uIGNvbnRleHQgY3JlYXRp bmcgdXNpbmcNCj4gDQo+IHMvY3JlYXRpbmcvY3JlYXRlZC8NCj4gDQo+PiArS1ZNX1NFVl9TRU5E X1NUQVJULg0KPj4gKw0KPj4gK1BhcmFtZXRlcnMgKGluKTogc3RydWN0IGt2bV9zZXZfc2VuZF91 cGRhdGVfZGF0YQ0KPj4gKw0KPj4gK1JldHVybnM6IDAgb24gc3VjY2VzcywgLW5lZ2F0aXZlIG9u IGVycm9yDQo+PiArDQo+PiArOjoNCj4+ICsNCj4+ICsgICAgICAgIHN0cnVjdCBrdm1fc2V2X2xh dW5jaF9zZW5kX3VwZGF0ZV9kYXRhIHsNCj4+ICsgICAgICAgICAgICAgICAgX191NjQgaGRyX3Vh ZGRyOyAgICAgICAgLyogdXNlcnNwYWNlIGFkZHJlc3MgY29udGFpbmluZyB0aGUgcGFja2V0IGhl YWRlciAqLw0KPj4gKyAgICAgICAgICAgICAgICBfX3UzMiBoZHJfbGVuOw0KPj4gKw0KPj4gKyAg ICAgICAgICAgICAgICBfX3U2NCBndWVzdF91YWRkcjsgICAgICAvKiB0aGUgc291cmNlIG1lbW9y eSByZWdpb24gdG8gYmUgZW5jcnlwdGVkICovDQo+PiArICAgICAgICAgICAgICAgIF9fdTMyIGd1 ZXN0X2xlbjsNCj4+ICsNCj4+ICsgICAgICAgICAgICAgICAgX191NjQgdHJhbnNfdWFkZHI7ICAg ICAgLyogdGhlIGRlc3RpdGlvbiBtZW1vcnkgcmVnaW9uICAqLw0KPiANCj4gcy9kZXN0aXRpb24v ZGVzdGluYXRpb24vDQo+IA0KPj4gKyAgICAgICAgICAgICAgICBfX3UzMiB0cmFuc19sZW47DQo+ IA0KPiBUaG9zZSBhZGRyZXNzZXMgYXJlIGFsbCBzeXN0ZW0gcGh5c2ljYWwgYWRkcmVzc2VzLCBh Y2NvcmRpbmcgdG8gdGhlIGRvYy4NCj4gV2h5IGRvIHlvdSBjYWxsIHRoZW0gInVhZGRyIj8NCj4g DQoNCg0KRlcgYWNjZXB0cyB0aGUgc3lzdGVtIHBoeXNpY2FsIGFkZHJlc3MgYnV0IHRoZSB1c2Vy c3BhY2UgZG9lcyBub3Qga25vdw0KdGhlIHN5c3RlbSBwaHlzaWNhbCBpbnN0ZWFkIGl0IHdpbGwg Z2l2ZSBob3N0IHZpcnR1YWwgYWRkcmVzcyBhbmQgd2UNCndpbGwgZmluZCBpdHMgY29ycmVzcG9u ZGluZyBzeXN0ZW0gcGh5c2ljYWwgYWRkcmVzcyBhbmQgbWFrZSBhIEZXDQpjYWxsLiBUaGlzIGlz IGEgdXNlcnNwYWNlIGludGVyZmFjZSBhbmQgbm90IHRoZSBGVy4NCg0KDQo+PiArICAgICAgICB9 Ow0KPj4gKw0KPj4gICBSZWZlcmVuY2VzDQo+PiAgID09PT09PT09PT0NCj4+ICAgDQo+PiBkaWZm IC0tZ2l0IGEvYXJjaC94ODYva3ZtL3N2bS5jIGIvYXJjaC94ODYva3ZtL3N2bS5jDQo+PiBpbmRl eCAwYjA5MzdmNTM1MjAuLjhlODE1YTUzYzQyMCAxMDA2NDQNCj4+IC0tLSBhL2FyY2gveDg2L2t2 bS9zdm0uYw0KPj4gKysrIGIvYXJjaC94ODYva3ZtL3N2bS5jDQo+PiBAQCAtNDE4LDYgKzQxOCw3 IEBAIGVudW0gew0KPj4gICANCj4+ICAgc3RhdGljIHVuc2lnbmVkIGludCBtYXhfc2V2X2FzaWQ7 DQo+PiAgIHN0YXRpYyB1bnNpZ25lZCBpbnQgbWluX3Nldl9hc2lkOw0KPj4gK3N0YXRpYyB1bnNp Z25lZCBsb25nIHNldl9tZV9tYXNrOw0KPj4gICBzdGF0aWMgdW5zaWduZWQgbG9uZyAqc2V2X2Fz aWRfYml0bWFwOw0KPj4gICAjZGVmaW5lIF9fc21lX3BhZ2VfcGEoeCkgX19zbWVfc2V0KHBhZ2Vf dG9fcGZuKHgpIDw8IFBBR0VfU0hJRlQpDQo+PiAgIA0KPj4gQEAgLTEyMTYsMTYgKzEyMTcsMjEg QEAgc3RhdGljIGludCBhdmljX2dhX2xvZ19ub3RpZmllcih1MzIgZ2FfdGFnKQ0KPj4gICBzdGF0 aWMgX19pbml0IGludCBzZXZfaGFyZHdhcmVfc2V0dXAodm9pZCkNCj4+ICAgew0KPj4gICAJc3Ry dWN0IHNldl91c2VyX2RhdGFfc3RhdHVzICpzdGF0dXM7DQo+PiArCWludCBlYXgsIGVieDsNCj4+ ICAgCWludCByYzsNCj4+ICAgDQo+PiAtCS8qIE1heGltdW0gbnVtYmVyIG9mIGVuY3J5cHRlZCBn dWVzdHMgc3VwcG9ydGVkIHNpbXVsdGFuZW91c2x5ICovDQo+PiAtCW1heF9zZXZfYXNpZCA9IGNw dWlkX2VjeCgweDgwMDAwMDFGKTsNCj4+ICsJLyoNCj4+ICsJICogUXVlcnkgdGhlIG1lbW9yeSBl bmNyeXB0aW9uIGluZm9ybWF0aW9uLg0KPj4gKwkgKiAgRUJYOiAgQml0IDA6NSBQYWdldGFibGUg Yml0IHBvc2l0aW9uIHVzZWQgdG8gaW5kaWNhdGUgZW5jcnlwdGlvbiAoYWthIENiaXQpLg0KPj4g KwkgKiAgRUNYOiAgTWF4aW11bSBudW1iZXIgb2YgZW5jcnlwdGVkIGd1ZXN0cyBzdXBwb3J0ZWQg c2ltdWx0YW5lb3VzbHkuDQo+PiArCSAqICBFRFg6ICBNaW5pbXVtIEFTSUQgdmFsdWUgdGhhdCBz aG91bGQgYmUgdXNlZCBmb3IgU0VWIGd1ZXN0Lg0KPj4gKwkgKi8NCj4+ICsJY3B1aWQoMHg4MDAw MDAxZiwgJmVheCwgJmVieCwgJm1heF9zZXZfYXNpZCwgJm1pbl9zZXZfYXNpZCk7DQo+PiAgIA0K Pj4gICAJaWYgKCFtYXhfc2V2X2FzaWQpDQo+PiAgIAkJcmV0dXJuIDE7DQo+PiAgIA0KPj4gLQkv KiBNaW5pbXVtIEFTSUQgdmFsdWUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgU0VWIGd1ZXN0ICov DQo+PiAtCW1pbl9zZXZfYXNpZCA9IGNwdWlkX2VkeCgweDgwMDAwMDFGKTsNCj4+ICsJc2V2X21l X21hc2sgPSAxVUwgPDwgKGVieCAmIDB4M2YpOw0KPj4gICANCj4+ICAgCS8qIEluaXRpYWxpemUg U0VWIEFTSUQgYml0bWFwICovDQo+PiAgIAlzZXZfYXNpZF9iaXRtYXAgPSBiaXRtYXBfemFsbG9j KG1heF9zZXZfYXNpZCwgR0ZQX0tFUk5FTCk7DQo+PiBAQCAtNzA1OSw2ICs3MDY1LDEwOSBAQCBz dGF0aWMgaW50IHNldl9zZW5kX3N0YXJ0KHN0cnVjdCBrdm0gKmt2bSwgc3RydWN0IGt2bV9zZXZf Y21kICphcmdwKQ0KPj4gICAJcmV0dXJuIHJldDsNCj4+ICAgfQ0KPj4gICANCj4+ICtzdGF0aWMg aW50IHNldl9zZW5kX3VwZGF0ZV9kYXRhKHN0cnVjdCBrdm0gKmt2bSwgc3RydWN0IGt2bV9zZXZf Y21kICphcmdwKQ0KPj4gK3sNCj4+ICsJc3RydWN0IGt2bV9zZXZfaW5mbyAqc2V2ID0gJnRvX2t2 bV9zdm0oa3ZtKS0+c2V2X2luZm87DQo+PiArCXN0cnVjdCBzZXZfZGF0YV9zZW5kX3VwZGF0ZV9k YXRhICpkYXRhOw0KPj4gKwlzdHJ1Y3Qga3ZtX3Nldl9zZW5kX3VwZGF0ZV9kYXRhIHBhcmFtczsN Cj4+ICsJdm9pZCAqaGRyID0gTlVMTCwgKnRyYW5zX2RhdGEgPSBOVUxMOw0KPj4gKwlzdHJ1Y3Qg cGFnZSAqKmd1ZXN0X3BhZ2UgPSBOVUxMOw0KPiANCj4gQWgsIEkgc2VlIHdoeSB5b3UgZG8gaW5p dCB0aGVtIHRvIE5VTEwgLSAtV21heWJlLXVuaW5pdGlhbGl6ZWQuIFNlZSBiZWxvdy4NCj4gDQo+ PiArCXVuc2lnbmVkIGxvbmcgbjsNCj4+ICsJaW50IHJldCwgb2Zmc2V0Ow0KPj4gKw0KPj4gKwlp ZiAoIXNldl9ndWVzdChrdm0pKQ0KPj4gKwkJcmV0dXJuIC1FTk9UVFk7DQo+PiArDQo+PiArCWlm IChjb3B5X2Zyb21fdXNlcigmcGFyYW1zLCAodm9pZCBfX3VzZXIgKikodWludHB0cl90KWFyZ3At PmRhdGEsDQo+PiArCQkJc2l6ZW9mKHN0cnVjdCBrdm1fc2V2X3NlbmRfdXBkYXRlX2RhdGEpKSkN Cj4+ICsJCXJldHVybiAtRUZBVUxUOw0KPj4gKw0KPj4gKwlkYXRhID0ga3phbGxvYyhzaXplb2Yo KmRhdGEpLCBHRlBfS0VSTkVMKTsNCj4+ICsJaWYgKCFkYXRhKQ0KPj4gKwkJcmV0dXJuIC1FTk9N RU07DQo+PiArDQo+PiArCS8qIHVzZXJzcGFjZSB3YW50cyB0byBxdWVyeSBlaXRoZXIgaGVhZGVy IG9yIHRyYW5zIGxlbmd0aCAqLw0KPj4gKwlpZiAoIXBhcmFtcy50cmFuc19sZW4gfHwgIXBhcmFt cy5oZHJfbGVuKQ0KPj4gKwkJZ290byBjbWQ7DQo+PiArDQo+PiArCXJldCA9IC1FSU5WQUw7DQo+ PiArCWlmICghcGFyYW1zLnRyYW5zX3VhZGRyIHx8ICFwYXJhbXMuZ3Vlc3RfdWFkZHIgfHwNCj4+ ICsJICAgICFwYXJhbXMuZ3Vlc3RfbGVuIHx8ICFwYXJhbXMuaGRyX3VhZGRyKQ0KPj4gKwkJZ290 byBlX2ZyZWU7DQo+PiArDQo+PiArCS8qIENoZWNrIGlmIHdlIGFyZSBjcm9zc2luZyB0aGUgcGFn ZSBib3VuZHJ5ICovDQo+IA0KPiBXQVJOSU5HOiAnYm91bmRyeScgbWF5IGJlIG1pc3NwZWxsZWQg LSBwZXJoYXBzICdib3VuZGFyeSc/DQo+IA0KPiBTbyB0aGUgZmFjdCB0aGF0IHlvdSBoYXZlIHRv IGluaXQgbG9jYWwgdmFyaWFibGVzIHRvIE5VTEwgbWVhbnMgdGhhdCBnY2MNCj4gZG9lc24ndCBz ZWUgdGhlIHRoYXQga2ZyZWUoKSBjYW4gdGFrZSBhIE5VTEwuDQo+IA0KPiBCdXQgYWxzbywgeW91 IGNhbiByZXN0cnVjdHVyZSB5b3VyIGxhYmVscyBpbiBhIHdheSBzbyB0aGF0IGdjYyBzZWVzIHRo ZW0NCj4gcHJvcGVybHkgYW5kIGRvZXNuJ3QgaXNzdWUgdGhlIHdhcm5pbmcgZXZlbiB3aXRob3V0 IGhhdmluZyB0byBpbml0IHRob3NlDQo+IGxvY2FsIHZhcmlhYmxlcy4NCj4gDQo+IEFuZCBhbHNv LCB5b3UgY2FuIGNsZWFudXAgdGhhdCBmdW5jdGlvbiBhbmQgc3BsaXQgb3V0IHRoZSBoZWFkZXIg YW5kDQo+IHRyYW5zIGxlbmd0aCBxdWVyeSBmdW5jdGlvbmFsaXR5IGludG8gYSBzZXBhcmF0ZSBo ZWxwZXIgYW5kIHRoaXMgd2F5DQo+IG1ha2UgaXQgYSBsb3QgbW9yZSByZWFkYWJsZS4gSSBnYXZl IGl0IGEgdHJ5IGhlcmUgYW5kIGl0IGxvb2tzIG1vcmUNCj4gcmVhZGFibGUgdG8gbWUgYnV0IHRo aXMgY291bGQgYmUganVzdCBtZS4NCj4gDQo+IEkgY291bGQndmUgbWlzc2VkIHNvbWUgY2FzZSB0 b28uLi4gcGFzdGluZyB0aGUgd2hvbGUgdGhpbmcgZm9yIGVhc2llcg0KPiByZXZpZXcgdGhhbiBh cyBhIGRpZmY6DQo+IA0KDQpPa2F5LCBJIHdpbGwgdGFrZSBhIGxvb2sgYW5kIHdpbGwgcHJvYmFi bHkgcmV1c2UgeW91ciBmdW5jdGlvbnMuIHRoYW5rIHlvdS4NCg0KLUJyaWplc2gNCg0KPiANCj4g LS0tDQo+IC8qIFVzZXJzcGFjZSB3YW50cyB0byBxdWVyeSBlaXRoZXIgaGVhZGVyIG9yIHRyYW5z IGxlbmd0aC4gKi8NCj4gc3RhdGljIGludA0KPiBfX3Nldl9zZW5kX3VwZGF0ZV9kYXRhX3F1ZXJ5 X2xlbmd0aHMoc3RydWN0IGt2bSAqa3ZtLCBzdHJ1Y3Qga3ZtX3Nldl9jbWQgKmFyZ3AsDQo+IAkJ CQkgICAgIHN0cnVjdCBrdm1fc2V2X3NlbmRfdXBkYXRlX2RhdGEgKnBhcmFtcykNCj4gew0KPiAJ c3RydWN0IGt2bV9zZXZfaW5mbyAqc2V2ID0gJnRvX2t2bV9zdm0oa3ZtKS0+c2V2X2luZm87DQo+ IAlzdHJ1Y3Qgc2V2X2RhdGFfc2VuZF91cGRhdGVfZGF0YSBkYXRhOw0KPiANCj4gCW1lbXNldCgm ZGF0YSwgMCwgc2l6ZW9mKGRhdGEpKTsNCj4gDQo+IAlkYXRhLmhhbmRsZSA9IHNldi0+aGFuZGxl Ow0KPiAJc2V2X2lzc3VlX2NtZChrdm0sIFNFVl9DTURfU0VORF9VUERBVEVfREFUQSwgJmRhdGEs ICZhcmdwLT5lcnJvcik7DQo+IA0KPiAJcGFyYW1zLT5oZHJfbGVuICAgPSBkYXRhLmhkcl9sZW47 DQo+IAlwYXJhbXMtPnRyYW5zX2xlbiA9IGRhdGEudHJhbnNfbGVuOw0KPiANCj4gCWlmIChjb3B5 X3RvX3VzZXIoKHZvaWQgX191c2VyICopKHVpbnRwdHJfdClhcmdwLT5kYXRhLCBwYXJhbXMsDQo+ IAkJCSBzaXplb2Yoc3RydWN0IGt2bV9zZXZfc2VuZF91cGRhdGVfZGF0YSkpKQ0KPiAJCXJldHVy biAtRUZBVUxUOw0KPiANCj4gCXJldHVybiAwOw0KPiB9DQo+IA0KPiBzdGF0aWMgaW50IHNldl9z ZW5kX3VwZGF0ZV9kYXRhKHN0cnVjdCBrdm0gKmt2bSwgc3RydWN0IGt2bV9zZXZfY21kICphcmdw KQ0KPiB7DQo+IAlzdHJ1Y3Qga3ZtX3Nldl9pbmZvICpzZXYgPSAmdG9fa3ZtX3N2bShrdm0pLT5z ZXZfaW5mbzsNCj4gCXN0cnVjdCBzZXZfZGF0YV9zZW5kX3VwZGF0ZV9kYXRhICpkYXRhOw0KPiAJ c3RydWN0IGt2bV9zZXZfc2VuZF91cGRhdGVfZGF0YSBwYXJhbXM7DQo+IAlzdHJ1Y3QgcGFnZSAq Kmd1ZXN0X3BhZ2U7DQo+IAl2b2lkICpoZHIsICp0cmFuc19kYXRhOw0KPiAJdW5zaWduZWQgbG9u ZyBuOw0KPiAJaW50IHJldCwgb2Zmc2V0Ow0KPiANCj4gCWlmICghc2V2X2d1ZXN0KGt2bSkpDQo+ IAkJcmV0dXJuIC1FTk9UVFk7DQo+IA0KPiAJaWYgKGNvcHlfZnJvbV91c2VyKCZwYXJhbXMsDQo+ IAkJCSAgICh2b2lkIF9fdXNlciAqKSh1aW50cHRyX3QpYXJncC0+ZGF0YSwNCj4gCQkJICAgc2l6 ZW9mKHN0cnVjdCBrdm1fc2V2X3NlbmRfdXBkYXRlX2RhdGEpKSkNCj4gCQlyZXR1cm4gLUVGQVVM VDsNCj4gDQo+IAkvKiBVc2Vyc3BhY2Ugd2FudHMgdG8gcXVlcnkgZWl0aGVyIGhlYWRlciBvciB0 cmFucyBsZW5ndGggKi8NCj4gCWlmICghcGFyYW1zLnRyYW5zX2xlbiB8fCAhcGFyYW1zLmhkcl9s ZW4pDQo+IAkJcmV0dXJuIF9fc2V2X3NlbmRfdXBkYXRlX2RhdGFfcXVlcnlfbGVuZ3Rocyhrdm0s IGFyZ3AsICZwYXJhbXMpOw0KPiANCj4gCWlmICghcGFyYW1zLnRyYW5zX3VhZGRyIHx8ICFwYXJh bXMuZ3Vlc3RfdWFkZHIgfHwNCj4gCSAgICAhcGFyYW1zLmd1ZXN0X2xlbiB8fCAhcGFyYW1zLmhk cl91YWRkcikNCj4gCQlyZXR1cm4gLUVJTlZBTDsNCj4gDQo+IAkvKiBDaGVjayBpZiB3ZSBhcmUg Y3Jvc3NpbmcgdGhlIHBhZ2UgYm91bmRhcnk6ICovDQo+IAlvZmZzZXQgPSBwYXJhbXMuZ3Vlc3Rf dWFkZHIgJiAoUEFHRV9TSVpFIC0gMSk7DQo+IAlpZiAoKHBhcmFtcy5ndWVzdF9sZW4gKyBvZmZz ZXQgPiBQQUdFX1NJWkUpKQ0KPiAJCXJldHVybiAtRUlOVkFMOw0KPiANCj4gCWhkciA9IGttYWxs b2MocGFyYW1zLmhkcl9sZW4sIEdGUF9LRVJORUwpOw0KPiAJaWYgKCFoZHIpDQo+IAkJcmV0dXJu IC1FTk9NRU07DQo+IA0KPiAJcmV0ID0gLUVOT01FTTsNCj4gCXRyYW5zX2RhdGEgPSBrbWFsbG9j KHBhcmFtcy50cmFuc19sZW4sIEdGUF9LRVJORUwpOw0KPiAJaWYgKCF0cmFuc19kYXRhKQ0KPiAJ CWdvdG8gZnJlZV9oZHI7DQo+IA0KPiAJZGF0YSA9IGt6YWxsb2Moc2l6ZW9mKCpkYXRhKSwgR0ZQ X0tFUk5FTCk7DQo+ICAgICAgICAgIGlmICghZGF0YSkNCj4gICAgICAgICAgICAgICAgICBnb3Rv IGZyZWVfdHJhbnM7DQo+IA0KPiAJLyogUGluIGd1ZXN0IG1lbW9yeSAqLw0KPiAJcmV0ID0gLUVG QVVMVDsNCj4gCWd1ZXN0X3BhZ2UgPSBzZXZfcGluX21lbW9yeShrdm0sIHBhcmFtcy5ndWVzdF91 YWRkciAmIFBBR0VfTUFTSywgUEFHRV9TSVpFLCAmbiwgMCk7DQo+IAlpZiAoIWd1ZXN0X3BhZ2Up DQo+IAkJZ290byBmcmVlX2RhdGE7DQo+IA0KPiAJLyogVGhlIFNFTkRfVVBEQVRFX0RBVEEgY29t bWFuZCByZXF1aXJlcyBDLWJpdCB0byBiZSBhbHdheXMgc2V0LiAqLw0KPiAJZGF0YS0+Z3Vlc3Rf YWRkcmVzcwk9IChwYWdlX3RvX3BmbihndWVzdF9wYWdlWzBdKSA8PCBQQUdFX1NISUZUKSArIG9m ZnNldDsNCj4gCWRhdGEtPmd1ZXN0X2FkZHJlc3MgICAgIHw9IHNldl9tZV9tYXNrOw0KPiAJZGF0 YS0+Z3Vlc3RfbGVuCQk9IHBhcmFtcy5ndWVzdF9sZW47DQo+IAlkYXRhLT5oZHJfYWRkcmVzcwk9 IF9fcHNwX3BhKGhkcik7DQo+IAlkYXRhLT5oZHJfbGVuCQk9IHBhcmFtcy5oZHJfbGVuOw0KPiAJ ZGF0YS0+dHJhbnNfYWRkcmVzcwk9IF9fcHNwX3BhKHRyYW5zX2RhdGEpOw0KPiAJZGF0YS0+dHJh bnNfbGVuCQk9IHBhcmFtcy50cmFuc19sZW47DQo+IAlkYXRhLT5oYW5kbGUJCT0gc2V2LT5oYW5k bGU7DQo+IA0KPiAJcmV0ID0gc2V2X2lzc3VlX2NtZChrdm0sIFNFVl9DTURfU0VORF9VUERBVEVf REFUQSwgZGF0YSwgJmFyZ3AtPmVycm9yKTsNCj4gCWlmIChyZXQpDQo+IAkJZ290byB1bnBpbl9t ZW1vcnk7DQo+IA0KPiAJLyogQ29weSB0cmFuc3BvcnQgYnVmZmVyIHRvIHVzZXIgc3BhY2UuICov DQo+IAlyZXQgPSBjb3B5X3RvX3VzZXIoKHZvaWQgX191c2VyICopKHVpbnRwdHJfdClwYXJhbXMu dHJhbnNfdWFkZHIsIHRyYW5zX2RhdGEsIHBhcmFtcy50cmFuc19sZW4pOw0KPiAJaWYgKHJldCkN Cj4gCQlnb3RvIHVucGluX21lbW9yeTsNCj4gDQo+IAkvKiBDb3B5IHBhY2tldCBoZWFkZXIgdG8g dXNlcnNwYWNlLiAqLw0KPiAJcmV0ID0gY29weV90b191c2VyKCh2b2lkIF9fdXNlciAqKSh1aW50 cHRyX3QpcGFyYW1zLmhkcl91YWRkciwgaGRyLCBwYXJhbXMuaGRyX2xlbik7DQo+IA0KPiB1bnBp bl9tZW1vcnk6DQo+IAlzZXZfdW5waW5fbWVtb3J5KGt2bSwgZ3Vlc3RfcGFnZSwgbik7DQo+IA0K PiBmcmVlX2RhdGE6DQo+IAlrZnJlZShkYXRhKTsNCj4gDQo+IGZyZWVfdHJhbnM6DQo+IAlrZnJl ZSh0cmFuc19kYXRhKTsNCj4gDQo+IGZyZWVfaGRyOg0KPiAJa2ZyZWUoaGRyKTsNCj4gDQo+IAly ZXR1cm4gcmV0Ow0KPiB9DQo+IA0K