Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp699632imm; Fri, 1 Jun 2018 08:06:15 -0700 (PDT) X-Google-Smtp-Source: ADUXVKLuLCYabMf2w9LiumJfoNa8DkNPOyPjMXT7mRUhUt/f8yEqQDcCejO2LUcwX19IfhVG4G9l X-Received: by 2002:a17:902:b701:: with SMTP id d1-v6mr11639119pls.121.1527865575348; Fri, 01 Jun 2018 08:06:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527865575; cv=none; d=google.com; s=arc-20160816; b=q8ObM9fEYmGvDHcMEl2xwxilPWIirclIeI0uu2kgWtAdzhrh2odevmED+VIshyTGyM QIbcHkLNdlkDMS+6i0mc/2wvxLAujNAW6/yB5EPzLE8/j3CpU1yzqCnKmNi6sGP/VGDa lYZpbKaR6tQrsk6wi7a8fLmIaYYifVbpFUSAyxP74oZ0W9dVksYc9tro12d4+/QsXEPO gb23ArceJO5NN//UI1gI6mDd1ANEF97MA+MitxEoaIPTcvHqtpXh8/7jJHsu+Gu4VE9k 7RayxwatpB9k8GVuZwr7Y4pED21W98SdRllczpk7MBm59PcnSJ7kdTZiC8ntHbYa9s3B n3Xg== 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-language:accept-language:message-id:date:thread-index :thread-topic:subject:to:from:arc-authentication-results; bh=h8VZna0qP2NA1cDvDt8/4dsGl6CLocIiPx6WeLOeD0A=; b=qLNGeWDnYG/I3KLVPRLMzwH7x2dSXsuH5gUGlzjmMlZrHw2tyvmwVy23tylyuwaUjP PimCgdecroN3mRa3I8tGRuMoEB2BMATEuiDJpVXZ5bZR0UZl2H44vYgIASRKUL+KSRvK LmwON7O2Oh/A5On6tw9QbvHCADRqBh/Khqy1i1IEjd7RlyHjusabO0Tj3Mr7Pp+HM52n jgQCyC2rr6VDGoG5pvxtJ/UiFEJ1apYzwgPKtxgvAdfH/v+7maqCkULoRYz/aEAT2tCP R7tuy/E4+HRQFlb8IuUgvDjYx/kM93PkB3Yx9250WxKs2uEarqitBmkhGlmUv8WXS7ah g9Vw== ARC-Authentication-Results: i=1; mx.google.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 w1-v6si23906540ply.425.2018.06.01.08.05.40; Fri, 01 Jun 2018 08:06:15 -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; 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 S1752603AbeFAPFQ (ORCPT + 99 others); Fri, 1 Jun 2018 11:05:16 -0400 Received: from szxga01-in.huawei.com ([45.249.212.187]:5933 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751788AbeFAPFM (ORCPT ); Fri, 1 Jun 2018 11:05:12 -0400 Received: from DGGEMA403-HUB.china.huawei.com (unknown [172.30.72.56]) by Forcepoint Email with ESMTP id BAF66EBDD7938; Fri, 1 Jun 2018 23:04:57 +0800 (CST) Received: from DGGEMA424-HUB.china.huawei.com (10.1.198.157) by DGGEMA403-HUB.china.huawei.com (10.3.20.44) with Microsoft SMTP Server (TLS) id 14.3.382.0; Fri, 1 Jun 2018 23:04:58 +0800 Received: from DGGEMA503-MBX.china.huawei.com ([169.254.1.111]) by dggema424-hub.china.huawei.com ([10.1.198.157]) with mapi id 14.03.0382.000; Fri, 1 Jun 2018 23:04:54 +0800 From: gengdongjiu To: Marc Zyngier , "rkrcmar@redhat.com" , "corbet@lwn.net" , "christoffer.dall@arm.com" , "linux@armlinux.org.uk" , "catalin.marinas@arm.com" , "will.deacon@arm.com" , "kvm@vger.kernel.org" , "linux-doc@vger.kernel.org" , "james.morse@arm.com" , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" , "linux-acpi@vger.kernel.org" Subject: Re: [PATCH v1 2/2] arm/arm64: KVM: Add KVM_GET/SET_VCPU_EVENTS Thread-Topic: [PATCH v1 2/2] arm/arm64: KVM: Add KVM_GET/SET_VCPU_EVENTS Thread-Index: AdP5sw1ct61VZXUpRE2rs2FaQQd3oA== Date: Fri, 1 Jun 2018 15:04:53 +0000 Message-ID: <0184EA26B2509940AA629AE1405DD7F201CAF42E@DGGEMA503-MBX.china.huawei.com> Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.45.53.132] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGkgTWFyYywNCg0KPiANCj4gT24gMzEvMDUvMTggMTQ6MDgsIERvbmdqaXUgR2VuZyB3cm90ZToN Cj4gPiBGb3IgdGhlIG1pZ3JhdGluZyBWTXMsIHVzZXIgc3BhY2UgbWF5IG5lZWQgdG8ga25vdyB0 aGUgZXhjZXB0aW9uDQo+ID4gc3RhdGUuIEZvciBleGFtcGxlLCBpbiB0aGUgbWFjaGluZSBBLCBL Vk0gbWFrZSBhbiBTRXJyb3IgcGVuZGluZywgd2hlbg0KPiA+IG1pZ3JhdGUgdG8gQiwgS1ZNIGFs c28gbmVlZHMgdG8gcGVuZCBhbiBTRXJyb3IuDQo+ID4NCj4gPiBUaGlzIG5ldyBJT0NUTCBleHBv cnRzIHVzZXItaW52aXNpYmxlIHN0YXRlcyByZWxhdGVkIHRvIFNFcnJvci4NCj4gPiBUb2dldGhl ciB3aXRoIGFwcHJvcHJpYXRlIHVzZXIgc3BhY2UgY2hhbmdlcywgdXNlciBzcGFjZSBjYW4gZ2V0 L3NldA0KPiA+IHRoZSBTRXJyb3IgZXhjZXB0aW9uIHN0YXRlIHRvIGRvIG1pZ3JhdGUvc25hcHNo b3Qvc3VzcGVuZC4NCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IERvbmdqaXUgR2VuZyA8Z2VuZ2Rv bmdqaXVAaHVhd2VpLmNvbT4NCj4gPiAtLQ0KPiA+IHRoaXMgc2VyaWVzIHBhdGNoIGlzIHNlcGFy YXRlZCBmcm9tDQo+ID4gaHR0cHM6Ly93d3cuc3Bpbmljcy5uZXQvbGlzdHMva3ZtL21zZzE2ODkx Ny5odG1sDQo+ID4gY2hhbmdlIHNpbmNlIFYxMjoNCj4gPiAxLiBjaGFuZ2UgKHZjcHUtPmFyY2gu aGNyX2VsMiAmIEhDUl9WU0UpIHRvICEhKHZjcHUtPmFyY2guaGNyX2VsMiAmDQo+ID4gSENSX1ZT RSkgaW4ga3ZtX2FybV92Y3B1X2dldF9ldmVudHMoKQ0KPiA+DQo+ID4gQ2hhbmdlIHNpbmNlIFYx MToNCj4gPiBBZGRyZXNzIEphbWVzJ3MgY29tbWVudHMsIHRoYW5rcyBKYW1lcyAxLiBBbGlnbiB0 aGUgc3RydWN0IG9mDQo+ID4ga3ZtX3ZjcHVfZXZlbnRzIHRvIDY0IGJ5dGVzIDIuIEF2b2lkIGV4 cG9zaW5nIHRoZSBzdGFsZSBFU1IgdmFsdWUgaW4NCj4gPiB0aGUga3ZtX2FybV92Y3B1X2dldF9l dmVudHMoKSAzLiBDaGFuZ2UgdmFyaWFibGVzICdpbmplY3RlZCcgbmFtZSB0bw0KPiA+ICdzZXJy b3JfcGVuZGluZycgaW4gdGhlIGt2bV9hcm1fdmNwdV9zZXRfZXZlbnRzKCkgNC4gQ2hhbmdlIHRv DQo+ID4gc2l6ZW9mKGV2ZW50cykgZnJvbSBzaXplb2Yoc3RydWN0IGt2bV92Y3B1X2V2ZW50cykg aW4NCj4gPiBrdm1fYXJjaF92Y3B1X2lvY3RsKCkNCj4gPg0KPiA+IENoYW5nZSBzaW5jZSBWMTA6 DQo+ID4gQWRkcmVzcyBKYW1lcydzIGNvbW1lbnRzLCB0aGFua3MgSmFtZXMgMS4gTWVyZ2UgdGhl IGhlbHBlciBmdW5jdGlvbg0KPiA+IHdpdGggdGhlIHVzZXIuDQo+ID4gMi4gTW92ZSB0aGUgSVNT X01BU0sgaW50byBwZW5kX2d1ZXN0X3NlcnJvcigpIHRvIGNsZWFyIHRvcCBiaXRzIDMuDQo+ID4g TWFrZSBrdm1fdmNwdV9ldmVudHMgc3RydWN0IGFsaWduIHRvIDQgYnl0ZXMgNC4gQWRkIHNvbWV0 aGluZyBjaGVjayBpbg0KPiA+IHRoZSBrdm1fYXJtX3ZjcHVfc2V0X2V2ZW50cygpIDUuIENoZWNr IGt2bV9hcm1fdmNwdV9nZXQvc2V0X2V2ZW50cygpJ3MNCj4gPiByZXR1cm4gdmFsdWUuDQo+ID4g Ni4gSW5pdGlhbGlzZSBrdm1fdmNwdV9ldmVudHMgdG8gMCBzbyB0aGF0IHBhZGRpbmcgdHJhbnNm ZXJyZWQgdG8gdXNlci1zcGFjZSBkb2Vzbid0DQo+ID4gICAgY29udGFpbiBrZXJuZWwgc3RhY2su DQo+ID4gLS0tDQo+ID4gIERvY3VtZW50YXRpb24vdmlydHVhbC9rdm0vYXBpLnR4dCAgICB8IDMx ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0NCj4gPiAgYXJjaC9hcm0vaW5jbHVkZS9h c20va3ZtX2hvc3QuaCAgICAgIHwgIDYgKysrKysrDQo+ID4gIGFyY2gvYXJtL2t2bS9ndWVzdC5j ICAgICAgICAgICAgICAgICB8IDEyICsrKysrKysrKysrKw0KPiA+ICBhcmNoL2FybTY0L2luY2x1 ZGUvYXNtL2t2bV9lbXVsYXRlLmggfCAgNSArKysrKw0KPiA+ICBhcmNoL2FybTY0L2luY2x1ZGUv YXNtL2t2bV9ob3N0LmggICAgfCAgNyArKysrKysrDQo+ID4gIGFyY2gvYXJtNjQvaW5jbHVkZS91 YXBpL2FzbS9rdm0uaCAgICB8IDEzICsrKysrKysrKysrKysNCj4gPiAgYXJjaC9hcm02NC9rdm0v Z3Vlc3QuYyAgICAgICAgICAgICAgIHwgMzYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrDQo+ID4gIGFyY2gvYXJtNjQva3ZtL2luamVjdF9mYXVsdC5jICAgICAgICB8ICA3ICsr KysrKy0NCj4gPiAgYXJjaC9hcm02NC9rdm0vcmVzZXQuYyAgICAgICAgICAgICAgIHwgIDEgKw0K PiA+ICB2aXJ0L2t2bS9hcm0vYXJtLmMgICAgICAgICAgICAgICAgICAgfCAyMSArKysrKysrKysr KysrKysrKysrKysNCj4gPiAgMTAgZmlsZXMgY2hhbmdlZCwgMTM1IGluc2VydGlvbnMoKyksIDQg ZGVsZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi92aXJ0dWFs L2t2bS9hcGkudHh0DQo+ID4gYi9Eb2N1bWVudGF0aW9uL3ZpcnR1YWwva3ZtL2FwaS50eHQNCj4g PiBpbmRleCBmZGFjOTY5Li44ODk2NzM3IDEwMDY0NA0KPiA+IC0tLSBhL0RvY3VtZW50YXRpb24v dmlydHVhbC9rdm0vYXBpLnR4dA0KPiA+ICsrKyBiL0RvY3VtZW50YXRpb24vdmlydHVhbC9rdm0v YXBpLnR4dA0KPiA+IEBAIC04MzUsMTEgKzgzNSwxMyBAQCBzdHJ1Y3Qga3ZtX2Nsb2NrX2RhdGEg ew0KPiA+DQo+ID4gIENhcGFiaWxpdHk6IEtWTV9DQVBfVkNQVV9FVkVOVFMNCj4gPiAgRXh0ZW5k ZWQgYnk6IEtWTV9DQVBfSU5UUl9TSEFET1cNCj4gPiAtQXJjaGl0ZWN0dXJlczogeDg2DQo+ID4g K0FyY2hpdGVjdHVyZXM6IHg4NiwgYXJtLCBhcm02NA0KPiA+ICBUeXBlOiB2bSBpb2N0bA0KPiA+ ICBQYXJhbWV0ZXJzOiBzdHJ1Y3Qga3ZtX3ZjcHVfZXZlbnQgKG91dCkNCj4gPiAgUmV0dXJuczog MCBvbiBzdWNjZXNzLCAtMSBvbiBlcnJvcg0KPiA+DQo+ID4gK1g4NjoNCj4gPiArDQo+ID4gIEdl dHMgY3VycmVudGx5IHBlbmRpbmcgZXhjZXB0aW9ucywgaW50ZXJydXB0cywgYW5kIE5NSXMgYXMg d2VsbCBhcw0KPiA+IHJlbGF0ZWQgIHN0YXRlcyBvZiB0aGUgdmNwdS4NCj4gPg0KPiA+IEBAIC04 ODEsMTUgKzg4MywzMiBAQCBPbmx5IHR3byBmaWVsZHMgYXJlIGRlZmluZWQgaW4gdGhlIGZsYWdz IGZpZWxkOg0KPiA+ICAtIEtWTV9WQ1BVRVZFTlRfVkFMSURfU01NIG1heSBiZSBzZXQgaW4gdGhl IGZsYWdzIGZpZWxkIHRvIHNpZ25hbCB0aGF0DQo+ID4gICAgc21pIGNvbnRhaW5zIGEgdmFsaWQg c3RhdGUuDQo+ID4NCj4gPiArQVJNLCBBUk02NDoNCj4gPiArDQo+ID4gK0dldHMgY3VycmVudGx5 IHBlbmRpbmcgU0Vycm9yIGV4Y2VwdGlvbnMgYXMgd2VsbCBhcyByZWxhdGVkIHN0YXRlcyBvZiB0 aGUgdmNwdS4NCj4gPiArDQo+ID4gK3N0cnVjdCBrdm1fdmNwdV9ldmVudHMgew0KPiA+ICsJc3Ry dWN0IHsNCj4gPiArCQlfX3U4IHNlcnJvcl9wZW5kaW5nOw0KPiA+ICsJCV9fdTggc2Vycm9yX2hh c19lc3I7DQo+ID4gKwkJLyogQWxpZ24gaXQgdG8gOCBieXRlcyAqLw0KPiA+ICsJCV9fdTggcGFk WzZdOw0KPiA+ICsJCV9fdTY0IHNlcnJvcl9lc3I7DQo+ID4gKwl9IGV4Y2VwdGlvbjsNCj4gPiAr CV9fdTMyIHJlc2VydmVkWzEyXTsNCj4gPiArfTsNCj4gPiArDQo+ID4gIDQuMzIgS1ZNX1NFVF9W Q1BVX0VWRU5UUw0KPiA+DQo+ID4gLUNhcGFiaWxpdHk6IEtWTV9DQVBfVkNQVV9FVkVOVFMNCj4g PiArQ2FwZWJpbGl0eTogS1ZNX0NBUF9WQ1BVX0VWRU5UUw0KPiA+ICBFeHRlbmRlZCBieTogS1ZN X0NBUF9JTlRSX1NIQURPVw0KPiA+IC1BcmNoaXRlY3R1cmVzOiB4ODYNCj4gPiArQXJjaGl0ZWN0 dXJlczogeDg2LCBhcm0sIGFybTY0DQo+ID4gIFR5cGU6IHZtIGlvY3RsDQo+ID4gIFBhcmFtZXRl cnM6IHN0cnVjdCBrdm1fdmNwdV9ldmVudCAoaW4pDQo+ID4gIFJldHVybnM6IDAgb24gc3VjY2Vz cywgLTEgb24gZXJyb3INCj4gPg0KPiA+ICtYODY6DQo+ID4gKw0KPiA+ICBTZXQgcGVuZGluZyBl eGNlcHRpb25zLCBpbnRlcnJ1cHRzLCBhbmQgTk1JcyBhcyB3ZWxsIGFzIHJlbGF0ZWQNCj4gPiBz dGF0ZXMgb2YgdGhlICB2Y3B1Lg0KPiA+DQo+ID4gQEAgLTkxMCw2ICs5MjksMTIgQEAgc2hhbGwg YmUgd3JpdHRlbiBpbnRvIHRoZSBWQ1BVLg0KPiA+DQo+ID4gIEtWTV9WQ1BVRVZFTlRfVkFMSURf U01NIGNhbiBvbmx5IGJlIHNldCBpZiBLVk1fQ0FQX1g4Nl9TTU0gaXMgYXZhaWxhYmxlLg0KPiA+ DQo+ID4gK0FSTSwgQVJNNjQ6DQo+ID4gKw0KPiA+ICtTZXQgcGVuZGluZyBTRXJyb3IgZXhjZXB0 aW9ucyBhcyB3ZWxsIGFzIHJlbGF0ZWQgc3RhdGVzIG9mIHRoZSB2Y3B1Lg0KPiA+ICsNCj4gPiAr U2VlIEtWTV9HRVRfVkNQVV9FVkVOVFMgZm9yIHRoZSBkYXRhIHN0cnVjdHVyZS4NCj4gPiArDQo+ ID4NCj4gPiAgNC4zMyBLVk1fR0VUX0RFQlVHUkVHUw0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2Fy Y2gvYXJtL2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgNCj4gPiBiL2FyY2gvYXJtL2luY2x1ZGUvYXNt L2t2bV9ob3N0LmggaW5kZXggYzdjMjhjOC4uMzlmOTkwMSAxMDA2NDQNCj4gPiAtLS0gYS9hcmNo L2FybS9pbmNsdWRlL2FzbS9rdm1faG9zdC5oDQo+ID4gKysrIGIvYXJjaC9hcm0vaW5jbHVkZS9h c20va3ZtX2hvc3QuaA0KPiA+IEBAIC0yMTMsNiArMjEzLDEyIEBAIHVuc2lnbmVkIGxvbmcga3Zt X2FybV9udW1fcmVncyhzdHJ1Y3Qga3ZtX3ZjcHUNCj4gPiAqdmNwdSk7ICBpbnQga3ZtX2FybV9j b3B5X3JlZ19pbmRpY2VzKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0DQo+ID4gX191c2VyICpp bmRpY2VzKTsgIGludCBrdm1fYXJtX2dldF9yZWcoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBjb25z dA0KPiA+IHN0cnVjdCBrdm1fb25lX3JlZyAqcmVnKTsgIGludCBrdm1fYXJtX3NldF9yZWcoc3Ry dWN0IGt2bV92Y3B1ICp2Y3B1LA0KPiA+IGNvbnN0IHN0cnVjdCBrdm1fb25lX3JlZyAqcmVnKTsN Cj4gPiAraW50IGt2bV9hcm1fdmNwdV9nZXRfZXZlbnRzKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwN Cj4gPiArCQkJc3RydWN0IGt2bV92Y3B1X2V2ZW50cyAqZXZlbnRzKTsNCj4gPiArDQo+ID4gK2lu dCBrdm1fYXJtX3ZjcHVfc2V0X2V2ZW50cyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsDQo+ID4gKwkJ CXN0cnVjdCBrdm1fdmNwdV9ldmVudHMgKmV2ZW50cyk7DQo+ID4gKw0KPiA+ICB1bnNpZ25lZCBs b25nIGt2bV9jYWxsX2h5cCh2b2lkICpoeXBmbiwgLi4uKTsgIHZvaWQNCj4gPiBmb3JjZV92bV9l eGl0KGNvbnN0IGNwdW1hc2tfdCAqbWFzayk7DQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvYXJjaC9h cm0va3ZtL2d1ZXN0LmMgYi9hcmNoL2FybS9rdm0vZ3Vlc3QuYyBpbmRleA0KPiA+IGExOGYzM2Uu LmM2ODVmMGUgMTAwNjQ0DQo+ID4gLS0tIGEvYXJjaC9hcm0va3ZtL2d1ZXN0LmMNCj4gPiArKysg Yi9hcmNoL2FybS9rdm0vZ3Vlc3QuYw0KPiA+IEBAIC0yNjEsNiArMjYxLDE4IEBAIGludCBrdm1f YXJjaF92Y3B1X2lvY3RsX3NldF9zcmVncyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsDQo+ID4gIAly ZXR1cm4gLUVJTlZBTDsNCj4gPiAgfQ0KPiA+DQo+ID4gK2ludCBrdm1fYXJtX3ZjcHVfZ2V0X2V2 ZW50cyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsDQo+ID4gKwkJCXN0cnVjdCBrdm1fdmNwdV9ldmVu dHMgKmV2ZW50cykNCj4gPiArew0KPiA+ICsJcmV0dXJuIC1FSU5WQUw7DQo+ID4gK30NCj4gPiAr DQo+ID4gK2ludCBrdm1fYXJtX3ZjcHVfc2V0X2V2ZW50cyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUs DQo+ID4gKwkJCXN0cnVjdCBrdm1fdmNwdV9ldmVudHMgKmV2ZW50cykNCj4gPiArew0KPiA+ICsJ cmV0dXJuIC1FSU5WQUw7DQo+ID4gK30NCj4gPiArDQo+ID4gIGludCBfX2F0dHJpYnV0ZV9jb25z dF9fIGt2bV90YXJnZXRfY3B1KHZvaWQpICB7DQo+ID4gIAlzd2l0Y2ggKHJlYWRfY3B1aWRfcGFy dCgpKSB7DQo+ID4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20va3ZtX2VtdWxh dGUuaA0KPiA+IGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9rdm1fZW11bGF0ZS5oDQo+ID4gaW5k ZXggMWRhYjNhOS4uMThmNjFmZiAxMDA2NDQNCj4gPiAtLS0gYS9hcmNoL2FybTY0L2luY2x1ZGUv YXNtL2t2bV9lbXVsYXRlLmgNCj4gPiArKysgYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2t2bV9l bXVsYXRlLmgNCj4gPiBAQCAtODEsNiArODEsMTEgQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBs b25nICp2Y3B1X2hjcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpDQo+ID4gIAlyZXR1cm4gKHVuc2ln bmVkIGxvbmcgKikmdmNwdS0+YXJjaC5oY3JfZWwyOyAgfQ0KPiA+DQo+ID4gK3N0YXRpYyBpbmxp bmUgdW5zaWduZWQgbG9uZyB2Y3B1X2dldF92c2VzcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpIHsN Cj4gPiArCXJldHVybiB2Y3B1LT5hcmNoLnZzZXNyX2VsMjsNCj4gPiArfQ0KPiA+ICsNCj4gPiAg c3RhdGljIGlubGluZSB2b2lkIHZjcHVfc2V0X3ZzZXNyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwg dTY0IHZzZXNyKQ0KPiA+IHsNCj4gPiAgCXZjcHUtPmFyY2gudnNlc3JfZWwyID0gdnNlc3I7DQo+ ID4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20va3ZtX2hvc3QuaA0KPiA+IGIv YXJjaC9hcm02NC9pbmNsdWRlL2FzbS9rdm1faG9zdC5oDQo+ID4gaW5kZXggNDY5ZGU4YS4uMzU3 MzA0YSAxMDA2NDQNCj4gPiAtLS0gYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgN Cj4gPiArKysgYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgNCj4gPiBAQCAtMzM1 LDYgKzMzNSwxMSBAQCB1bnNpZ25lZCBsb25nIGt2bV9hcm1fbnVtX3JlZ3Moc3RydWN0IGt2bV92 Y3B1DQo+ID4gKnZjcHUpOyAgaW50IGt2bV9hcm1fY29weV9yZWdfaW5kaWNlcyhzdHJ1Y3Qga3Zt X3ZjcHUgKnZjcHUsIHU2NA0KPiA+IF9fdXNlciAqaW5kaWNlcyk7ICBpbnQga3ZtX2FybV9nZXRf cmVnKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgY29uc3QNCj4gPiBzdHJ1Y3Qga3ZtX29uZV9yZWcg KnJlZyk7ICBpbnQga3ZtX2FybV9zZXRfcmVnKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwNCj4gPiBj b25zdCBzdHJ1Y3Qga3ZtX29uZV9yZWcgKnJlZyk7DQo+ID4gK2ludCBrdm1fYXJtX3ZjcHVfZ2V0 X2V2ZW50cyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsDQo+ID4gKwkJCXN0cnVjdCBrdm1fdmNwdV9l dmVudHMgKmV2ZW50cyk7DQo+ID4gKw0KPiA+ICtpbnQga3ZtX2FybV92Y3B1X3NldF9ldmVudHMo c3RydWN0IGt2bV92Y3B1ICp2Y3B1LA0KPiA+ICsJCQlzdHJ1Y3Qga3ZtX3ZjcHVfZXZlbnRzICpl dmVudHMpOw0KPiA+DQo+ID4gICNkZWZpbmUgS1ZNX0FSQ0hfV0FOVF9NTVVfTk9USUZJRVINCj4g PiAgaW50IGt2bV91bm1hcF9odmEoc3RydWN0IGt2bSAqa3ZtLCB1bnNpZ25lZCBsb25nIGh2YSk7 IEBAIC0zNjMsNg0KPiA+ICszNjgsOCBAQCB2b2lkIGhhbmRsZV9leGl0X2Vhcmx5KHN0cnVjdCBr dm1fdmNwdSAqdmNwdSwgc3RydWN0IGt2bV9ydW4NCj4gPiAqcnVuLCAgaW50IGt2bV9wZXJmX2lu aXQodm9pZCk7ICBpbnQga3ZtX3BlcmZfdGVhcmRvd24odm9pZCk7DQo+ID4NCj4gPiArdm9pZCBr dm1fc2V0X3NlaV9lc3Ioc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1NjQgc3luZHJvbWUpOw0KPiA+ ICsNCj4gPiAgc3RydWN0IGt2bV92Y3B1ICprdm1fbXBpZHJfdG9fdmNwdShzdHJ1Y3Qga3ZtICpr dm0sIHVuc2lnbmVkIGxvbmcNCj4gPiBtcGlkcik7DQo+ID4NCj4gPiAgdm9pZCBfX2t2bV9zZXRf dHBpZHJfZWwyKHU2NCB0cGlkcl9lbDIpOyBkaWZmIC0tZ2l0DQo+ID4gYS9hcmNoL2FybTY0L2lu Y2x1ZGUvdWFwaS9hc20va3ZtLmgNCj4gPiBiL2FyY2gvYXJtNjQvaW5jbHVkZS91YXBpL2FzbS9r dm0uaA0KPiA+IGluZGV4IDA0YjMyNTYuLmRmNGZhZWUgMTAwNjQ0DQo+ID4gLS0tIGEvYXJjaC9h cm02NC9pbmNsdWRlL3VhcGkvYXNtL2t2bS5oDQo+ID4gKysrIGIvYXJjaC9hcm02NC9pbmNsdWRl L3VhcGkvYXNtL2t2bS5oDQo+ID4gQEAgLTM5LDYgKzM5LDcgQEANCj4gPiAgI2RlZmluZSBfX0tW TV9IQVZFX0dVRVNUX0RFQlVHDQo+ID4gICNkZWZpbmUgX19LVk1fSEFWRV9JUlFfTElORQ0KPiA+ ICAjZGVmaW5lIF9fS1ZNX0hBVkVfUkVBRE9OTFlfTUVNDQo+ID4gKyNkZWZpbmUgX19LVk1fSEFW RV9WQ1BVX0VWRU5UUw0KPiA+DQo+ID4gICNkZWZpbmUgS1ZNX0NPQUxFU0NFRF9NTUlPX1BBR0Vf T0ZGU0VUIDENCj4gPg0KPiA+IEBAIC0xNTMsNiArMTU0LDE4IEBAIHN0cnVjdCBrdm1fc3luY19y ZWdzIHsgIHN0cnVjdA0KPiA+IGt2bV9hcmNoX21lbW9yeV9zbG90IHsgIH07DQo+ID4NCj4gPiAr LyogZm9yIEtWTV9HRVQvU0VUX1ZDUFVfRVZFTlRTICovDQo+ID4gK3N0cnVjdCBrdm1fdmNwdV9l dmVudHMgew0KPiA+ICsJc3RydWN0IHsNCj4gPiArCQlfX3U4IHNlcnJvcl9wZW5kaW5nOw0KPiA+ ICsJCV9fdTggc2Vycm9yX2hhc19lc3I7DQo+ID4gKwkJLyogQWxpZ24gaXQgdG8gOCBieXRlcyAq Lw0KPiA+ICsJCV9fdTggcGFkWzZdOw0KPiA+ICsJCV9fdTY0IHNlcnJvcl9lc3I7DQo+ID4gKwl9 IGV4Y2VwdGlvbjsNCj4gPiArCV9fdTMyIHJlc2VydmVkWzEyXTsNCj4gPiArfTsNCj4gPiArDQo+ ID4gIC8qIElmIHlvdSBuZWVkIHRvIGludGVycHJldCB0aGUgaW5kZXggdmFsdWVzLCBoZXJlIGlz IHRoZSBrZXk6ICovDQo+ID4gICNkZWZpbmUgS1ZNX1JFR19BUk1fQ09QUk9DX01BU0sJCTB4MDAw MDAwMDAwRkZGMDAwMA0KPiA+ICAjZGVmaW5lIEtWTV9SRUdfQVJNX0NPUFJPQ19TSElGVAkxNg0K PiA+IGRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2t2bS9ndWVzdC5jIGIvYXJjaC9hcm02NC9rdm0v Z3Vlc3QuYyBpbmRleA0KPiA+IDU2YTAyNjAuLjcxZDM4NDEgMTAwNjQ0DQo+ID4gLS0tIGEvYXJj aC9hcm02NC9rdm0vZ3Vlc3QuYw0KPiA+ICsrKyBiL2FyY2gvYXJtNjQva3ZtL2d1ZXN0LmMNCj4g PiBAQCAtMjg5LDYgKzI4OSw0MiBAQCBpbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfc3JlZ3Mo c3RydWN0IGt2bV92Y3B1ICp2Y3B1LA0KPiA+ICAJcmV0dXJuIC1FSU5WQUw7DQo+ID4gIH0NCj4g Pg0KPiA+ICtpbnQga3ZtX2FybV92Y3B1X2dldF9ldmVudHMoc3RydWN0IGt2bV92Y3B1ICp2Y3B1 LA0KPiA+ICsJCQlzdHJ1Y3Qga3ZtX3ZjcHVfZXZlbnRzICpldmVudHMpDQo+ID4gK3sNCj4gPiAr CWV2ZW50cy0+ZXhjZXB0aW9uLnNlcnJvcl9wZW5kaW5nID0gISEodmNwdS0+YXJjaC5oY3JfZWwy ICYgSENSX1ZTRSk7DQo+ID4gKwlldmVudHMtPmV4Y2VwdGlvbi5zZXJyb3JfaGFzX2VzciA9DQo+ ID4gKwkJCWNwdXNfaGF2ZV9jb25zdF9jYXAoQVJNNjRfSEFTX1JBU19FWFROKSAmJg0KPiA+ICsJ CQkJCSghIXZjcHVfZ2V0X3ZzZXNyKHZjcHUpKTsNCj4gDQo+IFRoaXMgaXMgb2RkLiBJc24ndCBW U0VTUj09MCBhIHZhbGlkIHZhbHVlPyBBbmQgaXNuJ3Qgc2Vycm9yX2hhc19lc3IgYWx3YXlzIHRy dWUgd2hlbiBBUk02NF9IQVNfUkFTX0VYVE4gaXMgc2V0Pw0KDQpBbiBhbGwtemVybyBTRXJyb3Ig RVNSIG5vdyBtZWFuczogJ1JBUyBlcnJvcjogVW5jYXRlZ29yaXplZCcgaW5zdGVhZCBvZiAnbm8g dmFsaWQgSVNTJy4geWVzLCBJIHRoaW5rIHRoZSBWU0VTUiBjYW4gYmUgMC4gVGhhbmtzIGZvciB0 aGUgcG9pbnRpbmcgb3V0LiBTbyBpdCBpcyBiZXR0ZXIgdG8gd3JpdGUgYXMgc2hvd24gYmxvdzoN Cg0KZXZlbnRzLT5leGNlcHRpb24uc2Vycm9yX2hhc19lc3IgPSBjcHVzX2hhdmVfY29uc3RfY2Fw KEFSTTY0X0hBU19SQVNfRVhUTik7DQoNCj4gPiArDQo+ID4gKwlpZiAoZXZlbnRzLT5leGNlcHRp b24uc2Vycm9yX3BlbmRpbmcgJiYNCj4gPiArCQlldmVudHMtPmV4Y2VwdGlvbi5zZXJyb3JfaGFz X2VzcikNCj4gPiArCQlldmVudHMtPmV4Y2VwdGlvbi5zZXJyb3JfZXNyID0gdmNwdV9nZXRfdnNl c3IodmNwdSk7DQo+ID4gKwllbHNlDQo+ID4gKwkJZXZlbnRzLT5leGNlcHRpb24uc2Vycm9yX2Vz ciA9IDA7DQo+ID4gKw0KPiA+ICsJcmV0dXJuIDA7DQo+ID4gK30NCj4gPiArDQo+ID4gK2ludCBr dm1fYXJtX3ZjcHVfc2V0X2V2ZW50cyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsDQo+ID4gKwkJCXN0 cnVjdCBrdm1fdmNwdV9ldmVudHMgKmV2ZW50cykNCj4gPiArew0KPiA+ICsJYm9vbCBzZXJyb3Jf cGVuZGluZyA9IGV2ZW50cy0+ZXhjZXB0aW9uLnNlcnJvcl9wZW5kaW5nOw0KPiA+ICsJYm9vbCBo YXNfZXNyID0gZXZlbnRzLT5leGNlcHRpb24uc2Vycm9yX2hhc19lc3I7DQo+ID4gKw0KPiA+ICsJ aWYgKHNlcnJvcl9wZW5kaW5nICYmIGhhc19lc3IpIHsNCj4gPiArCQlpZiAoIWNwdXNfaGF2ZV9j b25zdF9jYXAoQVJNNjRfSEFTX1JBU19FWFROKSkNCj4gPiArCQkJcmV0dXJuIC1FSU5WQUw7DQo+ ID4gKw0KPiA+ICsJCWt2bV9zZXRfc2VpX2Vzcih2Y3B1LCBldmVudHMtPmV4Y2VwdGlvbi5zZXJy b3JfZXNyKTsNCj4gPiArDQo+IA0KPiBTcHVyaW91cyBibGFuayBsaW5lDQoNCkkgd2lsbCByZW1v dmUgdGhpcyBibGFuayBsaW5lDQoNCj4gDQo+ID4gKwl9IGVsc2UgaWYgKHNlcnJvcl9wZW5kaW5n KSB7DQo+ID4gKwkJa3ZtX2luamVjdF92YWJ0KHZjcHUpOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiAr CXJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICBpbnQgX19hdHRyaWJ1dGVfY29uc3RfXyBr dm1fdGFyZ2V0X2NwdSh2b2lkKSAgew0KPiA+ICAJdW5zaWduZWQgbG9uZyBpbXBsZW1lbnRvciA9 IHJlYWRfY3B1aWRfaW1wbGVtZW50b3IoKTsgZGlmZiAtLWdpdA0KPiA+IGEvYXJjaC9hcm02NC9r dm0vaW5qZWN0X2ZhdWx0LmMgYi9hcmNoL2FybTY0L2t2bS9pbmplY3RfZmF1bHQuYyBpbmRleA0K PiA+IGQ4ZTcxNjUuLjllMGNhNTYgMTAwNjQ0DQo+ID4gLS0tIGEvYXJjaC9hcm02NC9rdm0vaW5q ZWN0X2ZhdWx0LmMNCj4gPiArKysgYi9hcmNoL2FybTY0L2t2bS9pbmplY3RfZmF1bHQuYw0KPiA+ IEBAIC0xNjYsNyArMTY2LDcgQEAgdm9pZCBrdm1faW5qZWN0X3VuZGVmaW5lZChzdHJ1Y3Qga3Zt X3ZjcHUgKnZjcHUpDQo+ID4NCj4gPiAgc3RhdGljIHZvaWQgcGVuZF9ndWVzdF9zZXJyb3Ioc3Ry dWN0IGt2bV92Y3B1ICp2Y3B1LCB1NjQgZXNyKSAgew0KPiA+IC0JdmNwdV9zZXRfdnNlc3IodmNw dSwgZXNyKTsNCj4gPiArCXZjcHVfc2V0X3ZzZXNyKHZjcHUsIGVzciAmIEVTUl9FTHhfSVNTX01B U0spOw0KPiA+ICAJKnZjcHVfaGNyKHZjcHUpIHw9IEhDUl9WU0U7DQo+ID4gIH0NCj4gPg0KPiA+ IEBAIC0xODYsMyArMTg2LDggQEAgdm9pZCBrdm1faW5qZWN0X3ZhYnQoc3RydWN0IGt2bV92Y3B1 ICp2Y3B1KSAgew0KPiA+ICAJcGVuZF9ndWVzdF9zZXJyb3IodmNwdSwgRVNSX0VMeF9JU1YpOyAg fQ0KPiA+ICsNCj4gPiArdm9pZCBrdm1fc2V0X3NlaV9lc3Ioc3RydWN0IGt2bV92Y3B1ICp2Y3B1 LCB1NjQgc3luZHJvbWUpIHsNCj4gPiArCXBlbmRfZ3Vlc3Rfc2Vycm9yKHZjcHUsIHN5bmRyb21l KTsNCj4gPiArfQ0KPiANCj4gSSB0aGluayBpdCdkIG1ha2UgbW9yZSBzZW5zZSB0byByZW5hbWUg cGVuZF9ndWVzdF9zZXJyb3IgdG8ga3ZtX3NldF9zZWlfZXNyIGFuZCBiZSBkb25lIHdpdGggaXQu DQoNCk9rLCBnb3QgaXQuDQoNCj4gDQo+ID4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQva3ZtL3Jl c2V0LmMgYi9hcmNoL2FybTY0L2t2bS9yZXNldC5jIGluZGV4DQo+ID4gMzhjOGE2NC4uMjBlOTE5 YSAxMDA2NDQNCj4gPiAtLS0gYS9hcmNoL2FybTY0L2t2bS9yZXNldC5jDQo+ID4gKysrIGIvYXJj aC9hcm02NC9rdm0vcmVzZXQuYw0KPiA+IEBAIC04Miw2ICs4Miw3IEBAIGludCBrdm1fYXJjaF9k ZXZfaW9jdGxfY2hlY2tfZXh0ZW5zaW9uKHN0cnVjdCBrdm0gKmt2bSwgbG9uZyBleHQpDQo+ID4g IAkJYnJlYWs7DQo+ID4gIAljYXNlIEtWTV9DQVBfU0VUX0dVRVNUX0RFQlVHOg0KPiA+ICAJY2Fz ZSBLVk1fQ0FQX1ZDUFVfQVRUUklCVVRFUzoNCj4gPiArCWNhc2UgS1ZNX0NBUF9WQ1BVX0VWRU5U UzoNCj4gPiAgCQlyID0gMTsNCj4gPiAgCQlicmVhazsNCj4gPiAgCWRlZmF1bHQ6DQo+ID4gZGlm ZiAtLWdpdCBhL3ZpcnQva3ZtL2FybS9hcm0uYyBiL3ZpcnQva3ZtL2FybS9hcm0uYyBpbmRleA0K PiA+IGE0YzFiNzYuLjhiNDM5NjggMTAwNjQ0DQo+ID4gLS0tIGEvdmlydC9rdm0vYXJtL2FybS5j DQo+ID4gKysrIGIvdmlydC9rdm0vYXJtL2FybS5jDQo+ID4gQEAgLTExMDcsNiArMTEwNywyNyBA QCBsb25nIGt2bV9hcmNoX3ZjcHVfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsDQo+ID4gIAkJciA9 IGt2bV9hcm1fdmNwdV9oYXNfYXR0cih2Y3B1LCAmYXR0cik7DQo+ID4gIAkJYnJlYWs7DQo+ID4g IAl9DQo+ID4gKwljYXNlIEtWTV9HRVRfVkNQVV9FVkVOVFM6IHsNCj4gPiArCQlzdHJ1Y3Qga3Zt X3ZjcHVfZXZlbnRzIGV2ZW50czsNCj4gPiArDQo+ID4gKwkJbWVtc2V0KCZldmVudHMsIDAsIHNp emVvZihldmVudHMpKTsNCj4gDQo+IFlvdSBjb3VsZCB3cml0ZSB0aGlzIGFzDQo+IA0KPiAJCXN0 cnVjdCBrdm1fY3B1X2V2ZW50cyBldmVudHMgPSB7IH07DQo+IA0KPiBidXQgaXQnZCBtYWtlIG1v cmUgc2Vuc2UgaWYga3ZtX2FybV92Y3B1X2dldF9ldmVudHMoKSBkaWQgYWxsIHRoZSB3b3JrIHJh dGhlciB0aGFuIGhhdmluZyB0aGlzIHNwbGl0IHJlc3BvbnNpYmlsaXR5Lg0KDQpPaywgdGhhbmtz IGZvciB0aGUgZ29vZCBzdWdnZXN0aW9uLg0KDQo+IA0KPiA+ICsJCWlmIChrdm1fYXJtX3ZjcHVf Z2V0X2V2ZW50cyh2Y3B1LCAmZXZlbnRzKSkNCj4gPiArCQkJcmV0dXJuIC1FSU5WQUw7DQo+ID4g Kw0KPiA+ICsJCWlmIChjb3B5X3RvX3VzZXIoYXJncCwgJmV2ZW50cywgc2l6ZW9mKGV2ZW50cykp KQ0KPiA+ICsJCQlyZXR1cm4gLUVGQVVMVDsNCj4gPiArDQo+ID4gKwkJcmV0dXJuIDA7DQo+ID4g Kwl9DQo+ID4gKwljYXNlIEtWTV9TRVRfVkNQVV9FVkVOVFM6IHsNCj4gPiArCQlzdHJ1Y3Qga3Zt X3ZjcHVfZXZlbnRzIGV2ZW50czsNCj4gPiArDQo+ID4gKwkJaWYgKGNvcHlfZnJvbV91c2VyKCZl dmVudHMsIGFyZ3AsDQo+ID4gKwkJCQlzaXplb2Yoc3RydWN0IGt2bV92Y3B1X2V2ZW50cykpKQ0K PiANCj4gUHJlZmVyIHVzaW5nIHNpemVvZihldmVudHMpIGluc3RlYWQuDQoNClllcywgaXQgc2hv dWxkLCBJdCBpcyBteSBjYXJlbGVzcy4gVGhhbmtzIGZvciB0aGUgcG9pbnRpbmcgb3V0LiANCg0K PiANCj4gPiArCQkJcmV0dXJuIC1FRkFVTFQ7DQo+ID4gKw0KPiA+ICsJCXJldHVybiBrdm1fYXJt X3ZjcHVfc2V0X2V2ZW50cyh2Y3B1LCAmZXZlbnRzKTsNCj4gPiArCX0NCj4gPiAgCWRlZmF1bHQ6 DQo+ID4gIAkJciA9IC1FSU5WQUw7DQo+ID4gIAl9DQo+ID4NCj4gDQo+IFRoYW5rcywNCj4gDQo+ IAlNLg0KPiAtLQ0KPiBKYXp6IGlzIG5vdCBkZWFkLiBJdCBqdXN0IHNtZWxscyBmdW5ueS4uLg0K