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 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 8BB5FC43331 for ; Thu, 26 Mar 2020 03:05:44 +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 500A020719 for ; Thu, 26 Mar 2020 03:05:44 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 500A020719 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]:45750 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jHIpz-0006Vl-Eq for qemu-devel@archiver.kernel.org; Wed, 25 Mar 2020 23:05:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57767) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jHIpD-0005iY-1m for qemu-devel@nongnu.org; Wed, 25 Mar 2020 23:04:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jHIp9-0005ta-R9 for qemu-devel@nongnu.org; Wed, 25 Mar 2020 23:04:53 -0400 Received: from mga12.intel.com ([192.55.52.136]:26555) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jHIp9-0005t2-GD for qemu-devel@nongnu.org; Wed, 25 Mar 2020 23:04:51 -0400 IronPort-SDR: bIa1Hrlerx4aAoYUOsaKo9bJ5lmFb8S5OC3WClRQdLU7SNLqCxS1ICFYsqoahbXBILQ1BRE4XB DW+wtNeET/PA== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Mar 2020 20:04:47 -0700 IronPort-SDR: UPb+WRKWpk1rY3eJsTc8YjSmh+W6oO5l02EayWS3IO4AENFWqiqbfPcAphDPPLacbEs7I2yBsT GqF21oJaDKqw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,306,1580803200"; d="scan'208";a="250630391" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by orsmga006.jf.intel.com with ESMTP; 25 Mar 2020 20:04:46 -0700 Received: from FMSMSX109.amr.corp.intel.com (10.18.116.9) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 25 Mar 2020 20:04:46 -0700 Received: from shsmsx154.ccr.corp.intel.com (10.239.6.54) by fmsmsx109.amr.corp.intel.com (10.18.116.9) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 25 Mar 2020 20:04:46 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.206]) by SHSMSX154.ccr.corp.intel.com ([169.254.7.145]) with mapi id 14.03.0439.000; Thu, 26 Mar 2020 11:04:42 +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+NaD//6SlAIABUHzw Date: Thu, 26 Mar 2020 03:04:42 +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> <20200325145646.GB354390@xz-x1> In-Reply-To: <20200325145646.GB354390@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" PiBGcm9tOiBQZXRlciBYdSA8cGV0ZXJ4QHJlZGhhdC5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwg TWFyY2ggMjUsIDIwMjAgMTA6NTcgUE0NCj4gVG86IExpdSwgWWkgTCA8eWkubC5saXVAaW50ZWwu Y29tPg0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHYxIDE0LzIyXSBpbnRlbF9pb21tdTogYmluZC91 bmJpbmQgZ3Vlc3QgcGFnZSB0YWJsZSB0byBob3N0DQo+IA0KPiBPbiBXZWQsIE1hciAyNSwgMjAy MCBhdCAxMjo0Mjo1OFBNICswMDAwLCBMaXUsIFlpIEwgd3JvdGU6DQo+ID4gPiBGcm9tOiBQZXRl ciBYdQ0KPiA+ID4gU2VudDogV2VkbmVzZGF5LCBNYXJjaCAyNSwgMjAyMCAxOjQ3IEFNDQo+ID4g PiBUbzogTGl1LCBZaSBMIDx5aS5sLmxpdUBpbnRlbC5jb20+DQo+ID4gPiBTdWJqZWN0OiBSZTog W1BBVENIIHYxIDE0LzIyXSBpbnRlbF9pb21tdTogYmluZC91bmJpbmQgZ3Vlc3QgcGFnZQ0KPiA+ ID4gdGFibGUgdG8gaG9zdA0KPiA+ID4NCj4gPiA+IE9uIFN1biwgTWFyIDIyLCAyMDIwIGF0IDA1 OjM2OjExQU0gLTA3MDAsIExpdSBZaSBMIHdyb3RlOg0KPiA+ID4gPiBUaGlzIHBhdGNoIGNhcHR1 cmVzIHRoZSBndWVzdCBQQVNJRCB0YWJsZSBlbnRyeSBtb2RpZmljYXRpb25zIGFuZA0KPiA+ID4g PiBwcm9wYWdhdGVzIHRoZSBjaGFuZ2VzIHRvIGhvc3QgdG8gc2V0dXAgZHVhbCBzdGFnZSBETUEg dHJhbnNsYXRpb24uDQo+ID4gPiA+IFRoZSBndWVzdCBwYWdlIHRhYmxlIGlzIGNvbmZpZ3VyZWQg YXMgMXN0IGxldmVsIHBhZ2UgdGFibGUNCj4gPiA+ID4gKEdWQS0+R1BBKSB3aG9zZSB0cmFuc2xh dGlvbiByZXN1bHQgd291bGQgZnVydGhlciBnbyB0aHJvdWdoIGhvc3QNCj4gPiA+ID4gVlQtZCAy bmQgbGV2ZWwgcGFnZSB0YWJsZShHUEEtPkhQQSkgdW5kZXIgbmVzdGVkIHRyYW5zbGF0aW9uIG1v ZGUuDQo+ID4gPiA+IFRoaXMgaXMgdGhlIGtleSBwYXJ0IG9mIHZTVkEgc3VwcG9ydCwgYW5kIGFs c28gYSBrZXkgdG8gc3VwcG9ydA0KPiA+ID4gPiBJT1ZBIG92ZXIgMXN0LSBsZXZlbCBwYWdlIHRh YmxlIGZvciBJbnRlbCBWVC1kIGluIHZpcnR1YWxpemF0aW9uIGVudmlyb25tZW50Lg0KPiA+ID4g Pg0KPiA+ID4gPiBDYzogS2V2aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+DQo+ID4gPiA+ IENjOiBKYWNvYiBQYW4gPGphY29iLmp1bi5wYW5AbGludXguaW50ZWwuY29tPg0KPiA+ID4gPiBD YzogUGV0ZXIgWHUgPHBldGVyeEByZWRoYXQuY29tPg0KPiA+ID4gPiBDYzogWWkgU3VuIDx5aS55 LnN1bkBsaW51eC5pbnRlbC5jb20+DQo+ID4gPiA+IENjOiBQYW9sbyBCb256aW5pIDxwYm9uemlu aUByZWRoYXQuY29tPg0KPiA+ID4gPiBDYzogUmljaGFyZCBIZW5kZXJzb24gPHJ0aEB0d2lkZGxl Lm5ldD4NCj4gPiA+ID4gU2lnbmVkLW9mZi1ieTogTGl1IFlpIEwgPHlpLmwubGl1QGludGVsLmNv bT4NCj4gPiA+ID4gLS0tDQo+ID4gPiA+ICBody9pMzg2L2ludGVsX2lvbW11LmMgICAgICAgICAg fCA5OA0KPiA+ID4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tDQo+ ID4gPiA+ICBody9pMzg2L2ludGVsX2lvbW11X2ludGVybmFsLmggfCAyNSArKysrKysrKysrKw0K PiA+ID4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAxMTggaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMo LSkNCj4gPiA+ID4NCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2h3L2kzODYvaW50ZWxfaW9tbXUuYyBi L2h3L2kzODYvaW50ZWxfaW9tbXUuYyBpbmRleA0KPiA+ID4gPiBjOTg1Y2FlLi4wNDIzYzgzIDEw MDY0NA0KPiA+ID4gPiAtLS0gYS9ody9pMzg2L2ludGVsX2lvbW11LmMNCj4gPiA+ID4gKysrIGIv aHcvaTM4Ni9pbnRlbF9pb21tdS5jDQo+ID4gPiA+IEBAIC00MSw2ICs0MSw3IEBADQo+ID4gPiA+ ICAjaW5jbHVkZSAibWlncmF0aW9uL3Ztc3RhdGUuaCINCj4gPiA+ID4gICNpbmNsdWRlICJ0cmFj ZS5oIg0KPiA+ID4gPiAgI2luY2x1ZGUgInFlbXUvamhhc2guaCINCj4gPiA+ID4gKyNpbmNsdWRl IDxsaW51eC9pb21tdS5oPg0KPiA+ID4gPg0KPiA+ID4gPiAgLyogY29udGV4dCBlbnRyeSBvcGVy YXRpb25zICovDQo+ID4gPiA+ICAjZGVmaW5lIFZURF9DRV9HRVRfUklEMlBBU0lEKGNlKSBcIEBA IC02OTUsNiArNjk2LDE2IEBAIHN0YXRpYw0KPiA+ID4gPiBpbmxpbmUgdWludDE2X3QNCj4gPiA+ IHZ0ZF9wZV9nZXRfZG9tYWluX2lkKFZURFBBU0lERW50cnkgKnBlKQ0KPiA+ID4gPiAgICAgIHJl dHVybiBWVERfU01fUEFTSURfRU5UUllfRElEKChwZSktPnZhbFsxXSk7DQo+ID4gPiA+ICB9DQo+ ID4gPiA+DQo+ID4gPiA+ICtzdGF0aWMgaW5saW5lIHVpbnQzMl90IHZ0ZF9wZV9nZXRfZmxfYXco VlREUEFTSURFbnRyeSAqcGUpIHsNCj4gPiA+ID4gKyAgICByZXR1cm4gNDggKyAoKHBlLT52YWxb Ml0gPj4gMikgJiBWVERfU01fUEFTSURfRU5UUllfRkxQTSkgKg0KPiA+ID4gPiArOTsgfQ0KPiA+ ID4gPiArDQo+ID4gPiA+ICtzdGF0aWMgaW5saW5lIGRtYV9hZGRyX3QgdnRkX3BlX2dldF9mbHB0 X2Jhc2UoVlREUEFTSURFbnRyeSAqcGUpIHsNCj4gPiA+ID4gKyAgICByZXR1cm4gcGUtPnZhbFsy XSAmIFZURF9TTV9QQVNJRF9FTlRSWV9GTFBUUFRSOyB9DQo+ID4gPiA+ICsNCj4gPiA+ID4gIHN0 YXRpYyBpbmxpbmUgYm9vbCB2dGRfcGRpcmVfcHJlc2VudChWVERQQVNJRERpckVudHJ5ICpwZGly ZSkgIHsNCj4gPiA+ID4gICAgICByZXR1cm4gcGRpcmUtPnZhbCAmIDE7DQo+ID4gPiA+IEBAIC0x ODU2LDYgKzE4NjcsODEgQEAgc3RhdGljIHZvaWQNCj4gPiA+IHZ0ZF9jb250ZXh0X2dsb2JhbF9p bnZhbGlkYXRlKEludGVsSU9NTVVTdGF0ZSAqcykNCj4gPiA+ID4gICAgICB2dGRfaW9tbXVfcmVw bGF5X2FsbChzKTsNCj4gPiA+ID4gIH0NCj4gPiA+ID4NCj4gPiA+ID4gKy8qKg0KPiA+ID4gPiAr ICogQ2FsbGVyIHNob3VsZCBob2xkIGlvbW11X2xvY2suDQo+ID4gPiA+ICsgKi8NCj4gPiA+ID4g K3N0YXRpYyBpbnQgdnRkX2JpbmRfZ3Vlc3RfcGFzaWQoSW50ZWxJT01NVVN0YXRlICpzLCBWVERC dXMgKnZ0ZF9idXMsDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu dCBkZXZmbiwgaW50IHBhc2lkLCBWVERQQVNJREVudHJ5ICpwZSwNCj4gPiA+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgVlREUEFTSURPcCBvcCkgew0KPiA+ID4gPiArICAgIFZU REhvc3RJT01NVUNvbnRleHQgKnZ0ZF9kZXZfaWN4Ow0KPiA+ID4gPiArICAgIEhvc3RJT01NVUNv bnRleHQgKmhvc3RfaWN4Ow0KPiA+ID4gPiArICAgIER1YWxJT01NVVN0YWdlMUJpbmREYXRhICpi aW5kX2RhdGE7DQo+ID4gPiA+ICsgICAgc3RydWN0IGlvbW11X2dwYXNpZF9iaW5kX2RhdGEgKmdf YmluZF9kYXRhOw0KPiA+ID4gPiArICAgIGludCByZXQgPSAtMTsNCj4gPiA+ID4gKw0KPiA+ID4g PiArICAgIHZ0ZF9kZXZfaWN4ID0gdnRkX2J1cy0+ZGV2X2ljeFtkZXZmbl07DQo+ID4gPiA+ICsg ICAgaWYgKCF2dGRfZGV2X2ljeCkgew0KPiA+ID4gPiArICAgICAgICByZXR1cm4gLUVJTlZBTDsN Cj4gPiA+ID4gKyAgICB9DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgICBob3N0X2ljeCA9IHZ0ZF9k ZXZfaWN4LT5ob3N0X2ljeDsNCj4gPiA+ID4gKyAgICBpZiAoIWhvc3RfaWN4KSB7DQo+ID4gPiA+ ICsgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPiA+ID4gPiArICAgIH0NCj4gPiA+ID4gKw0KPiA+ ID4gPiArICAgIGlmICghKGhvc3RfaWN4LT5zdGFnZTFfZm9ybWF0cw0KPiA+ID4gPiArICAgICAg ICAgICAgICYgSU9NTVVfUEFTSURfRk9STUFUX0lOVEVMX1ZURCkpIHsNCj4gPiA+ID4gKyAgICAg ICAgZXJyb3JfcmVwb3J0X29uY2UoIklPTU1VIFN0YWdlIDEgZm9ybWF0IGlzIG5vdA0KPiA+ID4g PiArIGNvbXBhdGlibGUhXG4iKTsNCj4gPiA+DQo+ID4gPiBTaG91bGRuJ3Qgd2UgZmFpbCB3aXRo IHRoaXM/DQo+ID4NCj4gPiBvaCwgeWVzLiBubyBuZWVkIHRvIGdvIGZ1cnRoZXIgdGhvdWdoIGhv c3Qgc2hvdWxkIGFsc28gZmFpbCBpdC4NCj4gPg0KPiA+ID4gPiArICAgIH0NCj4gPiA+ID4gKw0K PiA+ID4gPiArICAgIGJpbmRfZGF0YSA9IGdfbWFsbG9jMChzaXplb2YoKmJpbmRfZGF0YSkpOw0K PiA+ID4gPiArICAgIGJpbmRfZGF0YS0+cGFzaWQgPSBwYXNpZDsNCj4gPiA+ID4gKyAgICBnX2Jp bmRfZGF0YSA9ICZiaW5kX2RhdGEtPmJpbmRfZGF0YS5ncGFzaWRfYmluZDsNCj4gPiA+ID4gKw0K PiA+ID4gPiArICAgIGdfYmluZF9kYXRhLT5mbGFncyA9IDA7DQo+ID4gPiA+ICsgICAgZ19iaW5k X2RhdGEtPnZ0ZC5mbGFncyA9IDA7DQo+ID4gPiA+ICsgICAgc3dpdGNoIChvcCkgew0KPiA+ID4g PiArICAgIGNhc2UgVlREX1BBU0lEX0JJTkQ6DQo+ID4gPiA+ICsgICAgY2FzZSBWVERfUEFTSURf VVBEQVRFOg0KPiA+ID4NCj4gPiA+IElzIFZURF9QQVNJRF9VUERBVEUgdXNlZCBhbnl3aGVyZT8N Cj4gPiA+DQo+ID4gPiBCdXQgc2luY2UgaXQncyBjYWxsZWQgIlVQREFURSIuLi4gSSByZWFsbHkg d2FudCB0byBjb25maXJtIHdpdGggeW91DQo+ID4gPiB0aGF0IHRoZSBiaW5kKCkgdG8gdGhlIGtl cm5lbCB3aWxsIGhhbmRsZSB0aGUgVVBEQVRFIGNhc2UsIHJpZ2h0PyAgSQ0KPiA+ID4gbWVhbiwg d2UgbmVlZCB0byB1bmJpbmQgZmlyc3QgaWYgdGhlcmUgaXMgYW4gZXhpc3RpbmcgcGd0YWJsZSBw b2ludGVyLg0KPiA+DQo+ID4gSSBndWVzcyB5b3UgbWVhbiBob3N0IGtlcm5lbC4gcmlnaHQ/IEFj dHVhbGx5LCBpdCdzIGZpbmUuIGhvc3Qga2VybmVsDQo+ID4gb25seSBuZWVkcyB0byBmaWxsIGlu IHRoZSBsYXRlc3QgcGd0YWJsZSBwb2ludGVyIGFuZCBwZXJtaXNzaW9uDQo+ID4gY29uZmlncyB0 byB0aGUgcGFzaWQgZW50cnkgYW5kIHRoZW4gaXNzdWUgYSBjYWNoZSBpbnZhbGlkYXRpb24uIE5v DQo+ID4gbmVlZCB0byBkbyB1bmJpbmQgZmlyc3RseSBzaW5jZSBrZXJuZWwgYWx3YXlzIG5lZWRz IHRvIGZsdXNoIGNhY2hlDQo+ID4gYWZ0ZXIgbW9kaWZ5aW5nIGEgcGFzaWQgZW50cnkgKGluY2x1 ZGVzIHZhbGlkLT52YWxpZCkuDQo+IA0KPiBHcmVhdC4NCj4gDQo+ID4NCj4gPiA+DQo+ID4gPiBJ ZiB0aGUgYW5zd2VyIGlzIHllcywgdGhlbiBJIHRoaW5rIHdlJ3JlIGdvb2QsIGJ1dCB3ZSByZWFs bHkgbmVlZCB0bw0KPiA+ID4gY29tbWVudCBpdCBzb21ld2hlcmUgYWJvdXQgdGhlIGZhY3QuDQo+ ID4gPg0KPiA+ID4gPiArICAgICAgICBnX2JpbmRfZGF0YS0+dmVyc2lvbiA9IElPTU1VX1VBUElf VkVSU0lPTjsNCj4gPiA+ID4gKyAgICAgICAgZ19iaW5kX2RhdGEtPmZvcm1hdCA9IElPTU1VX1BB U0lEX0ZPUk1BVF9JTlRFTF9WVEQ7DQo+ID4gPiA+ICsgICAgICAgIGdfYmluZF9kYXRhLT5ncGdk ID0gdnRkX3BlX2dldF9mbHB0X2Jhc2UocGUpOw0KPiA+ID4gPiArICAgICAgICBnX2JpbmRfZGF0 YS0+YWRkcl93aWR0aCA9IHZ0ZF9wZV9nZXRfZmxfYXcocGUpOw0KPiA+ID4gPiArICAgICAgICBn X2JpbmRfZGF0YS0+aHBhc2lkID0gcGFzaWQ7DQo+ID4gPiA+ICsgICAgICAgIGdfYmluZF9kYXRh LT5ncGFzaWQgPSBwYXNpZDsNCj4gPiA+ID4gKyAgICAgICAgZ19iaW5kX2RhdGEtPmZsYWdzIHw9 IElPTU1VX1NWQV9HUEFTSURfVkFMOw0KPiA+ID4gPiArICAgICAgICBnX2JpbmRfZGF0YS0+dnRk LmZsYWdzID0NCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFZURF9TTV9Q QVNJRF9FTlRSWV9TUkVfQklUKHBlLT52YWxbMl0pID8gMSA6IDApDQo+ID4gPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IChWVERfU01fUEFTSURfRU5UUllfRUFGRV9CSVQocGUtPnZh bFsyXSkgPyAxIDogMCkNCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKFZU RF9TTV9QQVNJRF9FTlRSWV9QQ0RfQklUKHBlLT52YWxbMV0pID8gMSA6IDApDQo+ID4gPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IChWVERfU01fUEFTSURfRU5UUllfUFdUX0JJVChw ZS0+dmFsWzFdKSA/IDEgOiAwKQ0KPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAoVlREX1NNX1BBU0lEX0VOVFJZX0VNVEVfQklUKHBlLT52YWxbMV0pID8gMSA6IDApDQo+ID4g PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICB8IChWVERfU01fUEFTSURfRU5UUllfQ0Rf QklUKHBlLT52YWxbMV0pID8gMSA6IDApOw0KPiA+ID4gPiArICAgICAgICBnX2JpbmRfZGF0YS0+ dnRkLnBhdCA9IFZURF9TTV9QQVNJRF9FTlRSWV9QQVQocGUtPnZhbFsxXSk7DQo+ID4gPiA+ICsg ICAgICAgIGdfYmluZF9kYXRhLT52dGQuZW10ID0gVlREX1NNX1BBU0lEX0VOVFJZX0VNVChwZS0+ dmFsWzFdKTsNCj4gPiA+ID4gKyAgICAgICAgcmV0ID0gaG9zdF9pb21tdV9jdHhfYmluZF9zdGFn ZTFfcGd0YmwoaG9zdF9pY3gsIGJpbmRfZGF0YSk7DQo+ID4gPiA+ICsgICAgICAgIGJyZWFrOw0K PiA+ID4gPiArICAgIGNhc2UgVlREX1BBU0lEX1VOQklORDoNCj4gPiA+ID4gKyAgICAgICAgZ19i aW5kX2RhdGEtPnZlcnNpb24gPSBJT01NVV9VQVBJX1ZFUlNJT047DQo+ID4gPiA+ICsgICAgICAg IGdfYmluZF9kYXRhLT5mb3JtYXQgPSBJT01NVV9QQVNJRF9GT1JNQVRfSU5URUxfVlREOw0KPiA+ ID4gPiArICAgICAgICBnX2JpbmRfZGF0YS0+Z3BnZCA9IDA7DQo+ID4gPiA+ICsgICAgICAgIGdf YmluZF9kYXRhLT5hZGRyX3dpZHRoID0gMDsNCj4gPiA+ID4gKyAgICAgICAgZ19iaW5kX2RhdGEt PmhwYXNpZCA9IHBhc2lkOw0KPiA+ID4gPiArICAgICAgICBnX2JpbmRfZGF0YS0+Z3Bhc2lkID0g cGFzaWQ7DQo+ID4gPiA+ICsgICAgICAgIGdfYmluZF9kYXRhLT5mbGFncyB8PSBJT01NVV9TVkFf R1BBU0lEX1ZBTDsNCj4gPiA+ID4gKyAgICAgICAgcmV0ID0gaG9zdF9pb21tdV9jdHhfdW5iaW5k X3N0YWdlMV9wZ3RibChob3N0X2ljeCwgYmluZF9kYXRhKTsNCj4gPiA+ID4gKyAgICAgICAgYnJl YWs7DQo+ID4gPiA+ICsgICAgZGVmYXVsdDoNCj4gPiA+ID4gKyAgICAgICAgZXJyb3JfcmVwb3J0 X29uY2UoIlVua25vd24gVlREUEFTSURPcCEhIVxuIik7DQo+ID4gPiA+ICsgICAgICAgIGJyZWFr Ow0KPiA+ID4gPiArICAgIH0NCj4gPiA+ID4gKw0KPiA+ID4gPiArICAgIGdfZnJlZShiaW5kX2Rh dGEpOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICAgcmV0dXJuIHJldDsNCj4gPiA+ID4gK30NCj4g PiA+ID4gKw0KPiA+ID4gPiAgLyogRG8gYSBjb250ZXh0LWNhY2hlIGRldmljZS1zZWxlY3RpdmUg aW52YWxpZGF0aW9uLg0KPiA+ID4gPiAgICogQGZ1bmNfbWFzazogRk0gZmllbGQgYWZ0ZXIgc2hp ZnRpbmcNCj4gPiA+ID4gICAqLw0KPiA+ID4gPiBAQCAtMjQ4MSwxMCArMjU2NywxMCBAQCBzdGF0 aWMgaW5saW5lIHZvaWQNCj4gPiA+ID4gdnRkX2ZpbGxfaW5fcGVfaW5fY2FjaGUoSW50ZWxJT01N VVN0YXRlICpzLA0KPiA+ID4gPg0KPiA+ID4gPiAgICAgIHBjX2VudHJ5LT5wYXNpZF9lbnRyeSA9 ICpwZTsNCj4gPiA+ID4gICAgICBwY19lbnRyeS0+cGFzaWRfY2FjaGVfZ2VuID0gcy0+cGFzaWRf Y2FjaGVfZ2VuOw0KPiA+ID4gPiAtICAgIC8qDQo+ID4gPiA+IC0gICAgICogVE9ETzoNCj4gPiA+ ID4gLSAgICAgKiAtIHNlbmQgcGFzaWQgYmluZCB0byBob3N0IGZvciBwYXNzdGhydSBkZXZpY2Vz DQo+ID4gPiA+IC0gICAgICovDQo+ID4gPiA+ICsgICAgdnRkX2JpbmRfZ3Vlc3RfcGFzaWQocywg dnRkX3Bhc2lkX2FzLT52dGRfYnVzLA0KPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAg IHZ0ZF9wYXNpZF9hcy0+ZGV2Zm4sDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg dnRkX3Bhc2lkX2FzLT5wYXNpZCwNCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICBw ZSwgVlREX1BBU0lEX0JJTkQpOw0KPiA+ID4gPiAgfQ0KPiA+ID4gPg0KPiA+ID4gPiAgLyoqDQo+ ID4gPiA+IEBAIC0yNTc0LDExICsyNjYwLDEzIEBAIHN0YXRpYyBnYm9vbGVhbiB2dGRfZmx1c2hf cGFzaWQoZ3BvaW50ZXINCj4gPiA+ID4ga2V5LA0KPiA+ID4gZ3BvaW50ZXIgdmFsdWUsDQo+ID4g PiA+ICAgICAgICogLSB3aGVuIHBhc2lkLWJhc2UtaW90bGIocGlvdGxiKSBpbmZyYXN0cnVjdHVy ZSBpcyByZWFkeSwNCj4gPiA+ID4gICAgICAgKiAgIHNob3VsZCBpbnZhbGlkYXRlIFFFTVUgcGlv dGxiIHRvZ2VodGVyIHdpdGggdGhpcyBjaGFuZ2UuDQo+ID4gPiA+ICAgICAgICovDQo+ID4gPiA+ ICsNCj4gPiA+ID4gICAgICByZXR1cm4gZmFsc2U7DQo+ID4gPiA+ICByZW1vdmU6DQo+ID4gPiA+ ICsgICAgdnRkX2JpbmRfZ3Vlc3RfcGFzaWQocywgdnRkX2J1cywgZGV2Zm4sDQo+ID4gPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgcGFzaWQsIE5VTEwsIFZURF9QQVNJRF9VTkJJTkQpOw0K PiA+ID4gPiAgICAgIC8qDQo+ID4gPiA+ICAgICAgICogVE9ETzoNCj4gPiA+ID4gLSAgICAgKiAt IHNlbmQgcGFzaWQgYmluZCB0byBob3N0IGZvciBwYXNzdGhydSBkZXZpY2VzDQo+ID4gPiA+ICAg ICAgICogLSB3aGVuIHBhc2lkLWJhc2UtaW90bGIocGlvdGxiKSBpbmZyYXN0cnVjdHVyZSBpcyBy ZWFkeSwNCj4gPiA+ID4gICAgICAgKiAgIHNob3VsZCBpbnZhbGlkYXRlIFFFTVUgcGlvdGxiIHRv Z2VodGVyIHdpdGggdGhpcyBjaGFuZ2UuDQo+ID4gPiA+ICAgICAgICovDQo+ID4gPiA+IGRpZmYg LS1naXQgYS9ody9pMzg2L2ludGVsX2lvbW11X2ludGVybmFsLmgNCj4gPiA+ID4gYi9ody9pMzg2 L2ludGVsX2lvbW11X2ludGVybmFsLmggaW5kZXggMDFmZDk1Yy4uNDQ1MWFjZiAxMDA2NDQNCj4g PiA+ID4gLS0tIGEvaHcvaTM4Ni9pbnRlbF9pb21tdV9pbnRlcm5hbC5oDQo+ID4gPiA+ICsrKyBi L2h3L2kzODYvaW50ZWxfaW9tbXVfaW50ZXJuYWwuaA0KPiA+ID4gPiBAQCAtNTE2LDYgKzUxNiwy MCBAQCB0eXBlZGVmIHN0cnVjdCBWVERSb290RW50cnkgVlREUm9vdEVudHJ5Ow0KPiA+ID4gPiAj ZGVmaW5lIFZURF9TTV9DT05URVhUX0VOVFJZX1JTVkRfVkFMMChhdykgICgweDFlMFVMTCB8DQo+ ID4gPiB+VlREX0hBV19NQVNLKGF3KSkNCj4gPiA+ID4gICNkZWZpbmUgVlREX1NNX0NPTlRFWFRf RU5UUllfUlNWRF9WQUwxICAgICAgMHhmZmZmZmZmZmZmZTAwMDAwVUxMDQo+ID4gPiA+DQo+ID4g PiA+ICtlbnVtIFZURF9EVUFMX1NUQUdFX1VBUEkgew0KPiA+ID4gPiArICAgIFVBUElfQklORF9H UEFTSUQsDQo+ID4gPiA+ICsgICAgVUFQSV9OVU0NCj4gPiA+ID4gK307DQo+ID4gPiA+ICt0eXBl ZGVmIGVudW0gVlREX0RVQUxfU1RBR0VfVUFQSSBWVERfRFVBTF9TVEFHRV9VQVBJOw0KPiA+ID4g PiArDQo+ID4gPiA+ICtlbnVtIFZURFBBU0lET3Agew0KPiA+ID4gPiArICAgIFZURF9QQVNJRF9C SU5ELA0KPiA+ID4gPiArICAgIFZURF9QQVNJRF9VTkJJTkQsDQo+ID4gPiA+ICsgICAgVlREX1BB U0lEX1VQREFURSwNCj4gPiA+DQo+ID4gPiBTYW1lIGhlcmUgKHdoZXRoZXIgdG8gZHJvcD8pLg0K PiA+ID4NCj4gPiBJZiBhYm92ZSByZXBseSBkb2Vzbid0IG1ha2Ugc2Vuc2UsIG1heSBkcm9wIGl0 Lg0KPiANCj4gWW91ciByZXBseSBtYWtlcyBwZXJmZWN0IHNlbnNlLCBidXQgc3RpbGwsIGNvdWxk IHdlIGRyb3AgaXQgYmVjYXVzZSBpdCdzIG5vdCB1c2VkPyA6KQ0KPiANCj4gSSBzdWdnZXN0IGRy b3AgVVBEQVRFLCB0aGVuIGVpdGhlcjoNCj4gDQo+ICAgLSBjb21tZW50IGF0IFZURF9QQVNJRF9C SU5EIHRoYXQgd2hlbiBiaW5kaW5nIGV4aXN0cywgd2UnbGwgdXBkYXRlDQo+ICAgICB0aGUgZW50 cnkgc28gdGhlIGNhbGxlciBkb2VzIG5vdCBuZWVkIHRvIGNhbGwgdW5iaW5kLCBvciwNCj4gDQo+ ICAgLSByZW5hbWUgQklORCB0byBCSU5EX1VQREFURSB0byBzaG93IHRoYXQNCj4gDQo+IFdoYXQg ZG8geW91IHRoaW5rPw0KDQpJIHNlZS4gQXQgdGhlIGJlZ2lubmluZywgdGhlcmUgaXMgZXhwbGlj aXQgdXNhZ2UgZm9yIGl0LiBCdXQgZHVlIHRvIGNvZGUNCm1lcmdlLCB0aGVyZSBpcyBubyBleHBs aWNpdCB1c2FnZSBub3cuIFNvIEkgY2FuIGRyb3AgaXQuIEJ1dCB5ZWFoLCBJJ2xsDQpzZWUgaWYg aXQgaXMgbmVlZGVkIHdoZW4gc3dpdGNoIHRvIHVzZSByZXBsYXkgY29kZSBmb3IgYm90aCBQU0kg YW5kIERTSS9HU0kNCmNhc2UuIElmIHNvLCB3aWxsIGFwcGx5IHRoZSB0d28gb3B0aW9ucyBpbiB5 b3VyIHJlcGx5Lg0KDQpSZWdhcmRzLA0KWWkgTGl1DQo=