From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id A30D9A04FF; Wed, 23 Mar 2022 10:09:09 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4003D41140; Wed, 23 Mar 2022 10:09:09 +0100 (CET) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mails.dpdk.org (Postfix) with ESMTP id 1841D41104 for ; Wed, 23 Mar 2022 10:09:06 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1648026547; x=1679562547; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=7uz4s/xAb0awvMQvaR+s6Gq+051XjjnzBTYc1iLogMQ=; b=NJ8rbfapLvBc0KSCtWERiWCyEdteQLtNB249YuhpcMlL7JSzh/cUJenD 43ARlJ2njcULOJZg5ur5M+SAj0TYy2jaaD7wncaeJ6TO2stnTkO89FwQ/ h7CR8H43hBHOV15ekcDXVyU7N+8kc/pbO7PmxdShAGvsE+J8b+uidb+eO LdNGEpwh2d5oOwZUTET6w5u+aeXsSGpV+To6ftz0cKsBvTDUgkl/k9FQm IFFGwFh0NCb6KO+60jmnQo/CjvXOxMgsbz8v68vZXtD9ZQsNclu9jGtfm vrSkpbAHuAW7R0ssCUcjONM7xZi37cuwkB6BCUQsV1R0WBft+BSWj8Jtj w==; X-IronPort-AV: E=McAfee;i="6200,9189,10294"; a="245534923" X-IronPort-AV: E=Sophos;i="5.90,203,1643702400"; d="scan'208";a="245534923" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Mar 2022 02:08:59 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,203,1643702400"; d="scan'208";a="825252085" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmsmga005.fm.intel.com with ESMTP; 23 Mar 2022 02:08:59 -0700 Received: from shsmsx604.ccr.corp.intel.com (10.109.6.214) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Wed, 23 Mar 2022 02:08:58 -0700 Received: from shsmsx601.ccr.corp.intel.com (10.109.6.141) by SHSMSX604.ccr.corp.intel.com (10.109.6.214) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.21; Wed, 23 Mar 2022 17:08:57 +0800 Received: from shsmsx601.ccr.corp.intel.com ([10.109.6.141]) by SHSMSX601.ccr.corp.intel.com ([10.109.6.141]) with mapi id 15.01.2308.021; Wed, 23 Mar 2022 17:08:57 +0800 From: "Pei, Andy" To: Maxime Coquelin , "dev@dpdk.org" CC: "Xia, Chenbo" , "Cao, Gang" , "Liu, Changpeng" Subject: RE: [PATCH v3 05/15] vdpa/ifc: add blk dev sw live migration Thread-Topic: [PATCH v3 05/15] vdpa/ifc: add blk dev sw live migration Thread-Index: AQHYPd1pWIBe9NC6C0a7fw0rZNtq26zMq8Qw Date: Wed, 23 Mar 2022 09:08:56 +0000 Message-ID: <02008086e19c497486db985c8f496b01@intel.com> References: <1643093258-47258-2-git-send-email-andy.pei@intel.com> <1643425417-215270-1-git-send-email-andy.pei@intel.com> <1643425417-215270-6-git-send-email-andy.pei@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.6.401.20 dlp-reaction: no-action x-originating-ip: [10.239.127.36] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org SGkgTWF4aW1lLA0KDQpUaGFua3MgZm9yIHlvdXIgcmVwbHkgYW5kIHJlcGx5IGlzIGlubGluZS4N Cg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IE1heGltZSBDb3F1ZWxpbiA8bWF4 aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+IA0KU2VudDogVHVlc2RheSwgTWFyY2ggMjIsIDIwMjIg NzoxMCBQTQ0KVG86IFBlaSwgQW5keSA8YW5keS5wZWlAaW50ZWwuY29tPjsgZGV2QGRwZGsub3Jn DQpDYzogWGlhLCBDaGVuYm8gPGNoZW5iby54aWFAaW50ZWwuY29tPjsgQ2FvLCBHYW5nIDxnYW5n LmNhb0BpbnRlbC5jb20+OyBMaXUsIENoYW5ncGVuZyA8Y2hhbmdwZW5nLmxpdUBpbnRlbC5jb20+ DQpTdWJqZWN0OiBSZTogW1BBVENIIHYzIDA1LzE1XSB2ZHBhL2lmYzogYWRkIGJsayBkZXYgc3cg bGl2ZSBtaWdyYXRpb24NCg0KSGkgQW5keSwNCg0KInZkcGEvaWZjOiBhZGQgYmxvY2sgZGV2aWNl IFNXIGxpdmUtbWlncmF0aW9uIg0KDQpPbiAxLzI5LzIyIDA0OjAzLCBBbmR5IFBlaSB3cm90ZToN Cj4gRW5hYmxlIHZpcnRpbyBibGsgc3cgbGl2ZSBtaWdyYXRpb24gcmVsYXkgY2FsbGZkIGFuZCBs b2cgdGhlIGRpcnR5IHBhZ2UuDQoNClBsZWFzZSB0cnkgdG8gbWFrZSB0aGUgYWJvdmUgc2VudGVu Y2Ugc2ltcGxlci4gQWxzbywgaXQgc2VlbXMgdGhhdCBiZWxvdyBwYXRjaCBjaGFuZ2VzIGJlaGF2 aW91ciBmb3IgbmV0IGRldmljZXMsIHNvIHRoZSBjb21taXQgbWVzc2FnZSBzaG91bGQgZXhwbGFp biB0aGF0Lg0KDQpBbmR5OiBTdXJlLCBJIHRoaW5rIGl0IGlzIGJldHRlciB0byBzZW5kIG91dCBh IG5ldyBwYXRjaCBzZXQuDQpVc2luZyBhIHNpbXBlciBjb21taXQgbG9nIGFuZCByZS13b3JrIHRv IG1ha2Ugc3VyZSB0aGUgY29kZSBkbyBub3QgY2hhbmdlIHRoZSBiZWhhdmlvciBvZiBuZXQgZGV2 aWNlLg0KDQo+IEluIHRoaXMgdmVyc2lvbiB3ZSBpZ25vcmUgdGhlIHdyaXRlIGNtZCBhbmQgc3Rp bGwgbWFyayBpdCBkaXJ0eS4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IEFuZHkgUGVpIDxhbmR5LnBl aUBpbnRlbC5jb20+DQo+IC0tLQ0KPiAgIGRyaXZlcnMvdmRwYS9pZmMvYmFzZS9pZmN2Zi5jIHwg ICA0ICstDQo+ICAgZHJpdmVycy92ZHBhL2lmYy9iYXNlL2lmY3ZmLmggfCAgIDYgKysNCj4gICBk cml2ZXJzL3ZkcGEvaWZjL2lmY3ZmX3ZkcGEuYyB8IDEyOCArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0tLS0NCj4gICAzIGZpbGVzIGNoYW5nZWQsIDExNiBpbnNlcnRpb25z KCspLCAyMiBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3ZkcGEvaWZj L2Jhc2UvaWZjdmYuYyANCj4gYi9kcml2ZXJzL3ZkcGEvaWZjL2Jhc2UvaWZjdmYuYyBpbmRleCA3 MjFjYjFkLi4zYTY5ZTUzIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL3ZkcGEvaWZjL2Jhc2UvaWZj dmYuYw0KPiArKysgYi9kcml2ZXJzL3ZkcGEvaWZjL2Jhc2UvaWZjdmYuYw0KPiBAQCAtMTg5LDcg KzE4OSw3IEBADQo+ICAgCUlGQ1ZGX1dSSVRFX1JFRzMyKHZhbCA+PiAzMiwgaGkpOw0KPiAgIH0N Cj4gICANCj4gLVNUQVRJQyBpbnQNCj4gK2ludA0KPiAgIGlmY3ZmX2h3X2VuYWJsZShzdHJ1Y3Qg aWZjdmZfaHcgKmh3KQ0KPiAgIHsNCj4gICAJc3RydWN0IGlmY3ZmX3BjaV9jb21tb25fY2ZnICpj Zmc7DQo+IEBAIC0yMzgsNyArMjM4LDcgQEANCj4gICAJcmV0dXJuIDA7DQo+ICAgfQ0KPiAgIA0K PiAtU1RBVElDIHZvaWQNCj4gK3ZvaWQNCj4gICBpZmN2Zl9od19kaXNhYmxlKHN0cnVjdCBpZmN2 Zl9odyAqaHcpDQo+ICAgew0KPiAgIAl1MzIgaTsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmRw YS9pZmMvYmFzZS9pZmN2Zi5oIA0KPiBiL2RyaXZlcnMvdmRwYS9pZmMvYmFzZS9pZmN2Zi5oIGlu ZGV4IDc2OWM2MDMuLjZkZDc5MjUgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvdmRwYS9pZmMvYmFz ZS9pZmN2Zi5oDQo+ICsrKyBiL2RyaXZlcnMvdmRwYS9pZmMvYmFzZS9pZmN2Zi5oDQo+IEBAIC0x NzksNCArMTc5LDEwIEBAIHN0cnVjdCBpZmN2Zl9odyB7DQo+ICAgdTY0DQo+ICAgaWZjdmZfZ2V0 X3F1ZXVlX25vdGlmeV9vZmYoc3RydWN0IGlmY3ZmX2h3ICpodywgaW50IHFpZCk7DQo+ICAgDQo+ ICtpbnQNCj4gK2lmY3ZmX2h3X2VuYWJsZShzdHJ1Y3QgaWZjdmZfaHcgKmh3KTsNCj4gKw0KPiAr dm9pZA0KPiAraWZjdmZfaHdfZGlzYWJsZShzdHJ1Y3QgaWZjdmZfaHcgKmh3KTsNCj4gKw0KPiAg ICNlbmRpZiAvKiBfSUZDVkZfSF8gKi8NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmRwYS9pZmMv aWZjdmZfdmRwYS5jIA0KPiBiL2RyaXZlcnMvdmRwYS9pZmMvaWZjdmZfdmRwYS5jIGluZGV4IDRm OTliYjMuLmE5MzA4MjUgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvdmRwYS9pZmMvaWZjdmZfdmRw YS5jDQo+ICsrKyBiL2RyaXZlcnMvdmRwYS9pZmMvaWZjdmZfdmRwYS5jDQo+IEBAIC0zMzIsMTAg KzMzMiw2NyBAQCBzdHJ1Y3QgcnRlX3ZkcGFfZGV2X2luZm8gew0KPiAgIA0KPiAgIAlydGVfdmhv c3RfZ2V0X25lZ290aWF0ZWRfZmVhdHVyZXModmlkLCAmZmVhdHVyZXMpOw0KPiAgIAlpZiAoUlRF X1ZIT1NUX05FRURfTE9HKGZlYXR1cmVzKSkgew0KPiAtCQlpZmN2Zl9kaXNhYmxlX2xvZ2dpbmco aHcpOw0KPiAtCQlydGVfdmhvc3RfZ2V0X2xvZ19iYXNlKGludGVybmFsLT52aWQsICZsb2dfYmFz ZSwgJmxvZ19zaXplKTsNCj4gLQkJcnRlX3ZmaW9fY29udGFpbmVyX2RtYV91bm1hcChpbnRlcm5h bC0+dmZpb19jb250YWluZXJfZmQsDQo+IC0JCQkJbG9nX2Jhc2UsIElGQ1ZGX0xPR19CQVNFLCBs b2dfc2l6ZSk7DQo+ICsJCWlmIChpbnRlcm5hbC0+ZGV2aWNlX3R5cGUgPT0gSUZDVkZfTkVUKSB7 DQo+ICsJCQlpZmN2Zl9kaXNhYmxlX2xvZ2dpbmcoaHcpOw0KPiArCQkJcnRlX3Zob3N0X2dldF9s b2dfYmFzZShpbnRlcm5hbC0+dmlkLCAmbG9nX2Jhc2UsDQo+ICsJCQkJJmxvZ19zaXplKTsNCj4g KwkJCXJ0ZV92ZmlvX2NvbnRhaW5lcl9kbWFfdW5tYXAoDQo+ICsJCQkJaW50ZXJuYWwtPnZmaW9f Y29udGFpbmVyX2ZkLCBsb2dfYmFzZSwNCj4gKwkJCQlJRkNWRl9MT0dfQkFTRSwgbG9nX3NpemUp Ow0KPiArCQl9DQo+ICsJCS8qIElGQ1ZGIG1hcmtzIGRpcnR5IG1lbW9yeSBwYWdlcyBmb3Igb25s eSBwYWNrZXQgYnVmZmVyLA0KPiArCQkgKiBTVyBoZWxwcyB0byBtYXJrIHRoZSB1c2VkIHJpbmcg YXMgZGlydHkgYWZ0ZXIgZGV2aWNlIHN0b3BzLg0KPiArCQkgKi8NCj4gKwkJZm9yIChpID0gMDsg aSA8IGh3LT5ucl92cmluZzsgaSsrKSB7DQo+ICsJCQlsZW4gPSBJRkNWRl9VU0VEX1JJTkdfTEVO KGh3LT52cmluZ1tpXS5zaXplKTsNCj4gKwkJCXJ0ZV92aG9zdF9sb2dfdXNlZF92cmluZyh2aWQs IGksIDAsIGxlbik7DQo+ICsJCX0NCj4gKwl9DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB2b2lkDQo+ ICt2ZHBhX2lmY3ZmX2Jsa19wYXVzZShzdHJ1Y3QgaWZjdmZfaW50ZXJuYWwgKmludGVybmFsKSB7 DQo+ICsJc3RydWN0IGlmY3ZmX2h3ICpodyA9ICZpbnRlcm5hbC0+aHc7DQo+ICsJc3RydWN0IHJ0 ZV92aG9zdF92cmluZyB2cTsNCj4gKwlpbnQgaSwgdmlkOw0KPiArCXVpbnQ2NF90IGZlYXR1cmVz ID0gMDsNCj4gKwl1aW50NjRfdCBsb2dfYmFzZSA9IDAsIGxvZ19zaXplID0gMDsNCj4gKwl1aW50 NjRfdCBsZW47DQo+ICsNCj4gKwl2aWQgPSBpbnRlcm5hbC0+dmlkOw0KPiArDQo+ICsJaWYgKGlu dGVybmFsLT5kZXZpY2VfdHlwZSA9PSBJRkNWRl9CTEspIHsNCj4gKwkJZm9yIChpID0gMDsgaSA8 IGh3LT5ucl92cmluZzsgaSsrKSB7DQo+ICsJCQlydGVfdmhvc3RfZ2V0X3Zob3N0X3ZyaW5nKGlu dGVybmFsLT52aWQsIGksICZ2cSk7DQo+ICsJCQl3aGlsZSAodnEuYXZhaWwtPmlkeCAhPSB2cS51 c2VkLT5pZHgpIHsNCj4gKwkJCQlpZmN2Zl9ub3RpZnlfcXVldWUoaHcsIGkpOw0KPiArCQkJCXVz bGVlcCgxMCk7DQo+ICsJCQl9DQo+ICsJCQlody0+dnJpbmdbaV0ubGFzdF9hdmFpbF9pZHggPSB2 cS5hdmFpbC0+aWR4Ow0KPiArCQkJaHctPnZyaW5nW2ldLmxhc3RfdXNlZF9pZHggPSB2cS51c2Vk LT5pZHg7DQo+ICsJCX0NCj4gKwl9DQo+ICsNCj4gKwlpZmN2Zl9od19kaXNhYmxlKGh3KTsNCj4g Kw0KPiArCWZvciAoaSA9IDA7IGkgPCBody0+bnJfdnJpbmc7IGkrKykNCj4gKwkJcnRlX3Zob3N0 X3NldF92cmluZ19iYXNlKHZpZCwgaSwgaHctPnZyaW5nW2ldLmxhc3RfYXZhaWxfaWR4LA0KPiAr CQkJCWh3LT52cmluZ1tpXS5sYXN0X3VzZWRfaWR4KTsNCj4gKw0KPiArCWlmIChpbnRlcm5hbC0+ c3dfbG0pDQo+ICsJCXJldHVybjsNCj4gKw0KPiArCXJ0ZV92aG9zdF9nZXRfbmVnb3RpYXRlZF9m ZWF0dXJlcyh2aWQsICZmZWF0dXJlcyk7DQo+ICsJaWYgKFJURV9WSE9TVF9ORUVEX0xPRyhmZWF0 dXJlcykpIHsNCj4gKwkJaWYgKGludGVybmFsLT5kZXZpY2VfdHlwZSA9PSBJRkNWRl9ORVQpIHsN Cj4gKwkJCWlmY3ZmX2Rpc2FibGVfbG9nZ2luZyhodyk7DQo+ICsJCQlydGVfdmhvc3RfZ2V0X2xv Z19iYXNlKGludGVybmFsLT52aWQsICZsb2dfYmFzZSwNCj4gKwkJCQkmbG9nX3NpemUpOw0KPiAr CQkJcnRlX3ZmaW9fY29udGFpbmVyX2RtYV91bm1hcCgNCj4gKwkJCQlpbnRlcm5hbC0+dmZpb19j b250YWluZXJfZmQsIGxvZ19iYXNlLA0KPiArCQkJCUlGQ1ZGX0xPR19CQVNFLCBsb2dfc2l6ZSk7 DQo+ICsJCX0NCj4gICAJCS8qDQo+ICAgCQkgKiBJRkNWRiBtYXJrcyBkaXJ0eSBtZW1vcnkgcGFn ZXMgZm9yIG9ubHkgcGFja2V0IGJ1ZmZlciwNCj4gICAJCSAqIFNXIGhlbHBzIHRvIG1hcmsgdGhl IHVzZWQgcmluZyBhcyBkaXJ0eSBhZnRlciBkZXZpY2Ugc3RvcHMuDQo+IEBAIC02NjEsMTUgKzcx OCwxNyBAQCBzdHJ1Y3QgcnRlX3ZkcGFfZGV2X2luZm8gew0KPiAgIAkJfQ0KPiAgIAkJaHctPnZy aW5nW2ldLmF2YWlsID0gZ3BhOw0KPiAgIA0KPiAtCQkvKiBEaXJlY3QgSS9PIGZvciBUeCBxdWV1 ZSwgcmVsYXkgZm9yIFJ4IHF1ZXVlICovDQo+IC0JCWlmIChpICYgMSkgew0KPiArCQkvKiBORVRX T1JLOiBEaXJlY3QgSS9PIGZvciBUeCBxdWV1ZSwgcmVsYXkgZm9yIFJ4IHF1ZXVlDQo+ICsJCSAq IEJMSzogcmVsYXkgZXZlcnkgcXVldWUNCj4gKwkJICovDQo+ICsJCWlmICgoaSAmIDEpICYmIChp bnRlcm5hbC0+ZGV2aWNlX3R5cGUgPT0gSUZDVkZfTkVUKSkgew0KPiAgIAkJCWdwYSA9IGh2YV90 b19ncGEodmlkLCAodWludDY0X3QpKHVpbnRwdHJfdCl2cS51c2VkKTsNCj4gICAJCQlpZiAoZ3Bh ID09IDApIHsNCj4gICAJCQkJRFJWX0xPRyhFUlIsICJGYWlsIHRvIGdldCBHUEEgZm9yIHVzZWQg cmluZy4iKTsNCj4gICAJCQkJcmV0dXJuIC0xOw0KPiAgIAkJCX0NCj4gICAJCQlody0+dnJpbmdb aV0udXNlZCA9IGdwYTsNCj4gLQkJfSBlbHNlIHsNCj4gKwkJfSBlbHNlIGlmIChpbnRlcm5hbC0+ ZGV2aWNlX3R5cGUgPT0gSUZDVkZfQkxLKSB7DQo+ICAgCQkJaHctPnZyaW5nW2ldLnVzZWQgPSBt X3ZyaW5nX2lvdmEgKw0KPiAgIAkJCQkoY2hhciAqKWludGVybmFsLT5tX3ZyaW5nW2ldLnVzZWQg LQ0KPiAgIAkJCQkoY2hhciAqKWludGVybmFsLT5tX3ZyaW5nW2ldLmRlc2M7IEBAIC02ODgsNyAr NzQ3LDEwIEBAIHN0cnVjdCANCj4gcnRlX3ZkcGFfZGV2X2luZm8gew0KPiAgIAl9DQo+ICAgCWh3 LT5ucl92cmluZyA9IG5yX3ZyaW5nOw0KPiAgIA0KPiAtCXJldHVybiBpZmN2Zl9zdGFydF9odygm aW50ZXJuYWwtPmh3KTsNCj4gKwlpZiAoaW50ZXJuYWwtPmRldmljZV90eXBlID09IElGQ1ZGX05F VCkNCj4gKwkJcmV0dXJuIGlmY3ZmX3N0YXJ0X2h3KCZpbnRlcm5hbC0+aHcpOw0KPiArCWVsc2Ug aWYgKGludGVybmFsLT5kZXZpY2VfdHlwZSA9PSBJRkNWRl9CTEspDQo+ICsJCXJldHVybiBpZmN2 Zl9od19lbmFibGUoJmludGVybmFsLT5odyk7DQo+ICAgDQo+ICAgZXJyb3I6DQo+ICAgCWZvciAo aSA9IDA7IGkgPCBucl92cmluZzsgaSsrKQ0KPiBAQCAtNzEzLDggKzc3NSwxMCBAQCBzdHJ1Y3Qg cnRlX3ZkcGFfZGV2X2luZm8gew0KPiAgIA0KPiAgIAlmb3IgKGkgPSAwOyBpIDwgaHctPm5yX3Zy aW5nOyBpKyspIHsNCj4gICAJCS8qIHN5bmNocm9uaXplIHJlbWFpbmluZyBuZXcgdXNlZCBlbnRy aWVzIGlmIGFueSAqLw0KPiAtCQlpZiAoKGkgJiAxKSA9PSAwKQ0KPiArCQlpZiAoKChpICYgMSkg PT0gMCAmJiBpbnRlcm5hbC0+ZGV2aWNlX3R5cGUgPT0gSUZDVkZfTkVUKSB8fA0KPiArCQkgICAg IGludGVybmFsLT5kZXZpY2VfdHlwZSA9PSBJRkNWRl9CTEspIHsNCj4gICAJCQl1cGRhdGVfdXNl ZF9yaW5nKGludGVybmFsLCBpKTsNCj4gKwkJfQ0KPiAgIA0KPiAgIAkJcnRlX3Zob3N0X2dldF92 aG9zdF92cmluZyh2aWQsIGksICZ2cSk7DQo+ICAgCQlsZW4gPSBJRkNWRl9VU0VEX1JJTkdfTEVO KHZxLnNpemUpOyBAQCAtNzI2LDYgKzc5MCw4IEBAIHN0cnVjdCANCj4gcnRlX3ZkcGFfZGV2X2lu Zm8gew0KPiAgIAkJCSh1aW50NjRfdCkodWludHB0cl90KWludGVybmFsLT5tX3ZyaW5nW2ldLmRl c2MsDQo+ICAgCQkJbV92cmluZ19pb3ZhLCBzaXplKTsNCj4gICANCj4gKwkJaHctPnZyaW5nW2ld Lmxhc3RfYXZhaWxfaWR4ID0gdnEudXNlZC0+aWR4Ow0KPiArCQlody0+dnJpbmdbaV0ubGFzdF91 c2VkX2lkeCA9IHZxLnVzZWQtPmlkeDsNCj4gICAJCXJ0ZV92aG9zdF9zZXRfdnJpbmdfYmFzZSh2 aWQsIGksIGh3LT52cmluZ1tpXS5sYXN0X2F2YWlsX2lkeCwNCj4gICAJCQkJaHctPnZyaW5nW2ld Lmxhc3RfdXNlZF9pZHgpOw0KPiAgIAkJcnRlX2ZyZWUoaW50ZXJuYWwtPm1fdnJpbmdbaV0uZGVz Yyk7DQo+IEBAIC03NzYsMTcgKzg0MiwzNiBAQCBzdHJ1Y3QgcnRlX3ZkcGFfZGV2X2luZm8gew0K PiAgIAkJfQ0KPiAgIAl9DQo+ICAgDQo+IC0JZm9yIChxaWQgPSAwOyBxaWQgPCBxX251bTsgcWlk ICs9IDIpIHsNCj4gLQkJZXYuZXZlbnRzID0gRVBPTExJTiB8IEVQT0xMUFJJOw0KPiAtCQkvKiBs ZWF2ZSBhIGZsYWcgdG8gbWFyayBpdCdzIGZvciBpbnRlcnJ1cHQgKi8NCj4gLQkJZXYuZGF0YS51 NjQgPSAxIHwgcWlkIDw8IDEgfA0KPiAtCQkJKHVpbnQ2NF90KWludGVybmFsLT5pbnRyX2ZkW3Fp ZF0gPDwgMzI7DQo+IC0JCWlmIChlcG9sbF9jdGwoZXBmZCwgRVBPTExfQ1RMX0FERCwgaW50ZXJu YWwtPmludHJfZmRbcWlkXSwgJmV2KQ0KPiAtCQkJCTwgMCkgew0KPiAtCQkJRFJWX0xPRyhFUlIs ICJlcG9sbCBhZGQgZXJyb3I6ICVzIiwgc3RyZXJyb3IoZXJybm8pKTsNCj4gLQkJCXJldHVybiBO VUxMOw0KPiArCWlmIChpbnRlcm5hbC0+ZGV2aWNlX3R5cGUgPT0gSUZDVkZfTkVUKSB7DQo+ICsJ CWZvciAocWlkID0gMDsgcWlkIDwgcV9udW07IHFpZCArPSAyKSB7DQo+ICsJCQlldi5ldmVudHMg PSBFUE9MTElOIHwgRVBPTExQUkk7DQo+ICsJCQkvKiBsZWF2ZSBhIGZsYWcgdG8gbWFyayBpdCdz IGZvciBpbnRlcnJ1cHQgKi8NCj4gKwkJCWV2LmRhdGEudTY0ID0gMSB8IHFpZCA8PCAxIHwNCj4g KwkJCQkodWludDY0X3QpaW50ZXJuYWwtPmludHJfZmRbcWlkXSA8PCAzMjsNCj4gKwkJCWlmIChl cG9sbF9jdGwoZXBmZCwgRVBPTExfQ1RMX0FERCwNCj4gKwkJCQkgICAgICBpbnRlcm5hbC0+aW50 cl9mZFtxaWRdLCAmZXYpDQo+ICsJCQkJCTwgMCkgew0KPiArCQkJCURSVl9MT0coRVJSLCAiZXBv bGwgYWRkIGVycm9yOiAlcyIsDQo+ICsJCQkJCXN0cmVycm9yKGVycm5vKSk7DQo+ICsJCQkJcmV0 dXJuIE5VTEw7DQo+ICsJCQl9DQo+ICsJCQl1cGRhdGVfdXNlZF9yaW5nKGludGVybmFsLCBxaWQp Ow0KPiArCQl9DQo+ICsJfSBlbHNlIGlmIChpbnRlcm5hbC0+ZGV2aWNlX3R5cGUgPT0gSUZDVkZf QkxLKSB7DQo+ICsJCWZvciAocWlkID0gMDsgcWlkIDwgcV9udW07IHFpZCArPSAxKSB7DQo+ICsJ CQlldi5ldmVudHMgPSBFUE9MTElOIHwgRVBPTExQUkk7DQo+ICsJCQkvKiBsZWF2ZSBhIGZsYWcg dG8gbWFyayBpdCdzIGZvciBpbnRlcnJ1cHQgKi8NCj4gKwkJCWV2LmRhdGEudTY0ID0gMSB8IHFp ZCA8PCAxIHwNCj4gKwkJCQkodWludDY0X3QpaW50ZXJuYWwtPmludHJfZmRbcWlkXSA8PCAzMjsN Cj4gKwkJCWlmIChlcG9sbF9jdGwoZXBmZCwgRVBPTExfQ1RMX0FERCwNCj4gKwkJCQkgICAgICBp bnRlcm5hbC0+aW50cl9mZFtxaWRdLCAmZXYpDQo+ICsJCQkJCTwgMCkgew0KPiArCQkJCURSVl9M T0coRVJSLCAiZXBvbGwgYWRkIGVycm9yOiAlcyIsDQo+ICsJCQkJCXN0cmVycm9yKGVycm5vKSk7 DQo+ICsJCQkJcmV0dXJuIE5VTEw7DQo+ICsJCQl9DQo+ICsJCQl1cGRhdGVfdXNlZF9yaW5nKGlu dGVybmFsLCBxaWQpOw0KPiAgIAkJfQ0KPiAtCQl1cGRhdGVfdXNlZF9yaW5nKGludGVybmFsLCBx aWQpOw0KPiAgIAl9DQo+ICAgDQo+ICAgCS8qIHN0YXJ0IHJlbGF5IHdpdGggYSBmaXJzdCBraWNr ICovIEBAIC04NzQsNyArOTU5LDEwIEBAIHN0cnVjdCANCj4gcnRlX3ZkcGFfZGV2X2luZm8gew0K PiAgIA0KPiAgIAkvKiBzdG9wIHRoZSBkaXJlY3QgSU8gZGF0YSBwYXRoICovDQo+ICAgCXVuc2V0 X25vdGlmeV9yZWxheShpbnRlcm5hbCk7DQo+IC0JdmRwYV9pZmN2Zl9zdG9wKGludGVybmFsKTsN Cj4gKwlpZiAoaW50ZXJuYWwtPmRldmljZV90eXBlID09IElGQ1ZGX05FVCkNCj4gKwkJdmRwYV9p ZmN2Zl9zdG9wKGludGVybmFsKTsNCj4gKwllbHNlIGlmIChpbnRlcm5hbC0+ZGV2aWNlX3R5cGUg PT0gSUZDVkZfQkxLKQ0KPiArCQl2ZHBhX2lmY3ZmX2Jsa19wYXVzZShpbnRlcm5hbCk7DQo+ICAg CXZkcGFfZGlzYWJsZV92ZmlvX2ludHIoaW50ZXJuYWwpOw0KPiAgIA0KPiAgIAlyZXQgPSBydGVf dmhvc3RfaG9zdF9ub3RpZmllcl9jdHJsKHZpZCwgUlRFX1ZIT1NUX1FVRVVFX0FMTCwgDQo+IGZh bHNlKTsNCg0K