From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id C83235F19 for ; Thu, 22 Mar 2018 18:23:51 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 22 Mar 2018 10:23:49 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.48,345,1517904000"; d="scan'208";a="41316648" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga001.jf.intel.com with ESMTP; 22 Mar 2018 10:23:48 -0700 Received: from fmsmsx156.amr.corp.intel.com (10.18.116.74) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 22 Mar 2018 10:23:48 -0700 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by fmsmsx156.amr.corp.intel.com (10.18.116.74) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 22 Mar 2018 10:23:48 -0700 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.166]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.129]) with mapi id 14.03.0319.002; Fri, 23 Mar 2018 01:23:45 +0800 From: "Wang, Xiao W" To: "Yigit, Ferruh" , "maxime.coquelin@redhat.com" , "yliu@fridaylinux.org" CC: "dev@dpdk.org" , "Wang, Zhihong" , "Bie, Tiwei" , "Chen, Junjie J" , "Xu, Rosen" , "Daly, Dan" , "Liang, Cunming" , "Burakov, Anatoly" , "gaetan.rivet@6wind.com" Thread-Topic: [dpdk-dev] [PATCH v2 3/3] net/ifcvf: add ifcvf driver Thread-Index: AQHTwM++Owzmq9Jb+E6quhCOxIEQxqPbbikAgADymaA= Date: Thu, 22 Mar 2018 17:23:44 +0000 Message-ID: References: <20180309230809.63361-3-xiao.w.wang@intel.com> <20180321132108.52464-1-xiao.w.wang@intel.com> <20180321132108.52464-4-xiao.w.wang@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiY2JlNjM5ZGUtNTI4Ny00MWY0LWFiMzgtYmU4ZjUxYWUyZTVhIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiJlRzcxbnF2ZkZnVStqaUZ0N2R5M0xCZ250cGVEcU1sbUNTemNwbjRDS3RxYVJBQzJvd2hUS2dNbzNBNkRtbE5rIn0= dlp-product: dlpe-windows dlp-version: 11.0.0.116 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 Subject: Re: [dpdk-dev] [PATCH v2 3/3] net/ifcvf: add ifcvf driver 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: , X-List-Received-Date: Thu, 22 Mar 2018 17:23:52 -0000 SGkgRmVycnVoLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFlpZ2l0 LCBGZXJydWgNCj4gU2VudDogVGh1cnNkYXksIE1hcmNoIDIyLCAyMDE4IDQ6NTEgUE0NCj4gVG86 IFdhbmcsIFhpYW8gVyA8eGlhby53LndhbmdAaW50ZWwuY29tPjsgbWF4aW1lLmNvcXVlbGluQHJl ZGhhdC5jb207DQo+IHlsaXVAZnJpZGF5bGludXgub3JnDQo+IENjOiBkZXZAZHBkay5vcmc7IFdh bmcsIFpoaWhvbmcgPHpoaWhvbmcud2FuZ0BpbnRlbC5jb20+OyBCaWUsIFRpd2VpDQo+IDx0aXdl aS5iaWVAaW50ZWwuY29tPjsgQ2hlbiwgSnVuamllIEogPGp1bmppZS5qLmNoZW5AaW50ZWwuY29t PjsgWHUsIFJvc2VuDQo+IDxyb3Nlbi54dUBpbnRlbC5jb20+OyBEYWx5LCBEYW4gPGRhbi5kYWx5 QGludGVsLmNvbT47IExpYW5nLCBDdW5taW5nDQo+IDxjdW5taW5nLmxpYW5nQGludGVsLmNvbT47 IEJ1cmFrb3YsIEFuYXRvbHkgPGFuYXRvbHkuYnVyYWtvdkBpbnRlbC5jb20+Ow0KPiBnYWV0YW4u cml2ZXRANndpbmQuY29tDQo+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2MiAzLzNd IG5ldC9pZmN2ZjogYWRkIGlmY3ZmIGRyaXZlcg0KPiANCj4gT24gMy8yMS8yMDE4IDE6MjEgUE0s IFhpYW8gV2FuZyB3cm90ZToNCj4gPiBpZmN2ZiBkcml2ZXIgdXNlcyB2ZGV2IGFzIGEgY29udHJv bCBkb21haW4gdG8gbWFuYWdlIGlmYyBWRnMgdGhhdCBiZWxvbmcNCj4gPiB0byBpdC4gSXQgcmVn aXN0ZXJzIHZEUEEgZGV2aWNlIG9wcyB0byB2aG9zdCBsaWIgdG8gZW5hYmxlIHRoZXNlIFZGcyB0 byBiZQ0KPiA+IHVzZWQgYXMgdmhvc3QgZGF0YSBwYXRoIGFjY2VsZXJhdG9yLg0KPiA+DQo+ID4g TGl2ZSBtaWdyYXRpb24gZmVhdHVyZSBpcyBzdXBwb3J0ZWQgYnkgaWZjIFZGIGFuZCB0aGlzIGRy aXZlciBlbmFibGVzDQo+ID4gaXQgYmFzZWQgb24gdmhvc3QgbGliLg0KPiA+DQo+ID4gQmVjYXVz ZSB2RFBBIGRyaXZlciBuZWVkcyB0byBzZXQgdXAgTVNJLVggdmVjdG9yIHRvIGludGVycnVwdCB0 aGUgZ3Vlc3QsDQo+ID4gb25seSB2ZmlvLXBjaSBpcyBzdXBwb3J0ZWQgY3VycmVudGx5Lg0KPiA+ DQo+ID4gU2lnbmVkLW9mZi1ieTogWGlhbyBXYW5nIDx4aWFvLncud2FuZ0BpbnRlbC5jb20+DQo+ ID4gU2lnbmVkLW9mZi1ieTogUm9zZW4gWHUgPHJvc2VuLnh1QGludGVsLmNvbT4NCj4gPiAtLS0N Cj4gPiB2MjoNCj4gPiAtIFJlYmFzZSBvbiBaaGlob25nJ3MgdkRQQSB2MyBwYXRjaCBzZXQuDQo+ ID4gLS0tDQo+ID4gIGNvbmZpZy9jb21tb25fYmFzZSAgICAgICAgICAgICAgICAgICAgICB8ICAg IDYgKw0KPiA+ICBjb25maWcvY29tbW9uX2xpbnV4YXBwICAgICAgICAgICAgICAgICAgfCAgICAx ICsNCj4gPiAgZHJpdmVycy9uZXQvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgIHwgICAgMSAr DQo+ID4gIGRyaXZlcnMvbmV0L2lmY3ZmL01ha2VmaWxlICAgICAgICAgICAgICB8ICAgNDAgKw0K PiA+ICBkcml2ZXJzL25ldC9pZmN2Zi9iYXNlL2lmY3ZmLmMgICAgICAgICAgfCAgMzI5ICsrKysr KysrDQo+ID4gIGRyaXZlcnMvbmV0L2lmY3ZmL2Jhc2UvaWZjdmYuaCAgICAgICAgICB8ICAxNTYg KysrKw0KPiA+ICBkcml2ZXJzL25ldC9pZmN2Zi9iYXNlL2lmY3ZmX29zZGVwLmggICAgfCAgIDUy ICsrDQo+ID4gIGRyaXZlcnMvbmV0L2lmY3ZmL2lmY3ZmX2V0aGRldi5jICAgICAgICB8IDEyNDAN Cj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ICBkcml2ZXJzL25ldC9pZmN2 Zi9ydGVfaWZjdmZfdmVyc2lvbi5tYXAgfCAgICA0ICsNCj4gPiAgbWsvcnRlLmFwcC5tayAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArDQo+IA0KPiBOZWVkIC5pbmkgZmlsZSB0byBy ZXByZXNlbnQgZHJpdmVyIGZlYXR1cmVzLg0KPiBBbHNvIGl0IGlzIGdvb2QgdG8gYWRkIGRyaXZl ciBkb2N1bWVudGF0aW9uIGFuZCBhIG5vdGUgaW50byByZWxlYXNlIG5vdGUgdG8NCj4gYW5ub3Vu Y2UgbmV3IGRyaXZlci4NCg0KV2lsbCBkby4NCg0KPiANCj4gPiAgMTAgZmlsZXMgY2hhbmdlZCwg MTgzMCBpbnNlcnRpb25zKCspDQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL25ldC9p ZmN2Zi9NYWtlZmlsZQ0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9uZXQvaWZjdmYv YmFzZS9pZmN2Zi5jDQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL25ldC9pZmN2Zi9i YXNlL2lmY3ZmLmgNCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbmV0L2lmY3ZmL2Jh c2UvaWZjdmZfb3NkZXAuaA0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9uZXQvaWZj dmYvaWZjdmZfZXRoZGV2LmMNCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbmV0L2lm Y3ZmL3J0ZV9pZmN2Zl92ZXJzaW9uLm1hcA0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2NvbmZpZy9j b21tb25fYmFzZSBiL2NvbmZpZy9jb21tb25fYmFzZQ0KPiA+IGluZGV4IGFkMDNjZjQzMy4uMDZm Y2UxZWJmIDEwMDY0NA0KPiA+IC0tLSBhL2NvbmZpZy9jb21tb25fYmFzZQ0KPiA+ICsrKyBiL2Nv bmZpZy9jb21tb25fYmFzZQ0KPiA+IEBAIC03OTEsNiArNzkxLDEyIEBAIENPTkZJR19SVEVfTElC UlRFX1ZIT1NUX0RFQlVHPW4NCj4gPiAgIw0KPiA+ICBDT05GSUdfUlRFX0xJQlJURV9QTURfVkhP U1Q9bg0KPiA+DQo+ID4gKyMNCj4gPiArIyBDb21waWxlIElGQ1ZGIGRyaXZlcg0KPiA+ICsjIFRv IGNvbXBpbGUsIENPTkZJR19SVEVfTElCUlRFX1ZIT1NUIHNob3VsZCBiZSBlbmFibGVkLg0KPiA+ ICsjDQo+ID4gK0NPTkZJR19SVEVfTElCUlRFX0lGQ1ZGPW4NCj4gPiArDQo+ID4gICMNCj4gPiAg IyBDb21waWxlIHRoZSB0ZXN0IGFwcGxpY2F0aW9uDQo+ID4gICMNCj4gPiBkaWZmIC0tZ2l0IGEv Y29uZmlnL2NvbW1vbl9saW51eGFwcCBiL2NvbmZpZy9jb21tb25fbGludXhhcHANCj4gPiBpbmRl eCBmZjk4ZjIzNTUuLjM1OGQwMDQ2OCAxMDA2NDQNCj4gPiAtLS0gYS9jb25maWcvY29tbW9uX2xp bnV4YXBwDQo+ID4gKysrIGIvY29uZmlnL2NvbW1vbl9saW51eGFwcA0KPiA+IEBAIC0xNSw2ICsx NSw3IEBAIENPTkZJR19SVEVfTElCUlRFX1BNRF9LTkk9eQ0KPiA+ICBDT05GSUdfUlRFX0xJQlJU RV9WSE9TVD15DQo+ID4gIENPTkZJR19SVEVfTElCUlRFX1ZIT1NUX05VTUE9eQ0KPiA+ICBDT05G SUdfUlRFX0xJQlJURV9QTURfVkhPU1Q9eQ0KPiA+ICtDT05GSUdfUlRFX0xJQlJURV9JRkNWRj15 DQo+IA0KPiBDdXJyZW50IHN5bnRheCBmb3IgUE1EIGNvbmZpZyBvcHRpb25zOg0KPiBWaXJ0dWFs IG9uZXM6IENPTkZJR19SVEVfTElCUlRFX1BNRF9YWFgNCj4gUGh5c2ljYWwgb25lczogQ09ORklH X1JURV9MSUJSVEVfWFhYX1BNRA0KPiANCj4gVmlydHVhbCAvIFBoeXNpY2FsIGRpZmZlcmVuY2Ug bW9zdCBwcm9iYWJseSBub3QgZG9uZSBpbnRlbnRpb25hbGx5IGJ1dCB0aGF0IGlzDQo+IHdoYXQg aXQgaXMgcmlnaHQgbm93Lg0KPiANCj4gSXMgIlBNRCIgbm90IGFkZGVkIGludGVudGlvbmFsbHkg dG8gdGhlIGNvbmZpZyBvcHRpb24/DQoNCkkgdGhpbmsgdkRQQSBkcml2ZXIgaXMgbm90IHBvbGxp bmcgbW9kZSwgc28gSSBkaWRuJ3QgcHV0IGEgIlBNRCIgaGVyZS4gRG8geW91IHRoaW5rIENPTkZJ R19SVEVfTElCUlRFX1ZEUEFfSUZDVkYgaXMgYmV0dGVyPw0KDQo+IA0KPiBBbmQgd2hhdCBpcyB0 aGUgY29uZmlnIHRpbWUgZGVwZW5kZW5jeSBvZiB0aGUgZHJpdmVyLCBJIGFzc3VtZSBWSE9TVCBp cyBvbmUNCj4gb2YNCj4gdGhlbSBidXQgYXJlIHRoZXJlIG1vcmU/DQoNClRoaXMgZGVwZW5kZW5j eSBpcyBkZXNjcmliZWQgaW4gZHJpdmVycy9uZXQvTWFrZWZpbGUsIENPTkZJR19SVEVfRUFMX1ZG SU8gaXMgYW5vdGhlciBvbmUsIHdpbGwgYWRkIGl0Lg0KDQo+IA0KPiA+ICBDT05GSUdfUlRFX0xJ QlJURV9QTURfQUZfUEFDS0VUPXkNCj4gPiAgQ09ORklHX1JURV9MSUJSVEVfUE1EX1RBUD15DQo+ ID4gIENPTkZJR19SVEVfTElCUlRFX0FWUF9QTUQ9eQ0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9NYWtlZmlsZSBiL2RyaXZlcnMvbmV0L01ha2VmaWxlDQo+ID4gaW5kZXggZTExMjczMjZi Li40OTZhY2YyZDIgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9uZXQvTWFrZWZpbGUNCj4gPiAr KysgYi9kcml2ZXJzL25ldC9NYWtlZmlsZQ0KPiA+IEBAIC01Myw2ICs1Myw3IEBAIGVuZGlmICMg JChDT05GSUdfUlRFX0xJQlJURV9TQ0hFRCkNCj4gPg0KPiA+ICBpZmVxICgkKENPTkZJR19SVEVf TElCUlRFX1ZIT1NUKSx5KQ0KPiA+ICBESVJTLSQoQ09ORklHX1JURV9MSUJSVEVfUE1EX1ZIT1NU KSArPSB2aG9zdA0KPiA+ICtESVJTLSQoQ09ORklHX1JURV9MSUJSVEVfSUZDVkYpICs9IGlmY3Zm DQo+IA0KPiBTaW5jZSB0aGlzIGlzIG1haW5seSB2cGRhIGRyaXZlciwgZG9lcyBpdCBtYWtlIHNl bnNlIHRvIHB1dCBpdCB1bmRlcg0KPiBkcml2ZXJzL25ldC92aXJ0aW8vdnBkYS9pZmN2Zg0KPiAN Cj4gV2hlbiB0aGVyZSBhcmUgbW9yZSB2cGRhIGRyaXZlciB0aGV5IGNhbiBnbyBpbnRvIGRyaXZl cnMvbmV0L3ZpcnRpby92cGRhLyoNCg0KdkRQQSBpcyBmb3Igdmhvc3Qgb2ZmbG9hZGluZy9hY2Nl bGVyYXRpb24sIHRoZSBkZXZpY2UgY2FuIGJlIHF1aXRlIGRpZmZlcmVudCBmcm9tIHZpcnRpbywN CnRoZXkganVzdCBuZWVkIHRvIGJlIHZpcnRpbyByaW5nIGNvbXBhdGlibGUsIGFuZCB0aGUgdXNh Z2UgbW9kZWwgaXMgcXVpdGUgZGlmZmVyZW50IGZyb20gdmlydGlvIHBtZC4NCkkgdGhpbmsgdkRQ QSBkcml2ZXIgc2hvdWxkIG5vdCBnbyBpbnRvIGRyaXZlcnMvbmV0L3ZpcnRpbyBkaXIuDQoNCj4g DQo+IENvbWJpbmluZyB3aXRoIGJlbG93IG5vdCByZWdpc3RlcmluZyBldGhkZXYgY29tbWVudCwg dmlydHVhbCBkcml2ZXIgY2FuDQo+IHJlZ2lzdGVyDQo+IGl0c2VsZiBhcyB2cGRhX2lmY3ZmOg0K PiBSVEVfUE1EX1JFR0lTVEVSX1ZERVYodnBkYV9pZmN2ZiwgaWZjdmZfZHJ2KTsNCg0KWWVzLCB2 ZXJ5IGxpbWl0ZWQgZXRoZGV2IEFQSXMgY2FuIGJlIGltcGxlbWVudGVkIGZvciB0aGlzIGV0aGRl diwgSSdsbCB0cnkgdG8gcmVtb3ZlIHRoZSBldGhkZXYgcmVnaXN0ZXJpbmcuDQoNCj4gDQo+ID4g IGVuZGlmICMgJChDT05GSUdfUlRFX0xJQlJURV9WSE9TVCkNCj4gPg0KPiA+ICBpZmVxICgkKENP TkZJR19SVEVfTElCUlRFX01SVkxfUE1EKSx5KQ0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9pZmN2Zi9NYWtlZmlsZSBiL2RyaXZlcnMvbmV0L2lmY3ZmL01ha2VmaWxlDQo+ID4gbmV3IGZp bGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAuLmYzNjcwY2RmMg0KPiA+IC0tLSAv ZGV2L251bGwNCj4gPiArKysgYi9kcml2ZXJzL25ldC9pZmN2Zi9NYWtlZmlsZQ0KPiA+IEBAIC0w LDAgKzEsNDAgQEANCj4gPiArIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNl DQo+ID4gKyMgQ29weXJpZ2h0KGMpIDIwMTggSW50ZWwgQ29ycG9yYXRpb24NCj4gPiArDQo+ID4g K2luY2x1ZGUgJChSVEVfU0RLKS9tay9ydGUudmFycy5taw0KPiA+ICsNCj4gPiArIw0KPiA+ICsj IGxpYnJhcnkgbmFtZQ0KPiA+ICsjDQo+ID4gK0xJQiA9IGxpYnJ0ZV9pZmN2Zi5hDQo+ID4gKw0K PiA+ICtMRExJQlMgKz0gLWxwdGhyZWFkDQo+ID4gK0xETElCUyArPSAtbHJ0ZV9lYWwgLWxydGVf bWVtcG9vbCAtbHJ0ZV9wY2kNCj4gPiArTERMSUJTICs9IC1scnRlX2V0aGRldiAtbHJ0ZV9uZXQg LWxydGVfa3ZhcmdzIC1scnRlX3Zob3N0DQo+ID4gK0xETElCUyArPSAtbHJ0ZV9idXNfdmRldiAt bHJ0ZV9idXNfcGNpDQo+ID4gKw0KPiA+ICtDRkxBR1MgKz0gLU8zDQo+ID4gK0NGTEFHUyArPSAk KFdFUlJPUl9GTEFHUykNCj4gPiArQ0ZMQUdTICs9IC1JJChSVEVfU0RLKS9saWIvbGlicnRlX2Vh bC9saW51eGFwcC9lYWwNCj4gPiArQ0ZMQUdTICs9IC1JJChSVEVfU0RLKS9kcml2ZXJzL2J1cy9w Y2kvbGludXgNCj4gPiArQ0ZMQUdTICs9IC1EQUxMT1dfRVhQRVJJTUVOVEFMX0FQSQ0KPiA+ICsN Cj4gPiArIw0KPiA+ICsjIEFkZCBleHRyYSBmbGFncyBmb3IgYmFzZSBkcml2ZXIgc291cmNlIGZp bGVzIHRvIGRpc2FibGUgd2FybmluZ3MgaW4gdGhlbQ0KPiA+ICsjDQo+ID4gK0JBU0VfRFJJVkVS X09CSlM9JChzb3J0ICQocGF0c3Vic3QgJS5jLCUubywkKG5vdGRpciAkKHdpbGRjYXJkDQo+ICQo U1JDRElSKS9iYXNlLyouYykpKSkNCj4gPiArJChmb3JlYWNoIG9iaiwgJChCQVNFX0RSSVZFUl9P QkpTKSwgJChldmFsDQo+IENGTEFHU18kKG9iaikrPSQoQ0ZMQUdTX0JBU0VfRFJJVkVSKSkpDQo+ IA0KPiBJdCBzZWVtcyBubyBDRkxBR1NfQkFTRV9EUklWRVIgZGVmaW5lZCB5ZXQsIGFib3ZlIGxp bmVzIGNhbiBiZSByZW1vdmVkIGZvcg0KPiBub3cuDQoNCldpbGwgcmVtb3ZlIGl0Lg0KDQo+IA0K PiA+ICsNCj4gPiArVlBBVEggKz0gJChTUkNESVIpL2Jhc2UNCj4gPiArDQo+ID4gK0VYUE9SVF9N QVAgOj0gcnRlX2lmY3ZmX3ZlcnNpb24ubWFwDQo+ID4gKw0KPiA+ICtMSUJBQklWRVIgOj0gMQ0K PiA+ICsNCj4gPiArIw0KPiA+ICsjIGFsbCBzb3VyY2UgYXJlIHN0b3JlZCBpbiBTUkNTLXkNCj4g PiArIw0KPiA+ICtTUkNTLSQoQ09ORklHX1JURV9MSUJSVEVfUE1EX1ZIT1NUKSArPSBpZmN2Zl9l dGhkZXYuYw0KPiA+ICtTUkNTLSQoQ09ORklHX1JURV9MSUJSVEVfUE1EX1ZIT1NUKSArPSBpZmN2 Zi5jDQo+IA0KPiBJcyBpdCBpbnRlbnRpb25hbGx5IHVzZWQgIlJURV9MSUJSVEVfUE1EX1ZIT1NU IiBiZWNhdXNlIG9mIGRlcGVuZGVuY3kgb3INCj4gdHlwbz8NCg0KU29ycnkgZm9yIHRoZSB0eXBv Lg0KDQo+IA0KPiA+ICsNCj4gPiAraW5jbHVkZSAkKFJURV9TREspL21rL3J0ZS5saWIubWsNCj4g PC4uLj4NCj4gDQo+ID4gK3N0YXRpYyBpbnQNCj4gPiArZXRoX2Rldl9pZmN2Zl9jcmVhdGUoc3Ry dWN0IHJ0ZV92ZGV2X2RldmljZSAqZGV2LA0KPiA+ICsJCXN0cnVjdCBydGVfcGNpX2FkZHIgKnBj aV9hZGRyLCBpbnQgZGV2aWNlcykNCj4gPiArew0KPiA+ICsJY29uc3QgY2hhciAqbmFtZSA9IHJ0 ZV92ZGV2X2RldmljZV9uYW1lKGRldik7DQo+ID4gKwlzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9k ZXYgPSBOVUxMOw0KPiA+ICsJc3RydWN0IGV0aGVyX2FkZHIgKmV0aF9hZGRyID0gTlVMTDsNCj4g PiArCXN0cnVjdCBpZmN2Zl9pbnRlcm5hbCAqaW50ZXJuYWwgPSBOVUxMOw0KPiA+ICsJc3RydWN0 IGludGVybmFsX2xpc3QgKmxpc3QgPSBOVUxMOw0KPiA+ICsJc3RydWN0IHJ0ZV9ldGhfZGV2X2Rh dGEgKmRhdGEgPSBOVUxMOw0KPiA+ICsJc3RydWN0IHJ0ZV9wY2lfYWRkciBwZl9hZGRyID0gKnBj aV9hZGRyOw0KPiA+ICsJaW50IGk7DQo+ID4gKw0KPiA+ICsJbGlzdCA9IHJ0ZV96bWFsbG9jX3Nv Y2tldChuYW1lLCBzaXplb2YoKmxpc3QpLCAwLA0KPiA+ICsJCQlkZXYtPmRldmljZS5udW1hX25v ZGUpOw0KPiA+ICsJaWYgKGxpc3QgPT0gTlVMTCkNCj4gPiArCQlnb3RvIGVycm9yOw0KPiA+ICsN Cj4gPiArCS8qIHJlc2VydmUgYW4gZXRoZGV2IGVudHJ5ICovDQo+ID4gKwlldGhfZGV2ID0gcnRl X2V0aF92ZGV2X2FsbG9jYXRlKGRldiwgc2l6ZW9mKCppbnRlcm5hbCkpOw0KPiANCj4gSXMgdGhp cyBldGhfZGV2IHVzZWQgYXQgYWxsPyBJdCBsb29rcyBsaWtlIGl0IGlzIG9ubHkgdXNlZCBmb3Ig aXRzIHByaXZhdGUgZGF0YSwNCj4gaWYgc28gY2FuIGl0IGJlIHBvc3NpYmxlIHRvIHVzZSBzb21l dGhpbmcgbGlrZToNCj4gDQo+IHN0cnVjdCBpZmRldiB7DQo+IAl2b2lkICpwcml2YXRlOw0KPiAJ c3RydWN0IHJ0ZV9kZXZpY2UgKmRldjsNCj4gfQ0KPiANCj4gYWxsb2NhdGUgbWVtb3J5IGZvciBw cml2YXRlIGFuZCBhZGQgdGhpcyBzdHJ1Y3QgdG8gdGhlIGxpc3QsIHRoaXMgbWF5IHNhdmUNCj4g ZXRoZGV2IG92ZXJoZWFkLg0KPiANCj4gQnV0IEkgY2FuIHNlZSBkZXZfc3RhcnQoKSBhbmQgZGV2 X3N0b3AoKSBhcmUgdXNlZCwgbm90IHN1cmUgaWYgdGhleSBhcmUgdGhlDQo+IHJlYXNvbiBvZiB0 aGUgZXRoZGV2Lg0KDQpSZWdpc3RlcmluZyBhbiBldGhkZXYgYWxsb3dzIHRvIGRldl9zdGFydC9z dG9wLCBidXQgaXQgc2VlbXMgdGhpcyBvdmVyaGVhZCBkb2VzbuKAmXQgYnJpbmcgbXVjaCBiZW5l Zml0Lg0KWW91ciBzdWdnZXN0aW9uIGxvb2tzIGdvb2QuDQoNCj4gDQo+ID4gKwlpZiAoZXRoX2Rl diA9PSBOVUxMKQ0KPiA+ICsJCWdvdG8gZXJyb3I7DQo+ID4gKw0KPiA+ICsJZXRoX2FkZHIgPSBy dGVfem1hbGxvY19zb2NrZXQobmFtZSwgc2l6ZW9mKCpldGhfYWRkciksIDAsDQo+ID4gKwkJCWRl di0+ZGV2aWNlLm51bWFfbm9kZSk7DQo+ID4gKwlpZiAoZXRoX2FkZHIgPT0gTlVMTCkNCj4gPiAr CQlnb3RvIGVycm9yOw0KPiA+ICsNCj4gPiArCSpldGhfYWRkciA9IGJhc2VfZXRoX2FkZHI7DQo+ ID4gKwlldGhfYWRkci0+YWRkcl9ieXRlc1s1XSA9IGV0aF9kZXYtPmRhdGEtPnBvcnRfaWQ7DQo+ ID4gKw0KPiA+ICsJaW50ZXJuYWwgPSBldGhfZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4gPiAr CWludGVybmFsLT5kZXZfbmFtZSA9IHN0cmR1cChuYW1lKTsNCj4gDQo+IE5lZWQgdG8gZnJlZSB0 aGlzIGxhdGVyIGFuZCBvbiBlcnJvciBwYXRocw0KDQpUaGUgZXJyb3IgcGF0aCBoYXMgaXQ6DQog ICAgICAgIGlmIChpbnRlcm5hbCAmJiBpbnRlcm5hbC0+ZGV2X25hbWUpDQogICAgICAgICAgICAg ICAgZnJlZShpbnRlcm5hbC0+ZGV2X25hbWUpOw0KDQo+IA0KPiA+ICsJaWYgKGludGVybmFsLT5k ZXZfbmFtZSA9PSBOVUxMKQ0KPiA+ICsJCWdvdG8gZXJyb3I7DQo+ID4gKw0KPiA+ICsJaW50ZXJu YWwtPmVuZ19hZGRyLnBjaV9hZGRyID0gKnBjaV9hZGRyOw0KPiA+ICsJZm9yIChpID0gMDsgaSA8 IGRldmljZXM7IGkrKykgew0KPiA+ICsJCXBmX2FkZHIuZG9tYWluID0gcGNpX2FkZHItPmRvbWFp bjsNCj4gPiArCQlwZl9hZGRyLmJ1cyA9IHBjaV9hZGRyLT5idXM7DQo+ID4gKwkJcGZfYWRkci5k ZXZpZCA9IHBjaV9hZGRyLT5kZXZpZCArIChpICsgMSkgLyA4Ow0KPiA+ICsJCXBmX2FkZHIuZnVu Y3Rpb24gPSBwY2lfYWRkci0+ZnVuY3Rpb24gKyAoaSArIDEpICUgODsNCj4gPiArCQlpbnRlcm5h bC0+dmZfaW5mb1tpXS5wZGV2LmFkZHIgPSBwZl9hZGRyOw0KPiA+ICsJCXJ0ZV9zcGlubG9ja19p bml0KCZpbnRlcm5hbC0+dmZfaW5mb1tpXS5sb2NrKTsNCj4gPiArCX0NCj4gPiArCWludGVybmFs LT5tYXhfZGV2aWNlcyA9IGRldmljZXM7DQo+IA0KPiBpcyBpdCBtYXhfZGV2aWNlcyBvciBudW1i ZXIgb2YgZGV2aWNlcz8NCg0KSXQncyBhIGZpZWxkIHRvIGRlc2NyaWJlIGhvdyBtYW55IGRldmlj ZXMgYXJlIGNvbnRhaW5lZCBpbiB0aGlzIHZEUEEgZW5naW5lLiBUaGUgdmFsdWUgaXMgbWluKHVz ZXIgYXJndW1lbnQsIElGQ1ZGIE1BWCBWRnMpLg0KUmVuYW1lIGl0IHRvIGRldl9udW0gbG9va3Mg YmV0dGVyLg0KDQo+IA0KPiA8Li4uPg0KPiANCj4gPiArLyoNCj4gPiArICogSWYgdGhpcyB2ZGV2 IGlzIGNyZWF0ZWQgYnkgdXNlciwgdGhlbiBpZmN2ZiB3aWxsIGJlIHRha2VuIGJ5DQo+IA0KPiBj cmVhdGVkIGJ5IHVzZXI/DQoNCkkgbWVhbiB3aGVuIGFwcCBjcmVhdGVzIHRoaXMgdmRldiwgd2Ug Y2FuIGFzc3VtZSBhcHAgd2FudHMgaWZjdmYgdG8gYmUgdXNlZCBhcyB2RFBBIGRldmljZS4NCklm Y3ZmIGhhcyB2aXJ0aW8ncyB2ZW5kb3IgSUQgYW5kIGRldmljZSBJRCwgYnV0IGl0IGhhcyBpdHMg c3BlY2lmaWMgc3Vic3lzdGVtIHZlbmRvciBJRCBhbmQgZGV2aWNlIElELg0KU28gdmlydGlvIHBt ZCBjYW4gdGFrZSBpZmN2ZiBmaXJzdCwgdGhlbiBhcHAgc3RvcHMgdGhlIHZpcnRpbyBwb3J0LCBh bmQgY3JlYXRlcyBpZmN2ZiB2ZGV2IHRvIGRyaXZlIGlmY3ZmLg0KDQo+IA0KPiA+ICsgKiB0aGlz IHZkZXYuDQo+ID4gKyAqLw0KPiA+ICtzdGF0aWMgaW50DQo+ID4gK2lmY3ZmX3Rha2Vfb3Zlcihz dHJ1Y3QgcnRlX3BjaV9hZGRyICpwY2lfYWRkciwgaW50IG51bSkNCj4gPiArew0KPiA+ICsJdWlu dDE2X3QgcG9ydF9pZDsNCj4gPiArCWludCBpLCByZXQ7DQo+ID4gKwljaGFyIGRldm5hbWVbUlRF X0RFVl9OQU1FX01BWF9MRU5dOw0KPiA+ICsJc3RydWN0IHJ0ZV9wY2lfYWRkciB2Zl9hZGRyID0g KnBjaV9hZGRyOw0KPiA+ICsNCj4gPiArCWZvciAoaSA9IDA7IGkgPCBudW07IGkrKykgew0KPiA+ ICsJCXZmX2FkZHIuZnVuY3Rpb24gKz0gaSAlIDg7DQo+ID4gKwkJdmZfYWRkci5kZXZpZCArPSBp IC8gODsNCj4gPiArCQlydGVfcGNpX2RldmljZV9uYW1lKCZ2Zl9hZGRyLCBkZXZuYW1lLA0KPiBS VEVfREVWX05BTUVfTUFYX0xFTik7DQo+ID4gKwkJcmV0ID0gcnRlX2V0aF9kZXZfZ2V0X3BvcnRf YnlfbmFtZShkZXZuYW1lLCAmcG9ydF9pZCk7DQo+IA0KPiBXaG8gcHJvYmVkIHRoaXMgZGV2aWNl IGF0IGZpcnN0IHBsYWNlPw0KDQpJZiBubyB3aGl0ZWxpc3Qgc3BlY2lmaWVkLCB2aXJ0aW8gcG1k IHdpbGwgcHJvYmUgaXQgZmlyc3QuDQoNCj4gDQo+ID4gKwkJaWYgKHJldCA9PSAwKSB7DQo+ID4g KwkJCXJ0ZV9ldGhfZGV2X2Nsb3NlKHBvcnRfaWQpOw0KPiA+ICsJCQlpZiAocnRlX2V0aF9kZXZf ZGV0YWNoKHBvcnRfaWQsIGRldm5hbWUpIDwgMCkNCj4gDQo+IFRoaXMgd2lsbCBjYWxsIHRoZSBk cml2ZXIgcmVtb3YoKSBhbHNvIHdpbGwgcmVtb3ZlIGRldmljZSBmcm9tIGRldmljZSBsaXN0LCBp cw0KPiBpdCBPSz8NCg0KT3Igd2UgY2FuIGp1c3QgY2FsbCBydGVfZXRoX2Rldl9yZWxlYXNlX3Bv cnQsIHRvIGtlZXAgdGhlIGRldmljZSBpbiB0aGUgZGV2aWNlIGxpc3QuDQpUaGlzIHdpbGwgYmUg YmV0dGVyLg0KDQo+IA0KPiA+ICsJCQkJcmV0dXJuIC0xOw0KPiA+ICsJCX0NCj4gPiArCX0NCj4g PiArDQo+ID4gKwlyZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGludA0KPiA+ ICtydGVfaWZjdmZfcHJvYmUoc3RydWN0IHJ0ZV92ZGV2X2RldmljZSAqZGV2KQ0KPiA+ICt7DQo+ ID4gKwlzdHJ1Y3QgcnRlX2t2YXJncyAqa3ZsaXN0ID0gTlVMTDsNCj4gPiArCWludCByZXQgPSAw Ow0KPiA+ICsJc3RydWN0IHJ0ZV9wY2lfYWRkciBwY2lfYWRkcjsNCj4gPiArCWludCBkZXZpY2Vz Ow0KPiANCj4gZGV2aWNlcyBjYW4ndCBiZSBuZWdhdGl2ZSwgYW5kIGFjY29yZGluZyBvcGVuX2lu dCgpIGl0IGlzIHVpbnQxNl90LCBpdCBpcw0KPiBwb3NzaWJsZSB0byBwaWNrIGFuIHVuc2lnbmVk IHN0b3JhZ2UgdHlwZSBmb3IgaXQuDQoNCldpbGwgdXNlIHVuc2lnbmVkIHR5cGUuDQoNCj4gDQo+ IDwuLi4+DQo+IA0KPiA+ICtzdGF0aWMgaW50DQo+ID4gK3J0ZV9pZmN2Zl9yZW1vdmUoc3RydWN0 IHJ0ZV92ZGV2X2RldmljZSAqZGV2KQ0KPiA+ICt7DQo+ID4gKwljb25zdCBjaGFyICpuYW1lOw0K PiA+ICsJc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2ID0gTlVMTDsNCj4gPiArDQo+ID4gKwlu YW1lID0gcnRlX3ZkZXZfZGV2aWNlX25hbWUoZGV2KTsNCj4gPiArCVJURV9MT0coSU5GTywgUE1E LCAiVW4tSW5pdGlhbGl6aW5nIGlmY3ZmIGZvciAlc1xuIiwgbmFtZSk7DQo+ID4gKw0KPiA+ICsJ LyogZmluZCBhbiBldGhkZXYgZW50cnkgKi8NCj4gPiArCWV0aF9kZXYgPSBydGVfZXRoX2Rldl9h bGxvY2F0ZWQobmFtZSk7DQo+ID4gKwlpZiAoZXRoX2RldiA9PSBOVUxMKQ0KPiA+ICsJCXJldHVy biAtRU5PREVWOw0KPiA+ICsNCj4gPiArCWV0aF9kZXZfY2xvc2UoZXRoX2Rldik7DQo+ID4gKwly dGVfZnJlZShldGhfZGV2LT5kYXRhKTsNCj4gPiArCXJ0ZV9ldGhfZGV2X3JlbGVhc2VfcG9ydChl dGhfZGV2KTsNCj4gDQo+IFRoaXMgZG9lcyBtZW1zZXQoZXRoZGV2LT5kYXRhLCAuLiksIHNvIHNo b3VsZCBiZSBjYWxsZWQgYmVmb3JlIHJ0ZV9mcmVlKGRhdGEpDQoNCkFncmVlLCB3aWxsIGNoYW5n ZSBpdCAuDQoNCj4gDQo+ID4gKw0KPiA+ICsJcmV0dXJuIDA7DQo+ID4gK30NCj4gPiArDQo+ID4g K3N0YXRpYyBzdHJ1Y3QgcnRlX3ZkZXZfZHJpdmVyIGlmY3ZmX2RydiA9IHsNCj4gPiArCS5wcm9i ZSA9IHJ0ZV9pZmN2Zl9wcm9iZSwNCj4gPiArCS5yZW1vdmUgPSBydGVfaWZjdmZfcmVtb3ZlLA0K PiA+ICt9Ow0KPiA+ICsNCj4gPiArUlRFX1BNRF9SRUdJU1RFUl9WREVWKG5ldF9pZmN2ZiwgaWZj dmZfZHJ2KTsNCj4gPiArUlRFX1BNRF9SRUdJU1RFUl9BTElBUyhuZXRfaWZjdmYsIGV0aF9pZmN2 Zik7DQo+IA0KPiBBbGlhcyBmb3IgYmFja3BvcnQgc3VwcG9ydCwgbm90IG5lZWRlZCBmb3IgbmV3 IGRyaXZlcnMuDQoNCk9LLCB3aWxsIHJlbW92ZSBpdC4NCg0KPiANCj4gPiArUlRFX1BNRF9SRUdJ U1RFUl9QQVJBTV9TVFJJTkcobmV0X2lmY3ZmLA0KPiA+ICsJImJkZj08YmRmPiAiDQo+ID4gKwki ZGV2aWNlcz08aW50PiIpOw0KPiANCj4gQWJvdmUgc2F5czoNCj4gICAjZGVmaW5lIEVUSF9JRkNW Rl9ERVZJQ0VTX0FSRwkiaW50Ig0KPiANCj4gSXMgYXJndW1lbnQgImludCIgb3IgImRldmljZXMi PyBVc2luZyBtYWNybyBoZXJlIGhlbHBzIHByZXZlbnRpbmcgZXJyb3JzLg0KDQpJdCdzICJkZXZp Y2VzIiwgd2lsbCBmaXggaXQgd2l0aCB1c2luZyBtYWNyby4NCg0KPiANCj4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvaWZjdmYvcnRlX2lmY3ZmX3ZlcnNpb24ubWFwDQo+IGIvZHJpdmVycy9u ZXQvaWZjdmYvcnRlX2lmY3ZmX3ZlcnNpb24ubWFwDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQN Cj4gPiBpbmRleCAwMDAwMDAwMDAuLjMzZDIzNzkxMw0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiAr KysgYi9kcml2ZXJzL25ldC9pZmN2Zi9ydGVfaWZjdmZfdmVyc2lvbi5tYXANCj4gPiBAQCAtMCww ICsxLDQgQEANCj4gPiArRVhQRVJJTUVOVEFMIHsNCj4gDQo+IFBsZWFzZSBwdXQgcmVsZWFzZSB2 ZXJzaW9uIGhlcmUuDQoNCk9LLCB3aWxsIHB1dCAiRFBES18xOC4wNSINCg0KVGhhbmtzIGZvciB0 aGUgY29tbWVudHMsDQotWGlhbw0KDQo+IA0KPiA8Li4uPg0K