From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 51C1BC76190 for ; Mon, 15 Jul 2019 08:51:51 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 221F22083D for ; Mon, 15 Jul 2019 08:51:51 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 221F22083D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=citrix.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hmwhp-0002vx-Q2; Mon, 15 Jul 2019 08:51:33 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hmwho-0002vn-HA for xen-devel@lists.xenproject.org; Mon, 15 Jul 2019 08:51:32 +0000 X-Inumbo-ID: bc3507c4-a6dd-11e9-908c-23c6fe2973da Received: from esa3.hc3370-68.iphmx.com (unknown [216.71.145.155]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id bc3507c4-a6dd-11e9-908c-23c6fe2973da; Mon, 15 Jul 2019 08:51:29 +0000 (UTC) Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=Paul.Durrant@citrix.com; spf=Pass smtp.mailfrom=Paul.Durrant@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa3.hc3370-68.iphmx.com: no sender authenticity information available from domain of Paul.Durrant@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa3.hc3370-68.iphmx.com; envelope-from="Paul.Durrant@citrix.com"; x-sender="Paul.Durrant@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa3.hc3370-68.iphmx.com: domain of Paul.Durrant@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa3.hc3370-68.iphmx.com; envelope-from="Paul.Durrant@citrix.com"; x-sender="Paul.Durrant@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ~all" Received-SPF: None (esa3.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa3.hc3370-68.iphmx.com; envelope-from="Paul.Durrant@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: z69mZlBJNJJnoBu71y68AwE/lqfLCjUop5wVhY0Y5OB/CvNBlh8ifdMaaev0xlnZFjqaYAj0k7 9AfoPKqX4ESSDD4bezWhnla8za73Z+HttpRZByT59w+GQf9aceoZAnfViCTmZ23P7bCPGta6fx wSmPV9ECBCEmeOy6eIQxqu6j8BM+B4PKWJSF7Xk571RWRZlg3MvUVjkA48s8gDVpV1ldKDzBVq igBesoX3AY0yxwKKyH5eNP+ljUsFddjg7pXrY4+ux/+yCkjFVimoW3J+57yC0FVrctOBXQoPO0 8wI= X-SBRS: 2.7 X-MesageID: 2970055 X-Ironport-Server: esa3.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.63,493,1557201600"; d="scan'208";a="2970055" From: Paul Durrant To: 'Jan Beulich' , "xen-devel@lists.xenproject.org" , "xen-devel@lists.xenproject.org" Thread-Topic: [PATCH] x86/hvm: make hvmemul_virtual_to_linear()'s reps parameter optional Thread-Index: AQHVMAR4OjWE2hDEnkaj7tfjtET7f6bLdJaA Date: Mon, 15 Jul 2019 08:51:25 +0000 Message-ID: <33b14e88ff2a4def90a4266c41617f71@AMSPEX02CL03.citrite.net> References: In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted MIME-Version: 1.0 Subject: Re: [Xen-devel] [PATCH] x86/hvm: make hvmemul_virtual_to_linear()'s reps parameter optional X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Andrew Cooper , Wei Liu , Roger Pau Monne Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1bGljaCA8SkJldWxp Y2hAc3VzZS5jb20+DQo+IFNlbnQ6IDAxIEp1bHkgMjAxOSAxMzowMA0KPiBUbzogeGVuLWRldmVs QGxpc3RzLnhlbnByb2plY3Qub3JnOyB4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4g Q2M6IEFuZHJldyBDb29wZXIgPEFuZHJldy5Db29wZXIzQGNpdHJpeC5jb20+OyBXZWkgTGl1IDx3 bEB4ZW4ub3JnPjsgUm9nZXIgUGF1IE1vbm5lDQo+IDxyb2dlci5wYXVAY2l0cml4LmNvbT47IFBh dWwgRHVycmFudCA8UGF1bC5EdXJyYW50QGNpdHJpeC5jb20+DQo+IFN1YmplY3Q6IFtQQVRDSF0g eDg2L2h2bTogbWFrZSBodm1lbXVsX3ZpcnR1YWxfdG9fbGluZWFyKCkncyByZXBzIHBhcmFtZXRl ciBvcHRpb25hbA0KPiANCj4gQSBtYWpvcml0eSBvZiBjYWxsZXJzIHdhbnRzIGp1c3QgYSBzaW5n bGUgaXRlcmF0aW9uIGhhbmRsZWQuIEFsbG93IHRvDQo+IGV4cHJlc3MgdGhpcyBieSBwYXNzaW5n IGluIGEgTlVMTCBwb2ludGVyLCBpbnN0ZWFkIG9mIHNldHRpbmcgdXAgYSBsb2NhbA0KPiB2YXJp YWJsZSBqdXN0IHRvIGhvbGQgdGhlICIxIiB0byBwYXNzIGluIGhlcmUuDQo+IA0KPiBTaWduZWQt b2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQoNClJldmlld2VkLWJ5OiBQ YXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPg0KDQo+IC0tLQ0KPiBOb3RlIHRo YXQgdGhpcyBjb25mbGljdHMgd2l0aCBhZGRpdGlvbnMvY2hhbmdlcyBtYWRlIGJ5ICJ4ODZlbXVs Og0KPiBmdXJ0aGVyIHdvcmsiLiBXaGF0ZXZlciBnb2VzIGluIGxhdGVyIHdpbGwgbmVlZCByZS1i YXNpbmcuDQo+IA0KPiAtLS0gYS94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYw0KPiArKysgYi94 ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYw0KPiBAQCAtNzg4LDE0ICs3ODgsMTQgQEAgc3RhdGlj IGludCBodm1lbXVsX3ZpcnR1YWxfdG9fbGluZWFyKA0KPiAgICAgICBlbnVtIHg4Nl9zZWdtZW50 IHNlZywNCj4gICAgICAgdW5zaWduZWQgbG9uZyBvZmZzZXQsDQo+ICAgICAgIHVuc2lnbmVkIGlu dCBieXRlc19wZXJfcmVwLA0KPiAtICAgIHVuc2lnbmVkIGxvbmcgKnJlcHMsDQo+ICsgICAgdW5z aWduZWQgbG9uZyAqcmVwc19wLA0KPiAgICAgICBlbnVtIGh2bV9hY2Nlc3NfdHlwZSBhY2Nlc3Nf dHlwZSwNCj4gICAgICAgc3RydWN0IGh2bV9lbXVsYXRlX2N0eHQgKmh2bWVtdWxfY3R4dCwNCj4g ICAgICAgdW5zaWduZWQgbG9uZyAqbGluZWFyKQ0KPiAgIHsNCj4gICAgICAgc3RydWN0IHNlZ21l bnRfcmVnaXN0ZXIgKnJlZzsNCj4gICAgICAgaW50IG9rYXk7DQo+IC0gICAgdW5zaWduZWQgbG9u ZyBtYXhfcmVwcyA9IDQwOTY7DQo+ICsgICAgdW5zaWduZWQgbG9uZyByZXBzID0gMTsNCj4gDQo+ ICAgICAgIGlmICggc2VnID09IHg4Nl9zZWdfbm9uZSApDQo+ICAgICAgIHsNCj4gQEAgLTgwMyw2 MiArODAzLDcyIEBAIHN0YXRpYyBpbnQgaHZtZW11bF92aXJ0dWFsX3RvX2xpbmVhcigNCj4gICAg ICAgICAgIHJldHVybiBYODZFTVVMX09LQVk7DQo+ICAgICAgIH0NCj4gDQo+IC0gICAgLyoNCj4g LSAgICAgKiBJZiBpbnRyb3NwZWN0aW9uIGhhcyBiZWVuIGVuYWJsZWQgZm9yIHRoaXMgZG9tYWlu LCBhbmQgd2UncmUgZW11bGF0aW5nDQo+IC0gICAgICogYmVjYXNlIGEgdm1fcmVwbHkgYXNrZWQg dXMgdG8gKGkuZS4gbm90IGRvaW5nIHJlZ3VsYXIgSU8pIHJlcHMgc2hvdWxkDQo+IC0gICAgICog YmUgYXQgbW9zdCAxLCBzaW5jZSBvcHRpbWl6YXRpb24gbWlnaHQgb3RoZXJ3aXNlIGNhdXNlIGEg c2luZ2xlDQo+IC0gICAgICogdm1fZXZlbnQgYmVpbmcgdHJpZ2dlcmVkIGZvciByZXBlYXRlZCB3 cml0ZXMgdG8gYSB3aG9sZSBwYWdlLg0KPiAtICAgICAqLw0KPiAtICAgIGlmICggdW5saWtlbHko Y3VycmVudC0+ZG9tYWluLT5hcmNoLm1lbV9hY2Nlc3NfZW11bGF0ZV9lYWNoX3JlcCkgJiYNCj4g LSAgICAgICAgIGN1cnJlbnQtPmFyY2gudm1fZXZlbnQtPmVtdWxhdGVfZmxhZ3MgIT0gMCApDQo+ IC0gICAgICAgbWF4X3JlcHMgPSAxOw0KPiArICAgIGlmICggcmVwc19wICkNCj4gKyAgICB7DQo+ ICsgICAgICAgIHVuc2lnbmVkIGxvbmcgbWF4X3JlcHMgPSA0MDk2Ow0KPiANCj4gLSAgICAvKg0K PiAtICAgICAqIENsaXAgcmVwZXRpdGlvbnMgdG8gYXZvaWQgb3ZlcmZsb3cgd2hlbiBtdWx0aXBs eWluZyBieSBAYnl0ZXNfcGVyX3JlcC4NCj4gLSAgICAgKiBUaGUgY2hvc2VuIG1heGltdW0gaXMg dmVyeSBjb25zZXJ2YXRpdmUgYnV0IGl0J3Mgd2hhdCB3ZSB1c2UgaW4NCj4gLSAgICAgKiBodm1l bXVsX2xpbmVhcl90b19waHlzKCkgc28gdGhlcmUgaXMgbm8gcG9pbnQgaW4gdXNpbmcgYSBsYXJn ZXIgdmFsdWUuDQo+IC0gICAgICovDQo+IC0gICAgKnJlcHMgPSBtaW5fdCh1bnNpZ25lZCBsb25n LCAqcmVwcywgbWF4X3JlcHMpOw0KPiArICAgICAgICAvKg0KPiArICAgICAgICAgKiBJZiBpbnRy b3NwZWN0aW9uIGhhcyBiZWVuIGVuYWJsZWQgZm9yIHRoaXMgZG9tYWluLCBhbmQgd2UncmUNCj4g KyAgICAgICAgICogZW11bGF0aW5nIGJlY2F1c2UgYSB2bV9yZXBseSBhc2tlZCB1cyB0byAoaS5l LiBub3QgZG9pbmcgcmVndWxhciBJTykNCj4gKyAgICAgICAgICogcmVwcyBzaG91bGQgYmUgYXQg bW9zdCAxLCBzaW5jZSBvcHRpbWl6YXRpb24gbWlnaHQgb3RoZXJ3aXNlIGNhdXNlIGENCj4gKyAg ICAgICAgICogc2luZ2xlIHZtX2V2ZW50IGJlaW5nIHRyaWdnZXJlZCBmb3IgcmVwZWF0ZWQgd3Jp dGVzIHRvIGEgd2hvbGUgcGFnZS4NCj4gKyAgICAgICAgICovDQo+ICsgICAgICAgIGlmICggdW5s aWtlbHkoY3VycmVudC0+ZG9tYWluLT5hcmNoLm1lbV9hY2Nlc3NfZW11bGF0ZV9lYWNoX3JlcCkg JiYNCj4gKyAgICAgICAgICAgICBjdXJyZW50LT5hcmNoLnZtX2V2ZW50LT5lbXVsYXRlX2ZsYWdz ICE9IDAgKQ0KPiArICAgICAgICAgICBtYXhfcmVwcyA9IDE7DQo+ICsNCj4gKyAgICAgICAgLyoN Cj4gKyAgICAgICAgICogQ2xpcCByZXBldGl0aW9ucyB0byBhdm9pZCBvdmVyZmxvdyB3aGVuIG11 bHRpcGx5aW5nIGJ5DQo+ICsgICAgICAgICAqIEBieXRlc19wZXJfcmVwLiBUaGUgY2hvc2VuIG1h eGltdW0gaXMgdmVyeSBjb25zZXJ2YXRpdmUgYnV0IGl0J3MNCj4gKyAgICAgICAgICogd2hhdCB3 ZSB1c2UgaW4gaHZtZW11bF9saW5lYXJfdG9fcGh5cygpIHNvIHRoZXJlIGlzIG5vIHBvaW50IGlu DQo+ICsgICAgICAgICAqIHVzaW5nIGEgbGFyZ2VyIHZhbHVlLg0KPiArICAgICAgICAgKi8NCj4g KyAgICAgICAgcmVwcyA9ICpyZXBzX3AgPSBtaW5fdCh1bnNpZ25lZCBsb25nLCAqcmVwc19wLCBt YXhfcmVwcyk7DQo+ICsgICAgfQ0KPiANCj4gICAgICAgcmVnID0gaHZtZW11bF9nZXRfc2VnX3Jl ZyhzZWcsIGh2bWVtdWxfY3R4dCk7DQo+ICAgICAgIGlmICggSVNfRVJSKHJlZykgKQ0KPiAgICAg ICAgICAgcmV0dXJuIC1QVFJfRVJSKHJlZyk7DQo+IA0KPiAtICAgIGlmICggKGh2bWVtdWxfY3R4 dC0+Y3R4dC5yZWdzLT5lZmxhZ3MgJiBYODZfRUZMQUdTX0RGKSAmJiAoKnJlcHMgPiAxKSApDQo+ ICsgICAgaWYgKCAoaHZtZW11bF9jdHh0LT5jdHh0LnJlZ3MtPmVmbGFncyAmIFg4Nl9FRkxBR1Nf REYpICYmIChyZXBzID4gMSkgKQ0KPiAgICAgICB7DQo+ICAgICAgICAgICAvKg0KPiAgICAgICAg ICAgICogeDg2X2VtdWxhdGUoKSBjbGlwcyB0aGUgcmVwZXRpdGlvbiBjb3VudCB0byBlbnN1cmUg d2UgZG9uJ3Qgd3JhcA0KPiAgICAgICAgICAgICogdGhlIGVmZmVjdGl2ZS1hZGRyZXNzIGluZGV4 IHJlZ2lzdGVyLiBIZW5jZSB0aGlzIGFzc2VydGlvbiBob2xkcy4NCj4gICAgICAgICAgICAqLw0K PiAtICAgICAgICBBU1NFUlQob2Zmc2V0ID49ICgoKnJlcHMgLSAxKSAqIGJ5dGVzX3Blcl9yZXAp KTsNCj4gKyAgICAgICAgQVNTRVJUKG9mZnNldCA+PSAoKHJlcHMgLSAxKSAqIGJ5dGVzX3Blcl9y ZXApKTsNCj4gICAgICAgICAgIG9rYXkgPSBodm1fdmlydHVhbF90b19saW5lYXJfYWRkcigNCj4g LSAgICAgICAgICAgIHNlZywgcmVnLCBvZmZzZXQgLSAoKnJlcHMgLSAxKSAqIGJ5dGVzX3Blcl9y ZXAsDQo+IC0gICAgICAgICAgICAqcmVwcyAqIGJ5dGVzX3Blcl9yZXAsIGFjY2Vzc190eXBlLA0K PiArICAgICAgICAgICAgc2VnLCByZWcsIG9mZnNldCAtIChyZXBzIC0gMSkgKiBieXRlc19wZXJf cmVwLA0KPiArICAgICAgICAgICAgcmVwcyAqIGJ5dGVzX3Blcl9yZXAsIGFjY2Vzc190eXBlLA0K PiAgICAgICAgICAgICAgIGh2bWVtdWxfZ2V0X3NlZ19yZWcoeDg2X3NlZ19jcywgaHZtZW11bF9j dHh0KSwgbGluZWFyKTsNCj4gLSAgICAgICAgKmxpbmVhciArPSAoKnJlcHMgLSAxKSAqIGJ5dGVz X3Blcl9yZXA7DQo+ICsgICAgICAgICpsaW5lYXIgKz0gKHJlcHMgLSAxKSAqIGJ5dGVzX3Blcl9y ZXA7DQo+ICAgICAgICAgICBpZiAoIGh2bWVtdWxfY3R4dC0+Y3R4dC5hZGRyX3NpemUgIT0gNjQg KQ0KPiAgICAgICAgICAgICAgICpsaW5lYXIgPSAodWludDMyX3QpKmxpbmVhcjsNCj4gICAgICAg fQ0KPiAgICAgICBlbHNlDQo+ICAgICAgIHsNCj4gICAgICAgICAgIG9rYXkgPSBodm1fdmlydHVh bF90b19saW5lYXJfYWRkcigNCj4gLSAgICAgICAgICAgIHNlZywgcmVnLCBvZmZzZXQsICpyZXBz ICogYnl0ZXNfcGVyX3JlcCwgYWNjZXNzX3R5cGUsDQo+ICsgICAgICAgICAgICBzZWcsIHJlZywg b2Zmc2V0LCByZXBzICogYnl0ZXNfcGVyX3JlcCwgYWNjZXNzX3R5cGUsDQo+ICAgICAgICAgICAg ICAgaHZtZW11bF9nZXRfc2VnX3JlZyh4ODZfc2VnX2NzLCBodm1lbXVsX2N0eHQpLCBsaW5lYXIp Ow0KPiAgICAgICB9DQo+IA0KPiAgICAgICBpZiAoIG9rYXkgKQ0KPiAgICAgICAgICAgcmV0dXJu IFg4NkVNVUxfT0tBWTsNCj4gDQo+IC0gICAgLyogSWYgdGhpcyBpcyBhIHN0cmluZyBvcGVyYXRp b24sIGVtdWxhdGUgZWFjaCBpdGVyYXRpb24gc2VwYXJhdGVseS4gKi8NCj4gLSAgICBpZiAoICpy ZXBzICE9IDEgKQ0KPiAtICAgICAgICByZXR1cm4gWDg2RU1VTF9VTkhBTkRMRUFCTEU7DQo+ICsg ICAgaWYgKCByZXBzX3AgKQ0KPiArICAgIHsNCj4gKyAgICAgICAgLyogSWYgdGhpcyBpcyBhIHN0 cmluZyBvcGVyYXRpb24sIGVtdWxhdGUgZWFjaCBpdGVyYXRpb24gc2VwYXJhdGVseS4gKi8NCj4g KyAgICAgICAgaWYgKCByZXBzICE9IDEgKQ0KPiArICAgICAgICAgICAgcmV0dXJuIFg4NkVNVUxf VU5IQU5ETEVBQkxFOw0KPiArDQo+ICsgICAgICAgICpyZXBzX3AgPSAwOw0KPiArICAgIH0NCj4g DQo+ICAgICAgIC8qDQo+ICAgICAgICAqIExlYXZlIGV4Y2VwdGlvbiBpbmplY3Rpb24gdG8gdGhl IGNhbGxlciBmb3Igbm9uLXVzZXIgc2VnbWVudHM6IFdlDQo+ICAgICAgICAqIG5laXRoZXIga25v dyB0aGUgZXhhY3QgZXJyb3IgY29kZSB0byBiZSB1c2VkLCBub3IgY2FuIHdlIGVhc2lseQ0KPiAg ICAgICAgKiBkZXRlcm1pbmUgdGhlIGtpbmQgb2YgZXhjZXB0aW9uICgjR1Agb3IgI1RTKSBpbiB0 aGF0IGNhc2UuDQo+ICAgICAgICAqLw0KPiAtICAgICpyZXBzID0gMDsNCj4gICAgICAgaWYgKCBp c194ODZfdXNlcl9zZWdtZW50KHNlZykgKQ0KPiAgICAgICAgICAgeDg2X2VtdWxfaHdfZXhjZXB0 aW9uKChzZWcgPT0geDg2X3NlZ19zcykNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA/IFRSQVBfc3RhY2tfZXJyb3INCj4gQEAgLTEyMDEsNyArMTIxMSw3IEBAIHN0YXRpYyBpbnQg X19odm1lbXVsX3JlYWQoDQo+ICAgICAgIGVudW0gaHZtX2FjY2Vzc190eXBlIGFjY2Vzc190eXBl LA0KPiAgICAgICBzdHJ1Y3QgaHZtX2VtdWxhdGVfY3R4dCAqaHZtZW11bF9jdHh0KQ0KPiAgIHsN Cj4gLSAgICB1bnNpZ25lZCBsb25nIGFkZHIsIHJlcHMgPSAxOw0KPiArICAgIHVuc2lnbmVkIGxv bmcgYWRkcjsNCj4gICAgICAgdWludDMyX3QgcGZlYyA9IFBGRUNfcGFnZV9wcmVzZW50Ow0KPiAg ICAgICBpbnQgcmM7DQo+IA0KPiBAQCAtMTIxMyw3ICsxMjIzLDcgQEAgc3RhdGljIGludCBfX2h2 bWVtdWxfcmVhZCgNCj4gICAgICAgICAgIHBmZWMgfD0gUEZFQ19pbnNuX2ZldGNoOw0KPiANCj4g ICAgICAgcmMgPSBodm1lbXVsX3ZpcnR1YWxfdG9fbGluZWFyKA0KPiAtICAgICAgICBzZWcsIG9m ZnNldCwgYnl0ZXMsICZyZXBzLCBhY2Nlc3NfdHlwZSwgaHZtZW11bF9jdHh0LCAmYWRkcik7DQo+ ICsgICAgICAgIHNlZywgb2Zmc2V0LCBieXRlcywgTlVMTCwgYWNjZXNzX3R5cGUsIGh2bWVtdWxf Y3R4dCwgJmFkZHIpOw0KPiAgICAgICBpZiAoIHJjICE9IFg4NkVNVUxfT0tBWSB8fCAhYnl0ZXMg KQ0KPiAgICAgICAgICAgcmV0dXJuIHJjOw0KPiANCj4gQEAgLTEyOTQsNyArMTMwNCw3IEBAIHN0 YXRpYyBpbnQgaHZtZW11bF93cml0ZSgNCj4gICB7DQo+ICAgICAgIHN0cnVjdCBodm1fZW11bGF0 ZV9jdHh0ICpodm1lbXVsX2N0eHQgPQ0KPiAgICAgICAgICAgY29udGFpbmVyX29mKGN0eHQsIHN0 cnVjdCBodm1fZW11bGF0ZV9jdHh0LCBjdHh0KTsNCj4gLSAgICB1bnNpZ25lZCBsb25nIGFkZHIs IHJlcHMgPSAxOw0KPiArICAgIHVuc2lnbmVkIGxvbmcgYWRkcjsNCj4gICAgICAgdWludDMyX3Qg cGZlYyA9IFBGRUNfcGFnZV9wcmVzZW50IHwgUEZFQ193cml0ZV9hY2Nlc3M7DQo+ICAgICAgIGlu dCByYzsNCj4gICAgICAgdm9pZCAqbWFwcGluZyA9IE5VTEw7DQo+IEBAIC0xMzA1LDcgKzEzMTUs NyBAQCBzdGF0aWMgaW50IGh2bWVtdWxfd3JpdGUoDQo+ICAgICAgICAgICBwZmVjIHw9IFBGRUNf dXNlcl9tb2RlOw0KPiANCj4gICAgICAgcmMgPSBodm1lbXVsX3ZpcnR1YWxfdG9fbGluZWFyKA0K PiAtICAgICAgICBzZWcsIG9mZnNldCwgYnl0ZXMsICZyZXBzLCBodm1fYWNjZXNzX3dyaXRlLCBo dm1lbXVsX2N0eHQsICZhZGRyKTsNCj4gKyAgICAgICAgc2VnLCBvZmZzZXQsIGJ5dGVzLCBOVUxM LCBodm1fYWNjZXNzX3dyaXRlLCBodm1lbXVsX2N0eHQsICZhZGRyKTsNCj4gICAgICAgaWYgKCBy YyAhPSBYODZFTVVMX09LQVkgfHwgIWJ5dGVzICkNCj4gICAgICAgICAgIHJldHVybiByYzsNCj4g DQo+IEBAIC0xMzM2LDEzICsxMzQ2LDEzIEBAIHN0YXRpYyBpbnQgaHZtZW11bF9ybXcoDQo+ICAg ew0KPiAgICAgICBzdHJ1Y3QgaHZtX2VtdWxhdGVfY3R4dCAqaHZtZW11bF9jdHh0ID0NCj4gICAg ICAgICAgIGNvbnRhaW5lcl9vZihjdHh0LCBzdHJ1Y3QgaHZtX2VtdWxhdGVfY3R4dCwgY3R4dCk7 DQo+IC0gICAgdW5zaWduZWQgbG9uZyBhZGRyLCByZXBzID0gMTsNCj4gKyAgICB1bnNpZ25lZCBs b25nIGFkZHI7DQo+ICAgICAgIHVpbnQzMl90IHBmZWMgPSBQRkVDX3BhZ2VfcHJlc2VudCB8IFBG RUNfd3JpdGVfYWNjZXNzOw0KPiAgICAgICBpbnQgcmM7DQo+ICAgICAgIHZvaWQgKm1hcHBpbmcg PSBOVUxMOw0KPiANCj4gICAgICAgcmMgPSBodm1lbXVsX3ZpcnR1YWxfdG9fbGluZWFyKA0KPiAt ICAgICAgICBzZWcsIG9mZnNldCwgYnl0ZXMsICZyZXBzLCBodm1fYWNjZXNzX3dyaXRlLCBodm1l bXVsX2N0eHQsICZhZGRyKTsNCj4gKyAgICAgICAgc2VnLCBvZmZzZXQsIGJ5dGVzLCBOVUxMLCBo dm1fYWNjZXNzX3dyaXRlLCBodm1lbXVsX2N0eHQsICZhZGRyKTsNCj4gICAgICAgaWYgKCByYyAh PSBYODZFTVVMX09LQVkgfHwgIWJ5dGVzICkNCj4gICAgICAgICAgIHJldHVybiByYzsNCj4gDQo+ IEBAIC0xNDkxLDE0ICsxNTAxLDE0IEBAIHN0YXRpYyBpbnQgaHZtZW11bF9jbXB4Y2hnKA0KPiAg ICAgICBzdHJ1Y3QgaHZtX2VtdWxhdGVfY3R4dCAqaHZtZW11bF9jdHh0ID0NCj4gICAgICAgICAg IGNvbnRhaW5lcl9vZihjdHh0LCBzdHJ1Y3QgaHZtX2VtdWxhdGVfY3R4dCwgY3R4dCk7DQo+ICAg ICAgIHN0cnVjdCB2Y3B1ICpjdXJyID0gY3VycmVudDsNCj4gLSAgICB1bnNpZ25lZCBsb25nIGFk ZHIsIHJlcHMgPSAxOw0KPiArICAgIHVuc2lnbmVkIGxvbmcgYWRkcjsNCj4gICAgICAgdWludDMy X3QgcGZlYyA9IFBGRUNfcGFnZV9wcmVzZW50IHwgUEZFQ193cml0ZV9hY2Nlc3M7DQo+ICAgICAg IHN0cnVjdCBodm1fdmNwdV9pbyAqdmlvID0gJmN1cnItPmFyY2guaHZtLmh2bV9pbzsNCj4gICAg ICAgaW50IHJjOw0KPiAgICAgICB2b2lkICptYXBwaW5nID0gTlVMTDsNCj4gDQo+ICAgICAgIHJj ID0gaHZtZW11bF92aXJ0dWFsX3RvX2xpbmVhcigNCj4gLSAgICAgICAgc2VnLCBvZmZzZXQsIGJ5 dGVzLCAmcmVwcywgaHZtX2FjY2Vzc193cml0ZSwgaHZtZW11bF9jdHh0LCAmYWRkcik7DQo+ICsg ICAgICAgIHNlZywgb2Zmc2V0LCBieXRlcywgTlVMTCwgaHZtX2FjY2Vzc193cml0ZSwgaHZtZW11 bF9jdHh0LCAmYWRkcik7DQo+ICAgICAgIGlmICggcmMgIT0gWDg2RU1VTF9PS0FZICkNCj4gICAg ICAgICAgIHJldHVybiByYzsNCj4gDQo+IEBAIC0yMjkyLDExICsyMzAyLDExIEBAIHN0YXRpYyBp bnQgaHZtZW11bF9pbnZscGcoDQo+ICAgew0KPiAgICAgICBzdHJ1Y3QgaHZtX2VtdWxhdGVfY3R4 dCAqaHZtZW11bF9jdHh0ID0NCj4gICAgICAgICAgIGNvbnRhaW5lcl9vZihjdHh0LCBzdHJ1Y3Qg aHZtX2VtdWxhdGVfY3R4dCwgY3R4dCk7DQo+IC0gICAgdW5zaWduZWQgbG9uZyBhZGRyLCByZXBz ID0gMTsNCj4gKyAgICB1bnNpZ25lZCBsb25nIGFkZHI7DQo+ICAgICAgIGludCByYzsNCj4gDQo+ ICAgICAgIHJjID0gaHZtZW11bF92aXJ0dWFsX3RvX2xpbmVhcigNCj4gLSAgICAgICAgc2VnLCBv ZmZzZXQsIDEsICZyZXBzLCBodm1fYWNjZXNzX25vbmUsIGh2bWVtdWxfY3R4dCwgJmFkZHIpOw0K PiArICAgICAgICBzZWcsIG9mZnNldCwgMSwgTlVMTCwgaHZtX2FjY2Vzc19ub25lLCBodm1lbXVs X2N0eHQsICZhZGRyKTsNCj4gDQo+ICAgICAgIGlmICggcmMgPT0gWDg2RU1VTF9FWENFUFRJT04g KQ0KPiAgICAgICB7DQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9y ZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs