From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by dpdk.space (Postfix) with ESMTP id 8B23DA05D3 for ; Wed, 22 May 2019 13:04:51 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 3A2E010BD; Wed, 22 May 2019 13:04:50 +0200 (CEST) Received: from baidu.com (mx21.baidu.com [220.181.3.85]) by dpdk.org (Postfix) with ESMTP id 04C78A49 for ; Wed, 22 May 2019 13:04:47 +0200 (CEST) Received: from M1-MAIL-EX04.internal.baidu.com (unknown [10.44.83.49]) by Forcepoint Email with ESMTPS id 6FAAA29CFBAE9; Wed, 22 May 2019 19:04:43 +0800 (CST) Received: from M1-MAIL-EX03.internal.baidu.com (10.44.83.52) by M1-MAIL-EX04.internal.baidu.com (10.44.83.49) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1531.3; Wed, 22 May 2019 19:04:44 +0800 Received: from M1-MAIL-EX03.internal.baidu.com ([100.100.100.203]) by M1-MAIL-EX03.internal.baidu.com ([100.100.100.203]) with mapi id 15.01.1531.010; Wed, 22 May 2019 19:04:44 +0800 From: "Li,Lin(ACG Cloud)" To: Maxime Coquelin , Li Lin , "tiwei.bie@intel.com" , "zhihong.wang@intel.com" CC: "dev@dpdk.org" , "dariusz.stojaczyk@intel.com" , "changpeng.liu@intel.com" , "james.r.harris@intel.com" , "Xie,Yongji" , "Ni,Xun" , "Zhang,Yu(ACG Cloud)" Thread-Topic: [PATCH v4] vhost: support inflight share memory protocol feature Thread-Index: AQHVAyFf8JGGrsPaYUOp8i/DI8NtIaZvAzCAgAgRuLA= Date: Wed, 22 May 2019 11:04:43 +0000 Message-ID: References: <1556271621-8594-1-git-send-email-chuckylinchuckylin@gmail.com> <1557046942-1151-1-git-send-email-chuckylinchuckylin@gmail.com> <8ba5c1ff-08ea-6cb2-c201-b972e79da4fc@redhat.com> In-Reply-To: <8ba5c1ff-08ea-6cb2-c201-b972e79da4fc@redhat.com> Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [172.24.152.229] x-baidu-bdmsfe-datecheck: 1_M1-MAIL-EX04_2019-05-22 19:04:44:277 x-baidu-bdmsfe-viruscheck: M1-MAIL-EX04_GRAY_Inside_WithoutAtta_2019-05-22 19:04:44:246 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: [dpdk-dev] =?utf-8?b?562U5aSNOiBbUEFUQ0ggdjRdIHZob3N0OiBzdXBwb3J0?= =?utf-8?q?_inflight_share_memory_protocol_feature?= X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" DQoNCj4gLS0tLS3pgq7ku7bljp/ku7YtLS0tLQ0KPiDlj5Hku7bkuro6IE1heGltZSBDb3F1ZWxp biBbbWFpbHRvOm1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tXQ0KPiDlj5HpgIHml7bpl7Q6IDIw MTnlubQ15pyIMTfml6UgMjM6NDcNCj4g5pS25Lu25Lq6OiBMaSBMaW4gPGNodWNreWxpbmNodWNr eWxpbkBnbWFpbC5jb20+OyB0aXdlaS5iaWVAaW50ZWwuY29tOw0KPiB6aGlob25nLndhbmdAaW50 ZWwuY29tDQo+IOaKhOmAgTogZGV2QGRwZGsub3JnOyBkYXJpdXN6LnN0b2phY3p5a0BpbnRlbC5j b207IGNoYW5ncGVuZy5saXVAaW50ZWwuY29tOw0KPiBqYW1lcy5yLmhhcnJpc0BpbnRlbC5jb207 IFhpZSxZb25namkgPHhpZXlvbmdqaUBiYWlkdS5jb20+OyBMaSxMaW4oQUNHIENsb3VkKQ0KPiA8 bGlsaW4yNEBiYWlkdS5jb20+OyBOaSxYdW4gPG5peHVuQGJhaWR1LmNvbT47IFpoYW5nLFl1KEFD RyBDbG91ZCkNCj4gPHpoYW5neXUzMUBiYWlkdS5jb20+DQo+IOS4u+mimDogUmU6IFtQQVRDSCB2 NF0gdmhvc3Q6IHN1cHBvcnQgaW5mbGlnaHQgc2hhcmUgbWVtb3J5IHByb3RvY29sIGZlYXR1cmUN Cj4gDQo+IA0KPiANCj4gT24gNS81LzE5IDExOjAyIEFNLCBMaSBMaW4gd3JvdGU6DQo+ID4gRnJv bTogTGkgTGluIDxsaWxpbjI0QGJhaWR1LmNvbT4NCj4gPg0KPiA+IFRoaXMgcGF0Y2ggaW50cm9k dWNlcyB0d28gbmV3IG1lc3NhZ2VzIFZIT1NUX1VTRVJfR0VUX0lORkxJR0hUX0ZEDQo+IGFuZA0K PiA+IFZIT1NUX1VTRVJfU0VUX0lORkxJR0hUX0ZEIHRvIHN1cHBvcnQgdHJhbnNmZXJyaW5nIGEg c2hhcmVkIGJ1ZmZlcg0KPiA+IGJldHdlZW4gcWVtdSBhbmQgYmFja2VuZC4NCj4gPg0KPiA+IEZp cnN0bHksIHFlbXUgdXNlcyBWSE9TVF9VU0VSX0dFVF9JTkZMSUdIVF9GRCB0byBnZXQgdGhlIHNo YXJlZCBidWZmZXINCj4gPiBmcm9tIGJhY2tlbmQuIFRoZW4gcWVtdSBzaG91bGQgc2VuZCBpdCBi YWNrIHRocm91Z2gNCj4gPiBWSE9TVF9VU0VSX1NFVF9JTkZMSUdIVF9GRCBlYWNoIHRpbWUgd2Ug c3RhcnQgdmhvc3QtdXNlci4NCj4gPg0KPiA+IFRoaXMgc2hhcmVkIGJ1ZmZlciBpcyB1c2VkIHRv IHByb2Nlc3MgaW5mbGlnaHQgSS9PIHdoZW4gYmFja2VuZA0KPiA+IHJlY29ubmVjdC4NCj4gPg0K PiA+IFNpZ25lZC1vZmYtYnk6IExpIExpbiA8bGlsaW4yNEBiYWlkdS5jb20+DQo+ID4gU2lnbmVk LW9mZi1ieTogTmkgWHVuIDxuaXh1bkBiYWlkdS5jb20+DQo+ID4gU2lnbmVkLW9mZi1ieTogWmhh bmcgWXUgPHpoYW5neXUzMUBiYWlkdS5jb20+DQo+ID4gLS0tDQo+ID4gdjIgLSBhZGQgc2V0JmNs ciBpbmZsaWdodCBkZXNjIGZ1bmN0aW9ucw0KPiA+IHYzIC0gc2ltcGxpZmllZCBzb21lIGZ1bmN0 aW9ucyBpbXBsZW1lbnRhdGlvbg0KPiA+IHY0IC0gcmV3b3JrIHNvbWUgZGF0YSBzdHJ1Y3R1cmVz IGFjY29yZGluZyB0byBxZW11IGRvYw0KPiA+DQo+ID4gICBsaWIvbGlicnRlX3Zob3N0L3J0ZV92 aG9zdC5oICAgICAgICAgICB8ICA4MyArKysrKysrKysrDQo+ID4gICBsaWIvbGlicnRlX3Zob3N0 L3J0ZV92aG9zdF92ZXJzaW9uLm1hcCB8ICAgMyArDQo+ID4gICBsaWIvbGlicnRlX3Zob3N0L3Zo b3N0LmMgICAgICAgICAgICAgICB8IDEwNSArKysrKysrKysrKysNCj4gPiAgIGxpYi9saWJydGVf dmhvc3Qvdmhvc3QuaCAgICAgICAgICAgICAgIHwgIDEyICsrDQo+ID4gICBsaWIvbGlicnRlX3Zo b3N0L3Zob3N0X3VzZXIuYyAgICAgICAgICB8IDI5Mg0KPiArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysNCj4gPiAgIGxpYi9saWJydGVfdmhvc3Qvdmhvc3RfdXNlci5oICAgICAgICAg IHwgIDEzICstDQo+ID4gICA2IGZpbGVzIGNoYW5nZWQsIDUwNyBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV92aG9zdC9ydGVfdmhv c3QuaA0KPiA+IGIvbGliL2xpYnJ0ZV92aG9zdC9ydGVfdmhvc3QuaCBpbmRleCBkMmMwYzkzZjQu LmQ0ZDcwOTcxNyAxMDA2NDQNCj4gPiAtLS0gYS9saWIvbGlicnRlX3Zob3N0L3J0ZV92aG9zdC5o DQo+ID4gKysrIGIvbGliL2xpYnJ0ZV92aG9zdC9ydGVfdmhvc3QuaA0KPiA+IEBAIC03MSw2ICs3 MSwxMCBAQCBleHRlcm4gIkMiIHsNCj4gPiAgICNkZWZpbmUgVkhPU1RfVVNFUl9QUk9UT0NPTF9G X0hPU1RfTk9USUZJRVIgMTENCj4gPiAgICNlbmRpZg0KPiA+DQo+ID4gKyNpZm5kZWYgVkhPU1Rf VVNFUl9QUk9UT0NPTF9GX0lORkxJR0hUX1NITUZEDQo+ID4gKyNkZWZpbmUgVkhPU1RfVVNFUl9Q Uk9UT0NPTF9GX0lORkxJR0hUX1NITUZEIDEyICNlbmRpZg0KPiA+ICsNCj4gPiAgIC8qKiBJbmRp Y2F0ZSB3aGV0aGVyIHByb3RvY29sIGZlYXR1cmVzIG5lZ290aWF0aW9uIGlzIHN1cHBvcnRlZC4g Ki8NCj4gPiAgICNpZm5kZWYgVkhPU1RfVVNFUl9GX1BST1RPQ09MX0ZFQVRVUkVTDQo+ID4gICAj ZGVmaW5lIFZIT1NUX1VTRVJfRl9QUk9UT0NPTF9GRUFUVVJFUwkzMA0KPiA+IEBAIC05OCwxMiAr MTAyLDQxIEBAIHN0cnVjdCBydGVfdmhvc3RfbWVtb3J5IHsNCj4gPiAgIAlzdHJ1Y3QgcnRlX3Zo b3N0X21lbV9yZWdpb24gcmVnaW9uc1tdOw0KPiA+ICAgfTsNCj4gPg0KPiA+ICtzdHJ1Y3QgaW5m bGlnaHRfZGVzYyB7DQo+ID4gKwl1aW50OF90IGluZmxpZ2h0Ow0KPiA+ICsJdWludDhfdCBwYWRk aW5nWzVdOw0KPiA+ICsJdWludDE2X3QgbmV4dDsNCj4gPiArCXVpbnQ2NF90IGNvdW50ZXI7DQo+ ID4gK307DQo+ID4gKw0KPiA+ICtzdHJ1Y3QgaW5mbGlnaHRfaW5mbyB7DQo+ID4gKwl1aW50NjRf dCBmZWF0dXJlczsNCj4gPiArCXVpbnQxNl90IHZlcnNpb247DQo+ID4gKwl1aW50MTZfdCBkZXNj X251bTsNCj4gPiArCXVpbnQxNl90IGxhc3RfaW5mbGlnaHRfaW87DQo+ID4gKwl1aW50MTZfdCB1 c2VkX2lkeDsNCj4gPiArCXN0cnVjdCBpbmZsaWdodF9kZXNjIGRlc2NbMF07DQo+ID4gK307DQo+ ID4gKw0KPiA+ICtzdHJ1Y3QgcmVzdWJtaXRfZGVzYyB7DQo+ID4gKwl1aW50MTZfdCBpbmRleDsN Cj4gPiArCXVpbnQ2NF90IGNvdW50ZXI7DQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdHJ1Y3QgcmVz dWJtaXRfaW5mbyB7DQo+ID4gKwlzdHJ1Y3QgcmVzdWJtaXRfZGVzYyAqcmVzdWJtaXRfbGlzdDsN Cj4gPiArCXVpbnQxNl90IHJlc3VibWl0X251bTsNCj4gPiArfTsNCj4gPiArDQo+ID4gICBzdHJ1 Y3QgcnRlX3Zob3N0X3ZyaW5nIHsNCj4gPiAgIAlzdHJ1Y3QgdnJpbmdfZGVzYwkqZGVzYzsNCj4g PiAgIAlzdHJ1Y3QgdnJpbmdfYXZhaWwJKmF2YWlsOw0KPiA+ICAgCXN0cnVjdCB2cmluZ191c2Vk CSp1c2VkOw0KPiA+ICAgCXVpbnQ2NF90CQlsb2dfZ3Vlc3RfYWRkcjsNCj4gPg0KPiA+ICsJc3Ry dWN0IGluZmxpZ2h0X2luZm8JKmluZmxpZ2h0Ow0KPiA+ICsJc3RydWN0IHJlc3VibWl0X2luZm8J KnJlc3VibWl0Ow0KPiA+ICsNCj4gPiAgIAkvKiogRGVwcmVjYXRlZCwgdXNlIHJ0ZV92aG9zdF92 cmluZ19jYWxsKCkgaW5zdGVhZC4gKi8NCj4gPiAgIAlpbnQJCQljYWxsZmQ7DQo+ID4NCj4gPiBA QCAtNjMyLDYgKzY2NSw1NiBAQCBpbnQgcnRlX3Zob3N0X2dldF92aG9zdF92cmluZyhpbnQgdmlk LCB1aW50MTZfdA0KPiB2cmluZ19pZHgsDQo+ID4gICBpbnQgcnRlX3Zob3N0X3ZyaW5nX2NhbGwo aW50IHZpZCwgdWludDE2X3QgdnJpbmdfaWR4KTsNCj4gPg0KPiA+ICAgLyoqDQo+ID4gKyAqIHNl dCBpbmZsaWdodCBmbGFnIGZvciBhIGRlc2MuDQo+ID4gKyAqDQo+ID4gKyAqIEBwYXJhbSB2aWQN Cj4gPiArICogIHZob3N0IGRldmljZSBJRA0KPiA+ICsgKiBAcGFyYW0gdnJpbmdfaWR4DQo+ID4g KyAqICB2cmluZyBpbmRleA0KPiA+ICsgKiBAcGFyYW0gaWR4DQo+ID4gKyAqICBpbmZsaWdodCBl bnRyeSBpbmRleA0KPiA+ICsgKiBAcmV0dXJuDQo+ID4gKyAqICAwIG9uIHN1Y2Nlc3MsIC0xIG9u IGZhaWx1cmUNCj4gPiArICovDQo+ID4gK2ludCBfX3J0ZV9leHBlcmltZW50YWwNCj4gPiArcnRl X3Zob3N0X3NldF9pbmZsaWdodF9kZXNjKGludCB2aWQsIHVpbnQxNl90IHZyaW5nX2lkeCwNCj4g PiArCQl1aW50MTZfdCBpZHgpOw0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAqIGNsZWFyIGluZmxp Z2h0IGZsYWcgZm9yIGEgZGVzYy4NCj4gPiArICoNCj4gPiArICogQHBhcmFtIHZpZA0KPiA+ICsg KiAgdmhvc3QgZGV2aWNlIElEDQo+ID4gKyAqIEBwYXJhbSB2cmluZ19pZHgNCj4gPiArICogIHZy aW5nIGluZGV4DQo+ID4gKyAqIEBwYXJhbSBsYXN0X3VzZWRfaWR4DQo+ID4gKyAqICBuZXh0IGZy ZWUgdXNlZF9pZHgNCj4gPiArICogQHBhcmFtIGlkeA0KPiA+ICsgKiAgaW5mbGlnaHQgZW50cnkg aW5kZXgNCj4gPiArICogQHJldHVybg0KPiA+ICsgKiAgMCBvbiBzdWNjZXNzLCAtMSBvbiBmYWls dXJlDQo+ID4gKyAqLw0KPiA+ICtpbnQgX19ydGVfZXhwZXJpbWVudGFsDQo+ID4gK3J0ZV92aG9z dF9jbHJfaW5mbGlnaHRfZGVzYyhpbnQgdmlkLCB1aW50MTZfdCB2cmluZ19pZHgsDQo+ID4gKwkJ dWludDE2X3QgbGFzdF91c2VkX2lkeCwgdWludDE2X3QgaWR4KTsNCj4gPiArDQo+ID4gKy8qKg0K PiA+ICsgKiBzZXQgbGFzdCBpbmZsaWdodCBpbyBpbmRleC4NCj4gPiArICoNCj4gPiArICogQHBh cmFtIHZpZA0KPiA+ICsgKiAgdmhvc3QgZGV2aWNlIElEDQo+ID4gKyAqIEBwYXJhbSB2cmluZ19p ZHgNCj4gPiArICogIHZyaW5nIGluZGV4DQo+ID4gKyAqIEBwYXJhbSBpZHgNCj4gPiArICogIGlu ZmxpZ2h0IGVudHJ5IGluZGV4DQo+ID4gKyAqIEByZXR1cm4NCj4gPiArICogIDAgb24gc3VjY2Vz cywgLTEgb24gZmFpbHVyZQ0KPiA+ICsgKi8NCj4gPiAraW50IF9fcnRlX2V4cGVyaW1lbnRhbA0K PiA+ICtydGVfdmhvc3Rfc2V0X2xhc3RfaW5mbGlnaHRfaW8oaW50IHZpZCwgdWludDE2X3QgdnJp bmdfaWR4LA0KPiA+ICsJCXVpbnQxNl90IGlkeCk7DQo+ID4gKw0KPiA+ICsvKioNCj4gPiAgICAq IEdldCB2aG9zdCBSWCBxdWV1ZSBhdmFpbCBjb3VudC4NCj4gPiAgICAqDQo+ID4gICAgKiBAcGFy YW0gdmlkDQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfdmhvc3QvcnRlX3Zob3N0X3ZlcnNp b24ubWFwDQo+ID4gYi9saWIvbGlicnRlX3Zob3N0L3J0ZV92aG9zdF92ZXJzaW9uLm1hcA0KPiA+ IGluZGV4IDVmMWQ0YTc1Yy4uYTk5MmIzOTM1IDEwMDY0NA0KPiA+IC0tLSBhL2xpYi9saWJydGVf dmhvc3QvcnRlX3Zob3N0X3ZlcnNpb24ubWFwDQo+ID4gKysrIGIvbGliL2xpYnJ0ZV92aG9zdC9y dGVfdmhvc3RfdmVyc2lvbi5tYXANCj4gPiBAQCAtODcsNCArODcsNyBAQCBFWFBFUklNRU5UQUwg ew0KPiA+ICAgCXJ0ZV92ZHBhX3JlbGF5X3ZyaW5nX3VzZWQ7DQo+ID4gICAJcnRlX3Zob3N0X2V4 dGVybl9jYWxsYmFja19yZWdpc3RlcjsNCj4gPiAgIAlydGVfdmhvc3RfZHJpdmVyX3NldF9wcm90 b2NvbF9mZWF0dXJlczsNCj4gPiArCXJ0ZV92aG9zdF9zZXRfaW5mbGlnaHRfZGVzYzsNCj4gPiAr CXJ0ZV92aG9zdF9jbHJfaW5mbGlnaHRfZGVzYzsNCj4gPiArCXJ0ZV92aG9zdF9zZXRfbGFzdF9p bmZsaWdodF9pbzsNCj4gPiAgIH07DQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfdmhvc3Qv dmhvc3QuYyBiL2xpYi9saWJydGVfdmhvc3Qvdmhvc3QuYyBpbmRleA0KPiA+IDE2M2Y0NTk1ZS4u MDNlYWIzNTUxIDEwMDY0NA0KPiA+IC0tLSBhL2xpYi9saWJydGVfdmhvc3Qvdmhvc3QuYw0KPiA+ ICsrKyBiL2xpYi9saWJydGVfdmhvc3Qvdmhvc3QuYw0KPiA+IEBAIC03Niw2ICs3NiwxNiBAQCBj bGVhbnVwX3ZxKHN0cnVjdCB2aG9zdF92aXJ0cXVldWUgKnZxLCBpbnQgZGVzdHJveSkNCj4gPiAg IAkJY2xvc2UodnEtPmNhbGxmZCk7DQo+ID4gICAJaWYgKHZxLT5raWNrZmQgPj0gMCkNCj4gPiAg IAkJY2xvc2UodnEtPmtpY2tmZCk7DQo+ID4gKwlpZiAodnEtPmluZmxpZ2h0KQ0KPiA+ICsJCXZx LT5pbmZsaWdodCA9IE5VTEw7DQo+ID4gKwlpZiAodnEtPnJlc3VibWl0LT5yZXN1Ym1pdF9saXN0 KSB7DQo+ID4gKwkJZnJlZSh2cS0+cmVzdWJtaXQtPnJlc3VibWl0X2xpc3QpOw0KPiA+ICsJCXZx LT5yZXN1Ym1pdC0+cmVzdWJtaXRfbGlzdCA9IE5VTEw7DQo+ID4gKwl9DQo+ID4gKwlpZiAodnEt PnJlc3VibWl0KSB7DQo+ID4gKwkJZnJlZSh2cS0+cmVzdWJtaXQpOw0KPiA+ICsJCXZxLT5yZXN1 Ym1pdCA9IE5VTEw7DQo+ID4gKwl9DQo+ID4gICB9DQo+ID4NCj4gPiAgIC8qDQo+ID4gQEAgLTU4 OSw2ICs1OTksOSBAQCBydGVfdmhvc3RfZ2V0X3Zob3N0X3ZyaW5nKGludCB2aWQsIHVpbnQxNl90 DQo+IHZyaW5nX2lkeCwNCj4gPiAgIAl2cmluZy0+a2lja2ZkICA9IHZxLT5raWNrZmQ7DQo+ID4g ICAJdnJpbmctPnNpemUgICAgPSB2cS0+c2l6ZTsNCj4gPg0KPiA+ICsJdnJpbmctPmluZmxpZ2h0 ID0gdnEtPmluZmxpZ2h0Ow0KPiA+ICsJdnJpbmctPnJlc3VibWl0ID0gdnEtPnJlc3VibWl0Ow0K PiA+ICsNCj4gPiAgIAlyZXR1cm4gMDsNCj4gPiAgIH0NCj4gPg0KPiA+IEBAIC02MTcsNiArNjMw LDk4IEBAIHJ0ZV92aG9zdF92cmluZ19jYWxsKGludCB2aWQsIHVpbnQxNl90IHZyaW5nX2lkeCkN Cj4gPiAgIAlyZXR1cm4gMDsNCj4gPiAgIH0NCj4gPg0KPiA+ICtpbnQNCj4gPiArcnRlX3Zob3N0 X3NldF9pbmZsaWdodF9kZXNjKGludCB2aWQsIHVpbnQxNl90IHZyaW5nX2lkeCwgdWludDE2X3QN Cj4gPiAraWR4KSB7DQo+ID4gKwlzdHJ1Y3QgdmlydGlvX25ldCAqZGV2Ow0KPiA+ICsJc3RydWN0 IHZob3N0X3ZpcnRxdWV1ZSAqdnE7DQo+ID4gKw0KPiA+ICsJZGV2ID0gZ2V0X2RldmljZSh2aWQp Ow0KPiA+ICsJaWYgKCFkZXYpDQo+ID4gKwkJcmV0dXJuIC0xOw0KPiA+ICsNCj4gPiArCWlmICgh KGRldi0+ZmVhdHVyZXMgJg0KPiA+ICsJCSgxVUxMIDw8IFZIT1NUX1VTRVJfUFJPVE9DT0xfRl9J TkZMSUdIVF9TSE1GRCkpKQ0KPiA+ICsJCXJldHVybiAwOw0KPiANCj4gU2hvdWxkbid0IC0xIGJl IHJldHVybmVkIGhlcmUgYWxzbz8NCj4gSSB0aGluayB0aGlzIGZ1bmN0aW9uIHNob3VsZCBiZSBj YWxsZWQgb25seSBpZiB0aGUgZmVhdHVyZSBuZWdvdGlhdGlvbiBzdWNjZWVkZWQuDQo+IA0KPiBS ZXR1cm5pbmcgYW4gZXJyb3IgaGVyZSB3b3VsZCBoZWxwIHRoZSBjYWxsaW5nIGFwcGxpY2F0aW9u IHRvIGtub3cgc29tZXRoaW5nDQo+IHdlbnQgd3JvbmcuDQo+IA0KPiBTYW1lIGNvbW1lbnQgYXBw bGllcyBmb3IgdGhlIGNsZWFyIGZ1bmN0aW9uLg0KDQpJZiB0aGUgZmVhdHVyZSBpcyBub3Qgc2V0 77yMc2V0ICYgY2xyIGZ1bmN0aW9uIHJldHVybnMgZGlyZWN0bHkuDQpUaGV5IGFyZSBzaW1pbGFy IHRvIGVtcHR5IGZ1bmN0aW9ucy4NClRoZSByZXR1cm4gdmFsdWUgaXMgLSAxLCB3aGljaCByZXBy ZXNlbnRzIGFuIGVycm9yIGluIGZ1bmN0aW9uIGV4ZWN1dGlvbg0KYW5kIHVuZXhwZWN0ZWQgYmVo YXZpb3IuDQoNCj4gPiArDQo+ID4gKwlpZiAodnJpbmdfaWR4ID49IFZIT1NUX01BWF9WUklORykN Cj4gPiArCQlyZXR1cm4gLTE7DQo+ID4gKw0KPiA+ICsJdnEgPSBkZXYtPnZpcnRxdWV1ZVt2cmlu Z19pZHhdOw0KPiA+ICsJaWYgKCF2cSkNCj4gPiArCQlyZXR1cm4gLTE7DQo+ID4gKw0KPiA+ICsJ aWYgKHVubGlrZWx5KCF2cS0+aW5mbGlnaHQpKQ0KPiA+ICsJCXJldHVybiAtMTsNCj4gPiArDQo+ ID4gKwl2cS0+aW5mbGlnaHQtPmRlc2NbaWR4XS5jb3VudGVyID0gdnEtPmNvdW50ZXIrKzsNCj4g PiArCXZxLT5pbmZsaWdodC0+ZGVzY1tpZHhdLmluZmxpZ2h0ID0gMTsNCj4gPiArCXJldHVybiAw Ow0KPiA+ICt9DQo+ID4gKw0KPiA+ICtpbnQNCj4gPiArcnRlX3Zob3N0X2Nscl9pbmZsaWdodF9k ZXNjKGludCB2aWQsIHVpbnQxNl90IHZyaW5nX2lkeCwNCj4gPiArCXVpbnQxNl90IGxhc3RfdXNl ZF9pZHgsIHVpbnQxNl90IGlkeCkgew0KPiA+ICsJc3RydWN0IHZpcnRpb19uZXQgKmRldjsNCj4g PiArCXN0cnVjdCB2aG9zdF92aXJ0cXVldWUgKnZxOw0KPiA+ICsNCj4gPiArCWRldiA9IGdldF9k ZXZpY2UodmlkKTsNCj4gPiArCWlmICghZGV2KQ0KPiA+ICsJCXJldHVybiAtMTsNCj4gPiArDQo+ ID4gKwlpZiAoIShkZXYtPmZlYXR1cmVzICYNCj4gPiArCQkoMVVMTCA8PCBWSE9TVF9VU0VSX1BS T1RPQ09MX0ZfSU5GTElHSFRfU0hNRkQpKSkNCj4gPiArCQlyZXR1cm4gMDsNCj4gPiArDQo+ID4g KwlpZiAodnJpbmdfaWR4ID49IFZIT1NUX01BWF9WUklORykNCj4gPiArCQlyZXR1cm4gLTE7DQo+ ID4gKw0KPiA+ICsJdnEgPSBkZXYtPnZpcnRxdWV1ZVt2cmluZ19pZHhdOw0KPiA+ICsJaWYgKCF2 cSkNCj4gPiArCQlyZXR1cm4gLTE7DQo+ID4gKw0KPiA+ICsJaWYgKHVubGlrZWx5KCF2cS0+aW5m bGlnaHQpKQ0KPiA+ICsJCXJldHVybiAtMTsNCj4gPiArDQo+ID4gKwlydGVfY29tcGlsZXJfYmFy cmllcigpOw0KPiA+ICsNCj4gPiArCXZxLT5pbmZsaWdodC0+ZGVzY1tpZHhdLmluZmxpZ2h0ID0g MDsNCj4gPiArDQo+ID4gKwlydGVfY29tcGlsZXJfYmFycmllcigpOw0KPiA+ICsNCj4gPiArCXZx LT5pbmZsaWdodC0+dXNlZF9pZHggPSBsYXN0X3VzZWRfaWR4Ow0KPiA+ICsJcmV0dXJuIDA7DQo+ ID4gK30NCj4gPiArDQo+ID4gK2ludA0KPiA+ICtydGVfdmhvc3Rfc2V0X2xhc3RfaW5mbGlnaHRf aW8oaW50IHZpZCwgdWludDE2X3QgdnJpbmdfaWR4LCB1aW50MTZfdA0KPiA+ICtpZHgpIHsNCj4g PiArCXN0cnVjdCB2aXJ0aW9fbmV0ICpkZXY7DQo+ID4gKwlzdHJ1Y3Qgdmhvc3RfdmlydHF1ZXVl ICp2cTsNCj4gPiArDQo+ID4gKwlkZXYgPSBnZXRfZGV2aWNlKHZpZCk7DQo+ID4gKwlpZiAoIWRl dikNCj4gPiArCQlyZXR1cm4gLTE7DQo+ID4gKw0KPiA+ICsJaWYgKCEoZGV2LT5mZWF0dXJlcyAm DQo+ID4gKwkJKDFVTEwgPDwgVkhPU1RfVVNFUl9QUk9UT0NPTF9GX0lORkxJR0hUX1NITUZEKSkp DQo+ID4gKwkJcmV0dXJuIDA7DQo+ID4gKw0KPiA+ICsJaWYgKHZyaW5nX2lkeCA+PSBWSE9TVF9N QVhfVlJJTkcpDQo+ID4gKwkJcmV0dXJuIC0xOw0KPiA+ICsNCj4gPiArCXZxID0gZGV2LT52aXJ0 cXVldWVbdnJpbmdfaWR4XTsNCj4gPiArCWlmICghdnEpDQo+ID4gKwkJcmV0dXJuIC0xOw0KPiA+ ICsNCj4gPiArCWlmICh1bmxpa2VseSghdnEtPmluZmxpZ2h0KSkNCj4gPiArCQlyZXR1cm4gLTE7 DQo+ID4gKw0KPiA+ICsJdnEtPmluZmxpZ2h0LT5sYXN0X2luZmxpZ2h0X2lvID0gaWR4Ow0KPiA+ ICsJcmV0dXJuIDA7DQo+ID4gK30NCj4gDQo+IEFyZSBhYm92ZSBmdW5jdGlvbnMgc3VwcG9zZWQg dG8gYmUgY2FsbGVkIGluIHRoZSBob3QgcGF0aD8NCj4gSWYgc28sIHlvdSBtaWdodCB3YW50IHRv IHVzZSB1bmxpa2VseSBmb3IgdGhlIGVycm9yIGNoZWNrcyBldmVyeXdoZXJlLg0KDQpZb3UncmUg cmlnaHQuIEknbGwgbW9kaWZ5IGl0IGluIHRoZSBuZXh0IHZlcnNpb24uDQoNCj4gDQo+ID4gKw0K PiA+ICAgdWludDE2X3QNCj4gPiAgIHJ0ZV92aG9zdF9hdmFpbF9lbnRyaWVzKGludCB2aWQsIHVp bnQxNl90IHF1ZXVlX2lkKQ0KPiA+ICAgew0KPiA+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX3Zo b3N0L3Zob3N0LmggYi9saWIvbGlicnRlX3Zob3N0L3Zob3N0LmggaW5kZXgNCj4gPiBlOTEzOGRm YWIuLjNkYWNlMmVjMyAxMDA2NDQNCj4gPiAtLS0gYS9saWIvbGlicnRlX3Zob3N0L3Zob3N0LmgN Cj4gPiArKysgYi9saWIvbGlicnRlX3Zob3N0L3Zob3N0LmgNCj4gPiBAQCAtMTI4LDYgKzEyOCwx MSBAQCBzdHJ1Y3Qgdmhvc3RfdmlydHF1ZXVlIHsNCj4gPiAgIAkvKiBQaHlzaWNhbCBhZGRyZXNz IG9mIHVzZWQgcmluZywgZm9yIGxvZ2dpbmcgKi8NCj4gPiAgIAl1aW50NjRfdAkJbG9nX2d1ZXN0 X2FkZHI7DQo+ID4NCj4gPiArCS8qIEluZmxpZ2h0IHNoYXJlIG1lbW9yeSBpbmZvICovDQo+ID4g KwlzdHJ1Y3QgaW5mbGlnaHRfaW5mbwkqaW5mbGlnaHQ7DQo+ID4gKwlzdHJ1Y3QgcmVzdWJtaXRf aW5mbwkqcmVzdWJtaXQ7DQo+ID4gKwl1aW50NjRfdCBjb3VudGVyOw0KPiANCj4gY291bnRlciBh bmQgcmVzdWJtaXQgYXJlIHRvbyBnZW5lcmljIG5hbWVzLg0KDQpJJ2xsIG1vZGlmeSB0aGUgbmFt ZXMgaW4gdGhlIG5leHQgdmVyc2lvbi4NCg0KPiANCj4gPiArDQo+ID4gICAJdWludDE2X3QJCW5y X3ptYnVmOw0KPiA+ICAgCXVpbnQxNl90CQl6bWJ1Zl9zaXplOw0KPiA+ICAgCXVpbnQxNl90CQls YXN0X3ptYnVmX2lkeDsNCj4gPiBAQCAtMjg2LDYgKzI5MSwxMiBAQCBzdHJ1Y3QgZ3Vlc3RfcGFn ZSB7DQo+ID4gICAJdWludDY0X3Qgc2l6ZTsNCj4gPiAgIH07DQo+ID4NCj4gPiArc3RydWN0IGlu ZmxpZ2h0X21lbV9pbmZvIHsNCj4gPiArCWludCBmZDsNCj4gPiArCXZvaWQgKmFkZHI7DQo+ID4g Kwl1aW50NjRfdCBzaXplOw0KPiA+ICt9Ow0KPiA+ICsNCj4gPiAgIC8qKg0KPiA+ICAgICogRGV2 aWNlIHN0cnVjdHVyZSBjb250YWlucyBhbGwgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiByZWxh dGluZw0KPiA+ICAgICogdG8gdGhlIGRldmljZS4NCj4gPiBAQCAtMzAzLDYgKzMxNCw3IEBAIHN0 cnVjdCB2aXJ0aW9fbmV0IHsNCj4gPiAgIAl1aW50MzJfdAkJbnJfdnJpbmc7DQo+ID4gICAJaW50 CQkJZGVxdWV1ZV96ZXJvX2NvcHk7DQo+ID4gICAJc3RydWN0IHZob3N0X3ZpcnRxdWV1ZQkqdmly dHF1ZXVlW1ZIT1NUX01BWF9RVUVVRV9QQUlSUyAqIDJdOw0KPiA+ICsJc3RydWN0IGluZmxpZ2h0 X21lbV9pbmZvIGluZmxpZ2h0X2luZm87DQo+ID4gICAjZGVmaW5lIElGX05BTUVfU1ogKFBBVEhf TUFYID4gSUZOQU1TSVogPyBQQVRIX01BWCA6IElGTkFNU0laKQ0KPiA+ICAgCWNoYXIJCQlpZm5h bWVbSUZfTkFNRV9TWl07DQo+ID4gICAJdWludDY0X3QJCWxvZ19zaXplOw0KPiANCj4gRG8geW91 IGhhdmUgc29tZSBjb2RlIGV4YW1wbGUgdXNpbmcgdGhlc2UgbmV3IEFQSXM/DQo+IEl0IHdvdWxk IGhlbHAgZm9yIHJldmlld2luZyB0aGUgcGF0Y2guDQoNClRoaXMgcGF0Y2ggaXMgb25seSB2YWxp ZCBmb3Igdmhvc3QgYmxrLiANClRoZSB1c2Ugb2YgbmV3IHR3byBtZXNzYWdlcyBhbmQgdGhlIGlt cGxlbWVudGF0aW9uIG9mIHBhY2tlZCBxdWV1ZSBhcmUNCmRlc2NyaWJlZCBpbiBkb2NzL3Zob3N0 LXVzZXIudHh0Lg0KDQpJIGhhdmUgc3VibWl0dGVkIFNQREstcmVsYXRlZCBwYXRjaGVzIHRvIHVz ZSBuZXcgQVBJLg0KDQo+IA0KPiBUaGFua3MsDQo+IE1heGltZQ0KPiANCg0K