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=-6.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=unavailable 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 51296C43331 for ; Wed, 25 Mar 2020 12:44:23 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (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 1651220775 for ; Wed, 25 Mar 2020 12:44:23 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1651220775 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:35716 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jH5OQ-0005f6-9i for qemu-devel@archiver.kernel.org; Wed, 25 Mar 2020 08:44:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:49294) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jH5NF-0004ET-BT for qemu-devel@nongnu.org; Wed, 25 Mar 2020 08:43:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jH5NC-0005RL-Gk for qemu-devel@nongnu.org; Wed, 25 Mar 2020 08:43:08 -0400 Received: from mga12.intel.com ([192.55.52.136]:34630) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jH5NC-0005PJ-4i for qemu-devel@nongnu.org; Wed, 25 Mar 2020 08:43:06 -0400 IronPort-SDR: qcL7VrvYsz+JFXiKd87FbYRwX2eAp4W48EM+6bA1n2CPnpf7IePZatd8KUG8VBTwqBRSoJW+0I HiZrAkKmMbQQ== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Mar 2020 05:43:02 -0700 IronPort-SDR: yn1raw/fxIcOM7MbLeMrOkwA/B0hK/1Jbf6bhggXKZLGVRSbbZ0KNQErX745C3ENN/lvwaw2ZM cJsoCYFltbtQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,304,1580803200"; d="scan'208";a="446611159" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by fmsmga005.fm.intel.com with ESMTP; 25 Mar 2020 05:43:02 -0700 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 25 Mar 2020 05:43:02 -0700 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 25 Mar 2020 05:43:01 -0700 Received: from shsmsx102.ccr.corp.intel.com (10.239.4.154) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Wed, 25 Mar 2020 05:43:01 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.206]) by shsmsx102.ccr.corp.intel.com ([169.254.2.50]) with mapi id 14.03.0439.000; Wed, 25 Mar 2020 20:42:58 +0800 From: "Liu, Yi L" To: Peter Xu Subject: RE: [PATCH v1 14/22] intel_iommu: bind/unbind guest page table to host Thread-Topic: [PATCH v1 14/22] intel_iommu: bind/unbind guest page table to host Thread-Index: AQHWAEW2HzdudG5l606qpAWL4DnMMKhXgbMAgAG+NaA= Date: Wed, 25 Mar 2020 12:42:58 +0000 Message-ID: References: <1584880579-12178-1-git-send-email-yi.l.liu@intel.com> <1584880579-12178-15-git-send-email-yi.l.liu@intel.com> <20200324174642.GY127076@xz-x1> In-Reply-To: <20200324174642.GY127076@xz-x1> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: FreeBSD 9.x [fuzzy] X-Received-From: 192.55.52.136 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "jean-philippe@linaro.org" , "Tian, Kevin" , Jacob Pan , Yi Sun , "kvm@vger.kernel.org" , "mst@redhat.com" , "Tian, Jun J" , "qemu-devel@nongnu.org" , "eric.auger@redhat.com" , "alex.williamson@redhat.com" , "pbonzini@redhat.com" , "Wu, Hao" , "Sun, Yi Y" , Richard Henderson , "david@gibson.dropbear.id.au" Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" PiBGcm9tOiBQZXRlciBYdQ0KPiBTZW50OiBXZWRuZXNkYXksIE1hcmNoIDI1LCAyMDIwIDE6NDcg QU0NCj4gVG86IExpdSwgWWkgTCA8eWkubC5saXVAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTog W1BBVENIIHYxIDE0LzIyXSBpbnRlbF9pb21tdTogYmluZC91bmJpbmQgZ3Vlc3QgcGFnZSB0YWJs ZSB0byBob3N0DQo+IA0KPiBPbiBTdW4sIE1hciAyMiwgMjAyMCBhdCAwNTozNjoxMUFNIC0wNzAw LCBMaXUgWWkgTCB3cm90ZToNCj4gPiBUaGlzIHBhdGNoIGNhcHR1cmVzIHRoZSBndWVzdCBQQVNJ RCB0YWJsZSBlbnRyeSBtb2RpZmljYXRpb25zIGFuZA0KPiA+IHByb3BhZ2F0ZXMgdGhlIGNoYW5n ZXMgdG8gaG9zdCB0byBzZXR1cCBkdWFsIHN0YWdlIERNQSB0cmFuc2xhdGlvbi4NCj4gPiBUaGUg Z3Vlc3QgcGFnZSB0YWJsZSBpcyBjb25maWd1cmVkIGFzIDFzdCBsZXZlbCBwYWdlIHRhYmxlIChH VkEtPkdQQSkNCj4gPiB3aG9zZSB0cmFuc2xhdGlvbiByZXN1bHQgd291bGQgZnVydGhlciBnbyB0 aHJvdWdoIGhvc3QgVlQtZCAybmQgbGV2ZWwNCj4gPiBwYWdlIHRhYmxlKEdQQS0+SFBBKSB1bmRl ciBuZXN0ZWQgdHJhbnNsYXRpb24gbW9kZS4gVGhpcyBpcyB0aGUga2V5DQo+ID4gcGFydCBvZiB2 U1ZBIHN1cHBvcnQsIGFuZCBhbHNvIGEga2V5IHRvIHN1cHBvcnQgSU9WQSBvdmVyIDFzdC0gbGV2 ZWwNCj4gPiBwYWdlIHRhYmxlIGZvciBJbnRlbCBWVC1kIGluIHZpcnR1YWxpemF0aW9uIGVudmly b25tZW50Lg0KPiA+DQo+ID4gQ2M6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPg0K PiA+IENjOiBKYWNvYiBQYW4gPGphY29iLmp1bi5wYW5AbGludXguaW50ZWwuY29tPg0KPiA+IENj OiBQZXRlciBYdSA8cGV0ZXJ4QHJlZGhhdC5jb20+DQo+ID4gQ2M6IFlpIFN1biA8eWkueS5zdW5A bGludXguaW50ZWwuY29tPg0KPiA+IENjOiBQYW9sbyBCb256aW5pIDxwYm9uemluaUByZWRoYXQu Y29tPg0KPiA+IENjOiBSaWNoYXJkIEhlbmRlcnNvbiA8cnRoQHR3aWRkbGUubmV0Pg0KPiA+IFNp Z25lZC1vZmYtYnk6IExpdSBZaSBMIDx5aS5sLmxpdUBpbnRlbC5jb20+DQo+ID4gLS0tDQo+ID4g IGh3L2kzODYvaW50ZWxfaW9tbXUuYyAgICAgICAgICB8IDk4DQo+ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKy0tLQ0KPiA+ICBody9pMzg2L2ludGVsX2lvbW11X2ludGVy bmFsLmggfCAyNSArKysrKysrKysrKw0KPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDExOCBpbnNlcnRp b25zKCspLCA1IGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2h3L2kzODYvaW50 ZWxfaW9tbXUuYyBiL2h3L2kzODYvaW50ZWxfaW9tbXUuYyBpbmRleA0KPiA+IGM5ODVjYWUuLjA0 MjNjODMgMTAwNjQ0DQo+ID4gLS0tIGEvaHcvaTM4Ni9pbnRlbF9pb21tdS5jDQo+ID4gKysrIGIv aHcvaTM4Ni9pbnRlbF9pb21tdS5jDQo+ID4gQEAgLTQxLDYgKzQxLDcgQEANCj4gPiAgI2luY2x1 ZGUgIm1pZ3JhdGlvbi92bXN0YXRlLmgiDQo+ID4gICNpbmNsdWRlICJ0cmFjZS5oIg0KPiA+ICAj aW5jbHVkZSAicWVtdS9qaGFzaC5oIg0KPiA+ICsjaW5jbHVkZSA8bGludXgvaW9tbXUuaD4NCj4g Pg0KPiA+ICAvKiBjb250ZXh0IGVudHJ5IG9wZXJhdGlvbnMgKi8NCj4gPiAgI2RlZmluZSBWVERf Q0VfR0VUX1JJRDJQQVNJRChjZSkgXA0KPiA+IEBAIC02OTUsNiArNjk2LDE2IEBAIHN0YXRpYyBp bmxpbmUgdWludDE2X3QNCj4gdnRkX3BlX2dldF9kb21haW5faWQoVlREUEFTSURFbnRyeSAqcGUp DQo+ID4gICAgICByZXR1cm4gVlREX1NNX1BBU0lEX0VOVFJZX0RJRCgocGUpLT52YWxbMV0pOw0K PiA+ICB9DQo+ID4NCj4gPiArc3RhdGljIGlubGluZSB1aW50MzJfdCB2dGRfcGVfZ2V0X2ZsX2F3 KFZURFBBU0lERW50cnkgKnBlKSB7DQo+ID4gKyAgICByZXR1cm4gNDggKyAoKHBlLT52YWxbMl0g Pj4gMikgJiBWVERfU01fUEFTSURfRU5UUllfRkxQTSkgKiA5OyB9DQo+ID4gKw0KPiA+ICtzdGF0 aWMgaW5saW5lIGRtYV9hZGRyX3QgdnRkX3BlX2dldF9mbHB0X2Jhc2UoVlREUEFTSURFbnRyeSAq cGUpIHsNCj4gPiArICAgIHJldHVybiBwZS0+dmFsWzJdICYgVlREX1NNX1BBU0lEX0VOVFJZX0ZM UFRQVFI7IH0NCj4gPiArDQo+ID4gIHN0YXRpYyBpbmxpbmUgYm9vbCB2dGRfcGRpcmVfcHJlc2Vu dChWVERQQVNJRERpckVudHJ5ICpwZGlyZSkgIHsNCj4gPiAgICAgIHJldHVybiBwZGlyZS0+dmFs ICYgMTsNCj4gPiBAQCAtMTg1Niw2ICsxODY3LDgxIEBAIHN0YXRpYyB2b2lkDQo+IHZ0ZF9jb250 ZXh0X2dsb2JhbF9pbnZhbGlkYXRlKEludGVsSU9NTVVTdGF0ZSAqcykNCj4gPiAgICAgIHZ0ZF9p b21tdV9yZXBsYXlfYWxsKHMpOw0KPiA+ICB9DQo+ID4NCj4gPiArLyoqDQo+ID4gKyAqIENhbGxl ciBzaG91bGQgaG9sZCBpb21tdV9sb2NrLg0KPiA+ICsgKi8NCj4gPiArc3RhdGljIGludCB2dGRf YmluZF9ndWVzdF9wYXNpZChJbnRlbElPTU1VU3RhdGUgKnMsIFZUREJ1cyAqdnRkX2J1cywNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGV2Zm4sIGludCBwYXNpZCwg VlREUEFTSURFbnRyeSAqcGUsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg VlREUEFTSURPcCBvcCkgew0KPiA+ICsgICAgVlRESG9zdElPTU1VQ29udGV4dCAqdnRkX2Rldl9p Y3g7DQo+ID4gKyAgICBIb3N0SU9NTVVDb250ZXh0ICpob3N0X2ljeDsNCj4gPiArICAgIER1YWxJ T01NVVN0YWdlMUJpbmREYXRhICpiaW5kX2RhdGE7DQo+ID4gKyAgICBzdHJ1Y3QgaW9tbXVfZ3Bh c2lkX2JpbmRfZGF0YSAqZ19iaW5kX2RhdGE7DQo+ID4gKyAgICBpbnQgcmV0ID0gLTE7DQo+ID4g Kw0KPiA+ICsgICAgdnRkX2Rldl9pY3ggPSB2dGRfYnVzLT5kZXZfaWN4W2RldmZuXTsNCj4gPiAr ICAgIGlmICghdnRkX2Rldl9pY3gpIHsNCj4gPiArICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4g PiArICAgIH0NCj4gPiArDQo+ID4gKyAgICBob3N0X2ljeCA9IHZ0ZF9kZXZfaWN4LT5ob3N0X2lj eDsNCj4gPiArICAgIGlmICghaG9zdF9pY3gpIHsNCj4gPiArICAgICAgICByZXR1cm4gLUVJTlZB TDsNCj4gPiArICAgIH0NCj4gPiArDQo+ID4gKyAgICBpZiAoIShob3N0X2ljeC0+c3RhZ2UxX2Zv cm1hdHMNCj4gPiArICAgICAgICAgICAgICYgSU9NTVVfUEFTSURfRk9STUFUX0lOVEVMX1ZURCkp IHsNCj4gPiArICAgICAgICBlcnJvcl9yZXBvcnRfb25jZSgiSU9NTVUgU3RhZ2UgMSBmb3JtYXQg aXMgbm90DQo+ID4gKyBjb21wYXRpYmxlIVxuIik7DQo+IA0KPiBTaG91bGRuJ3Qgd2UgZmFpbCB3 aXRoIHRoaXM/DQoNCm9oLCB5ZXMuIG5vIG5lZWQgdG8gZ28gZnVydGhlciB0aG91Z2ggaG9zdCBz aG91bGQgYWxzbyBmYWlsIGl0Lg0KDQo+ID4gKyAgICB9DQo+ID4gKw0KPiA+ICsgICAgYmluZF9k YXRhID0gZ19tYWxsb2MwKHNpemVvZigqYmluZF9kYXRhKSk7DQo+ID4gKyAgICBiaW5kX2RhdGEt PnBhc2lkID0gcGFzaWQ7DQo+ID4gKyAgICBnX2JpbmRfZGF0YSA9ICZiaW5kX2RhdGEtPmJpbmRf ZGF0YS5ncGFzaWRfYmluZDsNCj4gPiArDQo+ID4gKyAgICBnX2JpbmRfZGF0YS0+ZmxhZ3MgPSAw Ow0KPiA+ICsgICAgZ19iaW5kX2RhdGEtPnZ0ZC5mbGFncyA9IDA7DQo+ID4gKyAgICBzd2l0Y2gg KG9wKSB7DQo+ID4gKyAgICBjYXNlIFZURF9QQVNJRF9CSU5EOg0KPiA+ICsgICAgY2FzZSBWVERf UEFTSURfVVBEQVRFOg0KPiANCj4gSXMgVlREX1BBU0lEX1VQREFURSB1c2VkIGFueXdoZXJlPw0K PiANCj4gQnV0IHNpbmNlIGl0J3MgY2FsbGVkICJVUERBVEUiLi4uIEkgcmVhbGx5IHdhbnQgdG8g Y29uZmlybSB3aXRoIHlvdSB0aGF0IHRoZSBiaW5kKCkgdG8NCj4gdGhlIGtlcm5lbCB3aWxsIGhh bmRsZSB0aGUgVVBEQVRFIGNhc2UsIHJpZ2h0PyAgSSBtZWFuLCB3ZSBuZWVkIHRvIHVuYmluZCBm aXJzdCBpZg0KPiB0aGVyZSBpcyBhbiBleGlzdGluZyBwZ3RhYmxlIHBvaW50ZXIuDQoNCkkgZ3Vl c3MgeW91IG1lYW4gaG9zdCBrZXJuZWwuIHJpZ2h0PyBBY3R1YWxseSwgaXQncyBmaW5lLiBob3N0 IGtlcm5lbA0Kb25seSBuZWVkcyB0byBmaWxsIGluIHRoZSBsYXRlc3QgcGd0YWJsZSBwb2ludGVy IGFuZCBwZXJtaXNzaW9uIGNvbmZpZ3MNCnRvIHRoZSBwYXNpZCBlbnRyeSBhbmQgdGhlbiBpc3N1 ZSBhIGNhY2hlIGludmFsaWRhdGlvbi4gTm8gbmVlZCB0byBkbw0KdW5iaW5kIGZpcnN0bHkgc2lu Y2Uga2VybmVsIGFsd2F5cyBuZWVkcyB0byBmbHVzaCBjYWNoZSBhZnRlciBtb2RpZnlpbmcNCmEg cGFzaWQgZW50cnkgKGluY2x1ZGVzIHZhbGlkLT52YWxpZCkuDQoNCj4gDQo+IElmIHRoZSBhbnN3 ZXIgaXMgeWVzLCB0aGVuIEkgdGhpbmsgd2UncmUgZ29vZCwgYnV0IHdlIHJlYWxseSBuZWVkIHRv IGNvbW1lbnQgaXQNCj4gc29tZXdoZXJlIGFib3V0IHRoZSBmYWN0Lg0KPiANCj4gPiArICAgICAg ICBnX2JpbmRfZGF0YS0+dmVyc2lvbiA9IElPTU1VX1VBUElfVkVSU0lPTjsNCj4gPiArICAgICAg ICBnX2JpbmRfZGF0YS0+Zm9ybWF0ID0gSU9NTVVfUEFTSURfRk9STUFUX0lOVEVMX1ZURDsNCj4g PiArICAgICAgICBnX2JpbmRfZGF0YS0+Z3BnZCA9IHZ0ZF9wZV9nZXRfZmxwdF9iYXNlKHBlKTsN Cj4gPiArICAgICAgICBnX2JpbmRfZGF0YS0+YWRkcl93aWR0aCA9IHZ0ZF9wZV9nZXRfZmxfYXco cGUpOw0KPiA+ICsgICAgICAgIGdfYmluZF9kYXRhLT5ocGFzaWQgPSBwYXNpZDsNCj4gPiArICAg ICAgICBnX2JpbmRfZGF0YS0+Z3Bhc2lkID0gcGFzaWQ7DQo+ID4gKyAgICAgICAgZ19iaW5kX2Rh dGEtPmZsYWdzIHw9IElPTU1VX1NWQV9HUEFTSURfVkFMOw0KPiA+ICsgICAgICAgIGdfYmluZF9k YXRhLT52dGQuZmxhZ3MgPQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChWVERf U01fUEFTSURfRU5UUllfU1JFX0JJVChwZS0+dmFsWzJdKSA/IDEgOiAwKQ0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IChWVERfU01fUEFTSURfRU5UUllfRUFGRV9CSVQocGUtPnZh bFsyXSkgPyAxIDogMCkNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoVlREX1NN X1BBU0lEX0VOVFJZX1BDRF9CSVQocGUtPnZhbFsxXSkgPyAxIDogMCkNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAoVlREX1NNX1BBU0lEX0VOVFJZX1BXVF9CSVQocGUtPnZhbFsx XSkgPyAxIDogMCkNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoVlREX1NNX1BB U0lEX0VOVFJZX0VNVEVfQklUKHBlLT52YWxbMV0pID8gMSA6IDApDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgKFZURF9TTV9QQVNJRF9FTlRSWV9DRF9CSVQocGUtPnZhbFsxXSkg PyAxIDogMCk7DQo+ID4gKyAgICAgICAgZ19iaW5kX2RhdGEtPnZ0ZC5wYXQgPSBWVERfU01fUEFT SURfRU5UUllfUEFUKHBlLT52YWxbMV0pOw0KPiA+ICsgICAgICAgIGdfYmluZF9kYXRhLT52dGQu ZW10ID0gVlREX1NNX1BBU0lEX0VOVFJZX0VNVChwZS0+dmFsWzFdKTsNCj4gPiArICAgICAgICBy ZXQgPSBob3N0X2lvbW11X2N0eF9iaW5kX3N0YWdlMV9wZ3RibChob3N0X2ljeCwgYmluZF9kYXRh KTsNCj4gPiArICAgICAgICBicmVhazsNCj4gPiArICAgIGNhc2UgVlREX1BBU0lEX1VOQklORDoN Cj4gPiArICAgICAgICBnX2JpbmRfZGF0YS0+dmVyc2lvbiA9IElPTU1VX1VBUElfVkVSU0lPTjsN Cj4gPiArICAgICAgICBnX2JpbmRfZGF0YS0+Zm9ybWF0ID0gSU9NTVVfUEFTSURfRk9STUFUX0lO VEVMX1ZURDsNCj4gPiArICAgICAgICBnX2JpbmRfZGF0YS0+Z3BnZCA9IDA7DQo+ID4gKyAgICAg ICAgZ19iaW5kX2RhdGEtPmFkZHJfd2lkdGggPSAwOw0KPiA+ICsgICAgICAgIGdfYmluZF9kYXRh LT5ocGFzaWQgPSBwYXNpZDsNCj4gPiArICAgICAgICBnX2JpbmRfZGF0YS0+Z3Bhc2lkID0gcGFz aWQ7DQo+ID4gKyAgICAgICAgZ19iaW5kX2RhdGEtPmZsYWdzIHw9IElPTU1VX1NWQV9HUEFTSURf VkFMOw0KPiA+ICsgICAgICAgIHJldCA9IGhvc3RfaW9tbXVfY3R4X3VuYmluZF9zdGFnZTFfcGd0 YmwoaG9zdF9pY3gsIGJpbmRfZGF0YSk7DQo+ID4gKyAgICAgICAgYnJlYWs7DQo+ID4gKyAgICBk ZWZhdWx0Og0KPiA+ICsgICAgICAgIGVycm9yX3JlcG9ydF9vbmNlKCJVbmtub3duIFZURFBBU0lE T3AhISFcbiIpOw0KPiA+ICsgICAgICAgIGJyZWFrOw0KPiA+ICsgICAgfQ0KPiA+ICsNCj4gPiAr ICAgIGdfZnJlZShiaW5kX2RhdGEpOw0KPiA+ICsNCj4gPiArICAgIHJldHVybiByZXQ7DQo+ID4g K30NCj4gPiArDQo+ID4gIC8qIERvIGEgY29udGV4dC1jYWNoZSBkZXZpY2Utc2VsZWN0aXZlIGlu dmFsaWRhdGlvbi4NCj4gPiAgICogQGZ1bmNfbWFzazogRk0gZmllbGQgYWZ0ZXIgc2hpZnRpbmcN Cj4gPiAgICovDQo+ID4gQEAgLTI0ODEsMTAgKzI1NjcsMTAgQEAgc3RhdGljIGlubGluZSB2b2lk DQo+ID4gdnRkX2ZpbGxfaW5fcGVfaW5fY2FjaGUoSW50ZWxJT01NVVN0YXRlICpzLA0KPiA+DQo+ ID4gICAgICBwY19lbnRyeS0+cGFzaWRfZW50cnkgPSAqcGU7DQo+ID4gICAgICBwY19lbnRyeS0+ cGFzaWRfY2FjaGVfZ2VuID0gcy0+cGFzaWRfY2FjaGVfZ2VuOw0KPiA+IC0gICAgLyoNCj4gPiAt ICAgICAqIFRPRE86DQo+ID4gLSAgICAgKiAtIHNlbmQgcGFzaWQgYmluZCB0byBob3N0IGZvciBw YXNzdGhydSBkZXZpY2VzDQo+ID4gLSAgICAgKi8NCj4gPiArICAgIHZ0ZF9iaW5kX2d1ZXN0X3Bh c2lkKHMsIHZ0ZF9wYXNpZF9hcy0+dnRkX2J1cywNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgIHZ0ZF9wYXNpZF9hcy0+ZGV2Zm4sDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICB2 dGRfcGFzaWRfYXMtPnBhc2lkLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgcGUsIFZU RF9QQVNJRF9CSU5EKTsNCj4gPiAgfQ0KPiA+DQo+ID4gIC8qKg0KPiA+IEBAIC0yNTc0LDExICsy NjYwLDEzIEBAIHN0YXRpYyBnYm9vbGVhbiB2dGRfZmx1c2hfcGFzaWQoZ3BvaW50ZXIga2V5LA0K PiBncG9pbnRlciB2YWx1ZSwNCj4gPiAgICAgICAqIC0gd2hlbiBwYXNpZC1iYXNlLWlvdGxiKHBp b3RsYikgaW5mcmFzdHJ1Y3R1cmUgaXMgcmVhZHksDQo+ID4gICAgICAgKiAgIHNob3VsZCBpbnZh bGlkYXRlIFFFTVUgcGlvdGxiIHRvZ2VodGVyIHdpdGggdGhpcyBjaGFuZ2UuDQo+ID4gICAgICAg Ki8NCj4gPiArDQo+ID4gICAgICByZXR1cm4gZmFsc2U7DQo+ID4gIHJlbW92ZToNCj4gPiArICAg IHZ0ZF9iaW5kX2d1ZXN0X3Bhc2lkKHMsIHZ0ZF9idXMsIGRldmZuLA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgcGFzaWQsIE5VTEwsIFZURF9QQVNJRF9VTkJJTkQpOw0KPiA+ICAgICAg LyoNCj4gPiAgICAgICAqIFRPRE86DQo+ID4gLSAgICAgKiAtIHNlbmQgcGFzaWQgYmluZCB0byBo b3N0IGZvciBwYXNzdGhydSBkZXZpY2VzDQo+ID4gICAgICAgKiAtIHdoZW4gcGFzaWQtYmFzZS1p b3RsYihwaW90bGIpIGluZnJhc3RydWN0dXJlIGlzIHJlYWR5LA0KPiA+ICAgICAgICogICBzaG91 bGQgaW52YWxpZGF0ZSBRRU1VIHBpb3RsYiB0b2dlaHRlciB3aXRoIHRoaXMgY2hhbmdlLg0KPiA+ ICAgICAgICovDQo+ID4gZGlmZiAtLWdpdCBhL2h3L2kzODYvaW50ZWxfaW9tbXVfaW50ZXJuYWwu aA0KPiA+IGIvaHcvaTM4Ni9pbnRlbF9pb21tdV9pbnRlcm5hbC5oIGluZGV4IDAxZmQ5NWMuLjQ0 NTFhY2YgMTAwNjQ0DQo+ID4gLS0tIGEvaHcvaTM4Ni9pbnRlbF9pb21tdV9pbnRlcm5hbC5oDQo+ ID4gKysrIGIvaHcvaTM4Ni9pbnRlbF9pb21tdV9pbnRlcm5hbC5oDQo+ID4gQEAgLTUxNiw2ICs1 MTYsMjAgQEAgdHlwZWRlZiBzdHJ1Y3QgVlREUm9vdEVudHJ5IFZURFJvb3RFbnRyeTsNCj4gPiAj ZGVmaW5lIFZURF9TTV9DT05URVhUX0VOVFJZX1JTVkRfVkFMMChhdykgICgweDFlMFVMTCB8DQo+ IH5WVERfSEFXX01BU0soYXcpKQ0KPiA+ICAjZGVmaW5lIFZURF9TTV9DT05URVhUX0VOVFJZX1JT VkRfVkFMMSAgICAgIDB4ZmZmZmZmZmZmZmUwMDAwMFVMTA0KPiA+DQo+ID4gK2VudW0gVlREX0RV QUxfU1RBR0VfVUFQSSB7DQo+ID4gKyAgICBVQVBJX0JJTkRfR1BBU0lELA0KPiA+ICsgICAgVUFQ SV9OVU0NCj4gPiArfTsNCj4gPiArdHlwZWRlZiBlbnVtIFZURF9EVUFMX1NUQUdFX1VBUEkgVlRE X0RVQUxfU1RBR0VfVUFQSTsNCj4gPiArDQo+ID4gK2VudW0gVlREUEFTSURPcCB7DQo+ID4gKyAg ICBWVERfUEFTSURfQklORCwNCj4gPiArICAgIFZURF9QQVNJRF9VTkJJTkQsDQo+ID4gKyAgICBW VERfUEFTSURfVVBEQVRFLA0KPiANCj4gU2FtZSBoZXJlICh3aGV0aGVyIHRvIGRyb3A/KS4NCj4N CklmIGFib3ZlIHJlcGx5IGRvZXNuJ3QgbWFrZSBzZW5zZSwgbWF5IGRyb3AgaXQuDQoNClJlZ2Fy ZHMsDQpZaSBMaXUNCg==