From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on0089.outbound.protection.outlook.com [104.47.1.89]) by dpdk.org (Postfix) with ESMTP id 7F5F11BB67 for ; Fri, 13 Apr 2018 15:10:10 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=2HN/jeNKB2hQ/ilHx4ODUDHeaxKFbm2CtpU9XM3oLj4=; b=YEFEuIXnXPUJdxPX8itxSrfsFM66ihAXEvdNLiHHAM+ZWURd/XM7YU8K6ynVQ+Q4WimA6DdWVDqqLCePzplS+cNLzkt1EqNHOO8INXrH1dstkrv0MRZTnQFqRtu1yQcKF9+QAgndNd2WTcbeQG3HNE2bo7ubQxUofSu9ak+2en0= Received: from VI1PR05MB1678.eurprd05.prod.outlook.com (10.165.235.152) by VI1PR05MB4558.eurprd05.prod.outlook.com (20.176.3.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.675.11; Fri, 13 Apr 2018 13:10:08 +0000 Received: from VI1PR05MB1678.eurprd05.prod.outlook.com ([fe80::6da4:14c3:f5d8:3f4a]) by VI1PR05MB1678.eurprd05.prod.outlook.com ([fe80::6da4:14c3:f5d8:3f4a%14]) with mapi id 15.20.0675.014; Fri, 13 Apr 2018 13:10:07 +0000 From: "Xueming(Steven) Li" To: =?utf-8?B?TsOpbGlvIExhcmFuamVpcm8=?= CC: Shahaf Shuler , "dev@dpdk.org" Thread-Topic: [PATCH v3 01/14] net/mlx5: support 16 hardware priorities Thread-Index: AQHT0xl1oYn3NaZZ6kienzEwlfTg76P+l02AgAAQQ1A= Date: Fri, 13 Apr 2018 13:10:07 +0000 Message-ID: References: <20180410133415.189905-1-xuemingl%40mellanox.com> <20180413112023.106420-2-xuemingl@mellanox.com> <20180413115835.cnifpytlocoj4jsg@laranjeiro-vm.dev.6wind.com> In-Reply-To: <20180413115835.cnifpytlocoj4jsg@laranjeiro-vm.dev.6wind.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=xuemingl@mellanox.com; x-originating-ip: [114.83.166.179] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; VI1PR05MB4558; 7:2LpoxId+VFxVQbgs+Rqe4mKv+Znt3gxYLvt/KQHLcMWtizkbM8nAYktVeJ+Z1Bd5v0xncnWGTp35dGZwTXzwU/nnMtIMXI5TrF5L/5FyA+yCFn6A1ZycSV7t1yblcROoutQuU8ETpstqEMeQwxXO5H5HDbqVReelHhdlLIGiiZxyRUikLjMdH5ZujWZq5BUsb0Mq6KqTGEkLWFCuiUo+3FYwYXLFbAuLdPyfNf9FJhWFI3Oxa3k5Rb8OjDQ1SVfe x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(2017052603328)(7153060)(7193020); SRVR:VI1PR05MB4558; x-ms-traffictypediagnostic: VI1PR05MB4558: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231232)(944501327)(52105095)(93006095)(93001095)(3002001)(10201501046)(6055026)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(20161123562045)(20161123558120)(6072148)(201708071742011); SRVR:VI1PR05MB4558; BCL:0; PCL:0; RULEID:; SRVR:VI1PR05MB4558; x-forefront-prvs: 0641678E68 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(39380400002)(39860400002)(366004)(346002)(376002)(377424004)(199004)(189003)(13464003)(8936002)(4326008)(81156014)(8676002)(81166006)(7696005)(486006)(6506007)(99286004)(59450400001)(55016002)(53546011)(5250100002)(74316002)(76176011)(7736002)(305945005)(14454004)(86362001)(575784001)(6436002)(54906003)(316002)(25786009)(97736004)(5660300001)(53936002)(68736007)(106356001)(476003)(2906002)(3846002)(33656002)(6916009)(186003)(66066001)(105586002)(229853002)(446003)(2900100001)(3660700001)(11346002)(102836004)(3280700002)(6246003)(9686003)(6116002)(478600001)(26005); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR05MB4558; H:VI1PR05MB1678.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: iz2gH5psHvVXo0V46jBBZP2yaH8XnlVtCAsXyQ+uBCiMoqBjjkhcu8cDscjPwMlnZYSxNTDXA5QcyVtSZHMzYQIWrpmJhLqVxbA8lb0alnMRjCvqWavO9/ALU82EJkk01rklsvAv2iA1Sgbafqpz5fUrilAGKaist74ck8tw6OLjvUQY9JH26dMbHCg87s+U spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: efcffd39-c72f-4dff-a0a7-08d5a13fe168 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: efcffd39-c72f-4dff-a0a7-08d5a13fe168 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Apr 2018 13:10:07.8128 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB4558 Subject: Re: [dpdk-dev] [PATCH v3 01/14] net/mlx5: support 16 hardware priorities 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: Fri, 13 Apr 2018 13:10:10 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTsOpbGlvIExhcmFuamVp cm8gPG5lbGlvLmxhcmFuamVpcm9ANndpbmQuY29tPg0KPiBTZW50OiBGcmlkYXksIEFwcmlsIDEz LCAyMDE4IDc6NTkgUE0NCj4gVG86IFh1ZW1pbmcoU3RldmVuKSBMaSA8eHVlbWluZ2xAbWVsbGFu b3guY29tPg0KPiBDYzogU2hhaGFmIFNodWxlciA8c2hhaGFmc0BtZWxsYW5veC5jb20+OyBkZXZA ZHBkay5vcmcNCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2MyAwMS8xNF0gbmV0L21seDU6IHN1cHBv cnQgMTYgaGFyZHdhcmUgcHJpb3JpdGllcw0KPiANCj4gSGkgWHVlbWluZywNCj4gDQo+IFNtYWxs IG5pcHMgYW5kIGRvY3VtZW50YXRpb24gaXNzdWVzLA0KPiANCj4gT24gRnJpLCBBcHIgMTMsIDIw MTggYXQgMDc6MjA6MTBQTSArMDgwMCwgWHVlbWluZyBMaSB3cm90ZToNCj4gPiBUaGlzIHBhdGNo IHN1cHBvcnRzIG5ldyAxNiBWZXJicyBmbG93IHByaW9yaXRpZXMgYnkgdHJ5aW5nIHRvIGNyZWF0 ZSBhDQo+ID4gc2ltcGxlIGZsb3cgb2YgcHJpb3JpdHkgMTUuIElmIDE2IHByaW9yaXRpZXMgbm90 IGF2YWlsYWJsZSwgZmFsbGJhY2sNCj4gPiB0byB0cmFkaXRpb25hbCA4IHByaW9yaXRpZXMuDQo+ ID4NCj4gPiBWZXJiIHByaW9yaXR5IG1hcHBpbmc6DQo+ID4gCQkJOCBwcmlvcml0aWVzCT49MTYg cHJpb3JpdGllcw0KPiA+IENvbnRyb2wgZmxvdzoJCTQtNwkJOC0xNQ0KPiA+IFVzZXIgbm9ybWFs IGZsb3c6CTEtMwkJNC03DQo+ID4gVXNlciB0dW5uZWwgZmxvdzoJMC0yCQkwLTMNCj4gDQo+IFRo ZXJlIGlzIGFuIG92ZXJsYXAgYmV0d2VlbiB0dW5uZWwgYW5kIG5vcm1hbCBmbG93cyBpdCBpcyBl eHBlY3RlZD8NCg0KRm9yIDggcHJpb3JpdGllcywgKDQtNyksICgxLTMpIGFuZCAoMC0yKSBhcmUg dGhlIGJlaGF2aW9yIG9mIHRvZGF5LCANCjEgVmVyYnMgc2hpZnQgdG8gbWFrZSB0dW5uZWwgZmxv dyBoaWdoZXIgcHJpb3JpdHksIHBsZWFzZSByZWZlciB0byANCmNvbW1pdCAjNzQ5MzY1NzENCg0K PiANCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IFh1ZW1pbmcgTGkgPHh1ZW1pbmdsQG1lbGxhbm94 LmNvbT4NCj4gPiAtLS0NCj4gPiAgZHJpdmVycy9uZXQvbWx4NS9tbHg1LmMgICAgICAgICB8ICAx OCArKysrKysrDQo+ID4gIGRyaXZlcnMvbmV0L21seDUvbWx4NS5oICAgICAgICAgfCAgIDUgKysN Cj4gPiAgZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cuYyAgICB8IDExMg0KPiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tDQo+ID4gIGRyaXZlcnMvbmV0L21seDUvbWx4 NV90cmlnZ2VyLmMgfCAgIDggLS0tDQo+ID4gIDQgZmlsZXMgY2hhbmdlZCwgMTE1IGluc2VydGlv bnMoKyksIDI4IGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L21seDUvbWx4NS5jIGIvZHJpdmVycy9uZXQvbWx4NS9tbHg1LmMgaW5kZXgNCj4gPiBjZmFiNTU4 OTcuLjM4MTE4ZTUyNCAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL25ldC9tbHg1L21seDUuYw0K PiA+ICsrKyBiL2RyaXZlcnMvbmV0L21seDUvbWx4NS5jDQo+ID4gQEAgLTE5Nyw2ICsxOTcsNyBA QCBtbHg1X2Rldl9jbG9zZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCj4gPiAgCQlwcml2LT50 eHFzX24gPSAwOw0KPiA+ICAJCXByaXYtPnR4cXMgPSBOVUxMOw0KPiA+ICAJfQ0KPiA+ICsJbWx4 NV9mbG93X2RlbGV0ZV9kcm9wX3F1ZXVlKGRldik7DQo+ID4gIAlpZiAocHJpdi0+cGQgIT0gTlVM TCkgew0KPiA+ICAJCWFzc2VydChwcml2LT5jdHggIT0gTlVMTCk7DQo+ID4gIAkJY2xhaW1femVy byhtbHg1X2dsdWUtPmRlYWxsb2NfcGQocHJpdi0+cGQpKTsNCj4gPiBAQCAtNjEyLDYgKzYxMyw3 IEBAIG1seDVfcGNpX3Byb2JlKHN0cnVjdCBydGVfcGNpX2RyaXZlciAqcGNpX2Rydg0KPiBfX3J0 ZV91bnVzZWQsDQo+ID4gIAl1bnNpZ25lZCBpbnQgbXBzOw0KPiA+ICAJdW5zaWduZWQgaW50IGNx ZV9jb21wOw0KPiA+ICAJdW5zaWduZWQgaW50IHR1bm5lbF9lbiA9IDA7DQo+ID4gKwl1bnNpZ25l ZCBpbnQgdmVyYl9wcmlvcml0aWVzID0gMDsNCj4gPiAgCWludCBpZHg7DQo+ID4gIAlpbnQgaTsN Cj4gPiAgCXN0cnVjdCBtbHg1ZHZfY29udGV4dCBhdHRyc19vdXQgPSB7MH07IEBAIC05OTMsNiAr OTk1LDIyIEBADQo+ID4gbWx4NV9wY2lfcHJvYmUoc3RydWN0IHJ0ZV9wY2lfZHJpdmVyICpwY2lf ZHJ2IF9fcnRlX3VudXNlZCwNCj4gPiAgCQltbHg1X3NldF9saW5rX3VwKGV0aF9kZXYpOw0KPiA+ ICAJCS8qIFN0b3JlIGRldmljZSBjb25maWd1cmF0aW9uIG9uIHByaXZhdGUgc3RydWN0dXJlLiAq Lw0KPiA+ICAJCXByaXYtPmNvbmZpZyA9IGNvbmZpZzsNCj4gPiArCQkvKiBDcmVhdGUgZHJvcCBx dWV1ZS4gKi8NCj4gPiArCQllcnIgPSBtbHg1X2Zsb3dfY3JlYXRlX2Ryb3BfcXVldWUoZXRoX2Rl dik7DQo+ID4gKwkJaWYgKGVycikgew0KPiA+ICsJCQlEUlZfTE9HKEVSUiwgInBvcnQgJXUgZHJv cCBxdWV1ZSBhbGxvY2F0aW9uIGZhaWxlZDogJXMiLA0KPiA+ICsJCQkJZXRoX2Rldi0+ZGF0YS0+ cG9ydF9pZCwgc3RyZXJyb3IocnRlX2Vycm5vKSk7DQo+ID4gKwkJCWdvdG8gcG9ydF9lcnJvcjsN Cj4gPiArCQl9DQo+ID4gKwkJLyogU3VwcG9ydGVkIFZlcmJzIGZsb3cgcHJpb3JpdHkgbnVtYmVy IGRldGVjdGlvbi4gKi8NCj4gPiArCQlpZiAodmVyYl9wcmlvcml0aWVzID09IDApDQo+ID4gKwkJ CXZlcmJfcHJpb3JpdGllcyA9IHByaXZfZ2V0X21heF92ZXJic19wcmlvKGV0aF9kZXYpOw0KPiAN Cj4gTm8gbW9yZSBwcml2KigpIHJlbmFtZSBpdCB0byBtbHg1X2dldF9tYXhfdmVyYnNfcHJpbygp DQo+IA0KPiA+ICsJCWlmICh2ZXJiX3ByaW9yaXRpZXMgPCBNTFg1X1ZFUkJTX0ZMT1dfUFJJT184 KSB7DQo+ID4gKwkJCURSVl9MT0coRVJSLCAicG9ydCAldSB3cm9uZyBWZXJicyBmbG93IHByaW9y aXRpZXM6ICV1IiwNCj4gPiArCQkJCWV0aF9kZXYtPmRhdGEtPnBvcnRfaWQsIHZlcmJfcHJpb3Jp dGllcyk7DQo+ID4gKwkJCWdvdG8gcG9ydF9lcnJvcjsNCj4gPiArCQl9DQo+ID4gKwkJcHJpdi0+ Y29uZmlnLm1heF92ZXJiX3ByaW8gPSB2ZXJiX3ByaW9yaXRpZXM7DQo+IA0KPiBzL3ZlcmIvdmVy YnMvDQo+IA0KPiA+ICAJCWNvbnRpbnVlOw0KPiA+ICBwb3J0X2Vycm9yOg0KPiA+ICAJCWlmIChw cml2KQ0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9tbHg1L21seDUuaCBiL2RyaXZlcnMv bmV0L21seDUvbWx4NS5oIGluZGV4DQo+ID4gNjNiMjRlNmJiLi42ZTQ2MTNmZTAgMTAwNjQ0DQo+ ID4gLS0tIGEvZHJpdmVycy9uZXQvbWx4NS9tbHg1LmgNCj4gPiArKysgYi9kcml2ZXJzL25ldC9t bHg1L21seDUuaA0KPiA+IEBAIC04OSw2ICs4OSw3IEBAIHN0cnVjdCBtbHg1X2Rldl9jb25maWcg ew0KPiA+ICAJdW5zaWduZWQgaW50IHJ4X3ZlY19lbjoxOyAvKiBSeCB2ZWN0b3IgaXMgZW5hYmxl ZC4gKi8NCj4gPiAgCXVuc2lnbmVkIGludCBtcHdfaGRyX2RzZWc6MTsgLyogRW5hYmxlIERTRUdz IGluIHRoZSB0aXRsZSBXUUVCQi4gKi8NCj4gPiAgCXVuc2lnbmVkIGludCB2Zl9ubF9lbjoxOyAv KiBFbmFibGUgTmV0bGluayByZXF1ZXN0cyBpbiBWRiBtb2RlLiAqLw0KPiA+ICsJdW5zaWduZWQg aW50IG1heF92ZXJiX3ByaW87IC8qIE51bWJlciBvZiBWZXJiIGZsb3cgcHJpb3JpdGllcy4gKi8N Cj4gPiAgCXVuc2lnbmVkIGludCB0c29fbWF4X3BheWxvYWRfc3o7IC8qIE1heGltdW0gVENQIHBh eWxvYWQgZm9yIFRTTy4gKi8NCj4gPiAgCXVuc2lnbmVkIGludCBpbmRfdGFibGVfbWF4X3NpemU7 IC8qIE1heGltdW0gaW5kaXJlY3Rpb24gdGFibGUgc2l6ZS4NCj4gKi8NCj4gPiAgCWludCB0eHFf aW5saW5lOyAvKiBNYXhpbXVtIHBhY2tldCBzaXplIGZvciBpbmxpbmluZy4gKi8gQEAgLTEwNSw2 DQo+ID4gKzEwNiw5IEBAIGVudW0gbWx4NV92ZXJic19hbGxvY190eXBlIHsNCj4gPiAgCU1MWDVf VkVSQlNfQUxMT0NfVFlQRV9SWF9RVUVVRSwNCj4gPiAgfTsNCj4gPg0KPiA+ICsvKiA4IFZlcmJz IHByaW9yaXRpZXMuICovDQo+ID4gKyNkZWZpbmUgTUxYNV9WRVJCU19GTE9XX1BSSU9fOCA4DQo+ ID4gKw0KPiA+ICAvKioNCj4gPiAgICogVmVyYnMgYWxsb2NhdG9yIG5lZWRzIGEgY29udGV4dCB0 byBrbm93IGluIHRoZSBjYWxsYmFjayB3aGljaCBraW5kDQo+IG9mDQo+ID4gICAqIHJlc291cmNl cyBpdCBpcyBhbGxvY2F0aW5nLg0KPiA+IEBAIC0yNTMsNiArMjU3LDcgQEAgaW50IG1seDVfdHJh ZmZpY19yZXN0YXJ0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KTsNCj4gPg0KPiA+ICAvKiBtbHg1 X2Zsb3cuYyAqLw0KPiA+DQo+ID4gK3Vuc2lnbmVkIGludCBwcml2X2dldF9tYXhfdmVyYnNfcHJp byhzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldik7DQo+ID4gIGludCBtbHg1X2Zsb3dfdmFsaWRhdGUo c3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+ID4gIAkJICAgICAgIGNvbnN0IHN0cnVjdCBydGVf Zmxvd19hdHRyICphdHRyLA0KPiA+ICAJCSAgICAgICBjb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfaXRl bSBpdGVtc1tdLCBkaWZmIC0tZ2l0DQo+ID4gYS9kcml2ZXJzL25ldC9tbHg1L21seDVfZmxvdy5j IGIvZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cuYyBpbmRleA0KPiA+IDI4ODYxMDYyMC4uNWM0 ZjBiNTg2IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93LmMNCj4g PiArKysgYi9kcml2ZXJzL25ldC9tbHg1L21seDVfZmxvdy5jDQo+ID4gQEAgLTMyLDggKzMyLDgg QEANCj4gPiAgI2luY2x1ZGUgIm1seDVfcHJtLmgiDQo+ID4gICNpbmNsdWRlICJtbHg1X2dsdWUu aCINCj4gPg0KPiA+IC0vKiBEZWZpbmUgbWluaW1hbCBwcmlvcml0eSBmb3IgY29udHJvbCBwbGFu ZSBmbG93cy4gKi8gLSNkZWZpbmUNCj4gPiBNTFg1X0NUUkxfRkxPV19QUklPUklUWSA0DQo+ID4g Ky8qIEZsb3cgcHJpb3JpdHkgZm9yIGNvbnRyb2wgcGxhbmUgZmxvd3MuICovICNkZWZpbmUNCj4g PiArTUxYNV9DVFJMX0ZMT1dfUFJJT1JJVFkgMQ0KPiA+DQo+ID4gIC8qIEludGVybmV0IFByb3Rv Y29sIHZlcnNpb25zLiAqLw0KPiA+ICAjZGVmaW5lIE1MWDVfSVBWNCA0DQo+ID4gQEAgLTEyOSw3 ICsxMjksNyBAQCBjb25zdCBzdHJ1Y3QgaGFzaF9yeHFfaW5pdCBoYXNoX3J4cV9pbml0W10gPSB7 DQo+ID4gIAkJCQlJQlZfUlhfSEFTSF9TUkNfUE9SVF9UQ1AgfA0KPiA+ICAJCQkJSUJWX1JYX0hB U0hfRFNUX1BPUlRfVENQKSwNCj4gPiAgCQkuZHBka19yc3NfaGYgPSBFVEhfUlNTX05PTkZSQUdf SVBWNF9UQ1AsDQo+ID4gLQkJLmZsb3dfcHJpb3JpdHkgPSAxLA0KPiA+ICsJCS5mbG93X3ByaW9y aXR5ID0gMCwNCj4gPiAgCQkuaXBfdmVyc2lvbiA9IE1MWDVfSVBWNCwNCj4gPiAgCX0sDQo+ID4g IAlbSEFTSF9SWFFfVURQVjRdID0gew0KPiA+IEBAIC0xMzgsNyArMTM4LDcgQEAgY29uc3Qgc3Ry dWN0IGhhc2hfcnhxX2luaXQgaGFzaF9yeHFfaW5pdFtdID0gew0KPiA+ICAJCQkJSUJWX1JYX0hB U0hfU1JDX1BPUlRfVURQIHwNCj4gPiAgCQkJCUlCVl9SWF9IQVNIX0RTVF9QT1JUX1VEUCksDQo+ ID4gIAkJLmRwZGtfcnNzX2hmID0gRVRIX1JTU19OT05GUkFHX0lQVjRfVURQLA0KPiA+IC0JCS5m bG93X3ByaW9yaXR5ID0gMSwNCj4gPiArCQkuZmxvd19wcmlvcml0eSA9IDAsDQo+ID4gIAkJLmlw X3ZlcnNpb24gPSBNTFg1X0lQVjQsDQo+ID4gIAl9LA0KPiA+ICAJW0hBU0hfUlhRX0lQVjRdID0g ew0KPiA+IEBAIC0xNDYsNyArMTQ2LDcgQEAgY29uc3Qgc3RydWN0IGhhc2hfcnhxX2luaXQgaGFz aF9yeHFfaW5pdFtdID0gew0KPiA+ICAJCQkJSUJWX1JYX0hBU0hfRFNUX0lQVjQpLA0KPiA+ICAJ CS5kcGRrX3Jzc19oZiA9IChFVEhfUlNTX0lQVjQgfA0KPiA+ICAJCQkJRVRIX1JTU19GUkFHX0lQ VjQpLA0KPiA+IC0JCS5mbG93X3ByaW9yaXR5ID0gMiwNCj4gPiArCQkuZmxvd19wcmlvcml0eSA9 IDEsDQo+ID4gIAkJLmlwX3ZlcnNpb24gPSBNTFg1X0lQVjQsDQo+ID4gIAl9LA0KPiA+ICAJW0hB U0hfUlhRX1RDUFY2XSA9IHsNCj4gPiBAQCAtMTU1LDcgKzE1NSw3IEBAIGNvbnN0IHN0cnVjdCBo YXNoX3J4cV9pbml0IGhhc2hfcnhxX2luaXRbXSA9IHsNCj4gPiAgCQkJCUlCVl9SWF9IQVNIX1NS Q19QT1JUX1RDUCB8DQo+ID4gIAkJCQlJQlZfUlhfSEFTSF9EU1RfUE9SVF9UQ1ApLA0KPiA+ICAJ CS5kcGRrX3Jzc19oZiA9IEVUSF9SU1NfTk9ORlJBR19JUFY2X1RDUCwNCj4gPiAtCQkuZmxvd19w cmlvcml0eSA9IDEsDQo+ID4gKwkJLmZsb3dfcHJpb3JpdHkgPSAwLA0KPiA+ICAJCS5pcF92ZXJz aW9uID0gTUxYNV9JUFY2LA0KPiA+ICAJfSwNCj4gPiAgCVtIQVNIX1JYUV9VRFBWNl0gPSB7DQo+ ID4gQEAgLTE2NCw3ICsxNjQsNyBAQCBjb25zdCBzdHJ1Y3QgaGFzaF9yeHFfaW5pdCBoYXNoX3J4 cV9pbml0W10gPSB7DQo+ID4gIAkJCQlJQlZfUlhfSEFTSF9TUkNfUE9SVF9VRFAgfA0KPiA+ICAJ CQkJSUJWX1JYX0hBU0hfRFNUX1BPUlRfVURQKSwNCj4gPiAgCQkuZHBka19yc3NfaGYgPSBFVEhf UlNTX05PTkZSQUdfSVBWNl9VRFAsDQo+ID4gLQkJLmZsb3dfcHJpb3JpdHkgPSAxLA0KPiA+ICsJ CS5mbG93X3ByaW9yaXR5ID0gMCwNCj4gPiAgCQkuaXBfdmVyc2lvbiA9IE1MWDVfSVBWNiwNCj4g PiAgCX0sDQo+ID4gIAlbSEFTSF9SWFFfSVBWNl0gPSB7DQo+ID4gQEAgLTE3MiwxMyArMTcyLDEz IEBAIGNvbnN0IHN0cnVjdCBoYXNoX3J4cV9pbml0IGhhc2hfcnhxX2luaXRbXSA9IHsNCj4gPiAg CQkJCUlCVl9SWF9IQVNIX0RTVF9JUFY2KSwNCj4gPiAgCQkuZHBka19yc3NfaGYgPSAoRVRIX1JT U19JUFY2IHwNCj4gPiAgCQkJCUVUSF9SU1NfRlJBR19JUFY2KSwNCj4gPiAtCQkuZmxvd19wcmlv cml0eSA9IDIsDQo+ID4gKwkJLmZsb3dfcHJpb3JpdHkgPSAxLA0KPiA+ICAJCS5pcF92ZXJzaW9u ID0gTUxYNV9JUFY2LA0KPiA+ICAJfSwNCj4gPiAgCVtIQVNIX1JYUV9FVEhdID0gew0KPiA+ICAJ CS5oYXNoX2ZpZWxkcyA9IDAsDQo+ID4gIAkJLmRwZGtfcnNzX2hmID0gMCwNCj4gPiAtCQkuZmxv d19wcmlvcml0eSA9IDMsDQo+ID4gKwkJLmZsb3dfcHJpb3JpdHkgPSAyLA0KPiA+ICAJfSwNCj4g PiAgfTsNCj4gPg0KPiA+IEBAIC05MDAsMzAgKzkwMCw1MCBAQCBtbHg1X2Zsb3dfY29udmVydF9h bGxvY2F0ZSh1bnNpZ25lZCBpbnQgc2l6ZSwNCj4gc3RydWN0IHJ0ZV9mbG93X2Vycm9yICplcnJv cikNCj4gPiAgICogTWFrZSBpbm5lciBwYWNrZXQgbWF0Y2hpbmcgd2l0aCBhbiBoaWdoZXIgcHJp b3JpdHkgZnJvbSB0aGUgbm9uDQo+IElubmVyDQo+ID4gICAqIG1hdGNoaW5nLg0KPiA+ICAgKg0K PiA+ICsgKiBAcGFyYW0gZGV2DQo+ID4gKyAqICAgUG9pbnRlciB0byBFdGhlcm5ldCBkZXZpY2Uu DQo+ID4gICAqIEBwYXJhbVtpbiwgb3V0XSBwYXJzZXINCj4gPiAgICogICBJbnRlcm5hbCBwYXJz ZXIgc3RydWN0dXJlLg0KPiA+ICAgKiBAcGFyYW0gYXR0cg0KPiA+ICAgKiAgIFVzZXIgZmxvdyBh dHRyaWJ1dGUuDQo+ID4gICAqLw0KPiA+ICBzdGF0aWMgdm9pZA0KPiA+IC1tbHg1X2Zsb3dfdXBk YXRlX3ByaW9yaXR5KHN0cnVjdCBtbHg1X2Zsb3dfcGFyc2UgKnBhcnNlciwNCj4gPiArbWx4NV9m bG93X3VwZGF0ZV9wcmlvcml0eShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCj4gPiArCQkJICBz dHJ1Y3QgbWx4NV9mbG93X3BhcnNlICpwYXJzZXIsDQo+ID4gIAkJCSAgY29uc3Qgc3RydWN0IHJ0 ZV9mbG93X2F0dHIgKmF0dHIpICB7DQo+ID4gKwlzdHJ1Y3QgcHJpdiAqcHJpdiA9IGRldi0+ZGF0 YS0+ZGV2X3ByaXZhdGU7DQo+ID4gIAl1bnNpZ25lZCBpbnQgaTsNCj4gPiArCXVpbnQxNl90IHBy aW9yaXR5Ow0KPiA+DQo+ID4gKwkvKgkJCTggcHJpb3JpdGllcwk+PSAxNiBwcmlvcml0aWVzDQo+ ID4gKwkgKiBDb250cm9sIGZsb3c6CTQtNwkJOC0xNQ0KPiA+ICsJICogVXNlciBub3JtYWwgZmxv dzoJMS0zCQk0LTcNCj4gPiArCSAqIFVzZXIgdHVubmVsIGZsb3c6CTAtMgkJMC0zDQo+ID4gKwkg Ki8NCj4gDQo+IFNhbWUgY29tbWVudCBoZXJlLCB0aGUgdHVubmVsIGZsb3cgb3ZlcmxhcCB3aGVu IHRoZXJlIGFyZSBvbmx5IDgNCj4gcHJpb3JpdGllcy4NCj4gDQo+ID4gKwlwcmlvcml0eSA9IGF0 dHItPnByaW9yaXR5ICogTUxYNV9WRVJCU19GTE9XX1BSSU9fODsNCj4gPiArCWlmIChwcml2LT5j b25maWcubWF4X3ZlcmJfcHJpbyA9PSBNTFg1X1ZFUkJTX0ZMT1dfUFJJT184KQ0KPiA+ICsJCXBy aW9yaXR5IC89IDI7DQo+ID4gKwkvKg0KPiA+ICsJICogTG93ZXIgbm9uLXR1bm5lbCBmbG93IFZl cmJzIHByaW9yaXR5IDEgaWYgb25seSBzdXBwb3J0IDggVmVyYnMNCj4gPiArCSAqIHByaW9yaXRp ZXMsIGxvd2VyIDQgb3RoZXJ3aXNlLg0KPiA+ICsJICovDQo+ID4gKwlpZiAoIXBhcnNlci0+aW5u ZXIpIHsNCj4gPiArCQlpZiAocHJpdi0+Y29uZmlnLm1heF92ZXJiX3ByaW8gPT0gTUxYNV9WRVJC U19GTE9XX1BSSU9fOCkNCj4gPiArCQkJcHJpb3JpdHkgKz0gMTsNCj4gPiArCQllbHNlDQo+ID4g KwkJCXByaW9yaXR5ICs9IE1MWDVfVkVSQlNfRkxPV19QUklPXzggLyAyOw0KPiA+ICsJfQ0KPiA+ ICAJaWYgKHBhcnNlci0+ZHJvcCkgew0KPiA+IC0JCXBhcnNlci0+cXVldWVbSEFTSF9SWFFfRVRI XS5pYnZfYXR0ci0+cHJpb3JpdHkgPQ0KPiA+IC0JCQlhdHRyLT5wcmlvcml0eSArDQo+ID4gLQkJ CWhhc2hfcnhxX2luaXRbSEFTSF9SWFFfRVRIXS5mbG93X3ByaW9yaXR5Ow0KPiA+ICsJCXBhcnNl ci0+cXVldWVbSEFTSF9SWFFfRVRIXS5pYnZfYXR0ci0+cHJpb3JpdHkgPSBwcmlvcml0eSArDQo+ ID4gKwkJCQloYXNoX3J4cV9pbml0W0hBU0hfUlhRX0VUSF0uZmxvd19wcmlvcml0eTsNCj4gPiAg CQlyZXR1cm47DQo+ID4gIAl9DQo+ID4gIAlmb3IgKGkgPSAwOyBpICE9IGhhc2hfcnhxX2luaXRf bjsgKytpKSB7DQo+ID4gLQkJaWYgKHBhcnNlci0+cXVldWVbaV0uaWJ2X2F0dHIpIHsNCj4gPiAt CQkJcGFyc2VyLT5xdWV1ZVtpXS5pYnZfYXR0ci0+cHJpb3JpdHkgPQ0KPiA+IC0JCQkJYXR0ci0+ cHJpb3JpdHkgKw0KPiA+IC0JCQkJaGFzaF9yeHFfaW5pdFtpXS5mbG93X3ByaW9yaXR5IC0NCj4g PiAtCQkJCShwYXJzZXItPmlubmVyID8gMSA6IDApOw0KPiA+IC0JCX0NCj4gPiArCQlpZiAoIXBh cnNlci0+cXVldWVbaV0uaWJ2X2F0dHIpDQo+ID4gKwkJCWNvbnRpbnVlOw0KPiA+ICsJCXBhcnNl ci0+cXVldWVbaV0uaWJ2X2F0dHItPnByaW9yaXR5ID0gcHJpb3JpdHkgKw0KPiA+ICsJCQkJaGFz aF9yeHFfaW5pdFtpXS5mbG93X3ByaW9yaXR5Ow0KPiA+ICAJfQ0KPiA+ICB9DQo+ID4NCj4gPiBA QCAtMTE1OCw3ICsxMTc4LDcgQEAgbWx4NV9mbG93X2NvbnZlcnQoc3RydWN0IHJ0ZV9ldGhfZGV2 ICpkZXYsDQo+ID4gIAkgKi8NCj4gPiAgCWlmICghcGFyc2VyLT5kcm9wKQ0KPiA+ICAJCW1seDVf Zmxvd19jb252ZXJ0X2ZpbmFsaXNlKHBhcnNlcik7DQo+ID4gLQltbHg1X2Zsb3dfdXBkYXRlX3By aW9yaXR5KHBhcnNlciwgYXR0cik7DQo+ID4gKwltbHg1X2Zsb3dfdXBkYXRlX3ByaW9yaXR5KGRl diwgcGFyc2VyLCBhdHRyKTsNCj4gPiAgZXhpdF9mcmVlOg0KPiA+ICAJLyogT25seSB2ZXJpZmlj YXRpb24gaXMgZXhwZWN0ZWQsIGFsbCByZXNvdXJjZXMgc2hvdWxkIGJlIHJlbGVhc2VkLg0KPiAq Lw0KPiA+ICAJaWYgKCFwYXJzZXItPmNyZWF0ZSkgew0KPiA+IEBAIC0zMTYxLDMgKzMxODEsNTUg QEAgbWx4NV9kZXZfZmlsdGVyX2N0cmwoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+ID4gIAl9 DQo+ID4gIAlyZXR1cm4gMDsNCj4gPiAgfQ0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAqIERldGVj dCBudW1iZXIgb2YgVmVyYnMgZmxvdyBwcmlvcml0aWVzIHN1cHBvcnRlZC4NCj4gPiArICoNCj4g PiArICogQHBhcmFtIGRldg0KPiA+ICsgKiAgIFBvaW50ZXIgdG8gRXRoZXJuZXQgZGV2aWNlLg0K PiA+ICsgKg0KPiA+ICsgKiBAcmV0dXJuDQo+ID4gKyAqICAgbnVtYmVyIG9mIHN1cHBvcnRlZCBW ZXJicyBmbG93IHByaW9yaXR5Lg0KPiA+ICsgKi8NCj4gPiArdW5zaWduZWQgaW50DQo+ID4gK3By aXZfZ2V0X21heF92ZXJic19wcmlvKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KSB7DQo+ID4gKwlz dHJ1Y3QgcHJpdiAqcHJpdiA9IGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7DQo+ID4gKwl1bnNpZ25l ZCBpbnQgdmVyYl9wcmlvcml0aWVzID0gTUxYNV9WRVJCU19GTE9XX1BSSU9fODsNCj4gPiArCXN0 cnVjdCB7DQo+ID4gKwkJc3RydWN0IGlidl9mbG93X2F0dHIgYXR0cjsNCj4gPiArCQlzdHJ1Y3Qg aWJ2X2Zsb3dfc3BlY19ldGggZXRoOw0KPiA+ICsJCXN0cnVjdCBpYnZfZmxvd19zcGVjX2FjdGlv bl9kcm9wIGRyb3A7DQo+ID4gKwl9IGZsb3dfYXR0ciA9IHsNCj4gPiArCQkuYXR0ciA9IHsNCj4g PiArCQkJLm51bV9vZl9zcGVjcyA9IDIsDQo+ID4gKwkJfSwNCj4gPiArCQkuZXRoID0gew0KPiA+ ICsJCQkudHlwZSA9IElCVl9GTE9XX1NQRUNfRVRILA0KPiA+ICsJCQkuc2l6ZSA9IHNpemVvZihz dHJ1Y3QgaWJ2X2Zsb3dfc3BlY19ldGgpLA0KPiA+ICsJCX0sDQo+ID4gKwkJLmRyb3AgPSB7DQo+ ID4gKwkJCS5zaXplID0gc2l6ZW9mKHN0cnVjdCBpYnZfZmxvd19zcGVjX2FjdGlvbl9kcm9wKSwN Cj4gPiArCQkJLnR5cGUgPSBJQlZfRkxPV19TUEVDX0FDVElPTl9EUk9QLA0KPiA+ICsJCX0sDQo+ ID4gKwl9Ow0KPiA+ICsJc3RydWN0IGlidl9mbG93ICpmbG93Ow0KPiA+ICsNCj4gPiArCWRvIHsN Cj4gPiArCQlmbG93X2F0dHIuYXR0ci5wcmlvcml0eSA9IHZlcmJfcHJpb3JpdGllcyAtIDE7DQo+ ID4gKwkJZmxvdyA9IG1seDVfZ2x1ZS0+Y3JlYXRlX2Zsb3cocHJpdi0+Zmxvd19kcm9wX3F1ZXVl LT5xcCwNCj4gPiArCQkJCQkgICAgICAmZmxvd19hdHRyLmF0dHIpOw0KPiA+ICsJCWlmIChmbG93 KSB7DQo+ID4gKwkJCWNsYWltX3plcm8obWx4NV9nbHVlLT5kZXN0cm95X2Zsb3coZmxvdykpOw0K PiA+ICsJCQkvKiBUcnkgbW9yZSBwcmlvcml0aWVzLiAqLw0KPiA+ICsJCQl2ZXJiX3ByaW9yaXRp ZXMgKj0gMjsNCj4gPiArCQl9IGVsc2Ugew0KPiA+ICsJCQkvKiBGYWlsZWQsIHJlc3RvcmUgbGFz dCByaWdodCBudW1iZXIuICovDQo+ID4gKwkJCXZlcmJfcHJpb3JpdGllcyAvPSAyOw0KPiA+ICsJ CQlicmVhazsNCj4gPiArCQl9DQo+ID4gKwl9IHdoaWxlICgxKTsNCj4gPiArCURSVl9MT0coSU5G TywgInBvcnQgJXUgVmVyYnMgZmxvdyBwcmlvcml0aWVzOiAlZCIsDQo+ID4gKwkJZGV2LT5kYXRh LT5wb3J0X2lkLCB2ZXJiX3ByaW9yaXRpZXMpOw0KPiANCj4gUGxlYXNlIHJlbW92ZSB0aGlzIGRl dmVsb3BlciBsb2csIGl0IHdpbGwgY29uZnVzZSB0aGUgdXNlciB3aG8gd2lsbA0KPiBiZWxpZXZl IGhlIGhhdmUgTiBwcmlvcml0aWVzIHdoaWNoIGlzIGFic29sdXRlbHkgbm90IHRoZSBjYXNlLg0K DQpIb3cgYWJvdXQgY2hhbmdlIGl0IHRvIERFQlVHIGxldmVsLCB0aGlzIHNob3VsZCBiZSB2ZXJ5 IHVzZWZ1bCBpbiByZWFsIGRlcGxveW1lbnQNCnRyb3VibGUgc2hvb3RpbmcuDQoNCkkgY291bGQg YXBwZW5kIHNvbWV0aGluZyBsaWtlICJ1c2VyIGZsb3cgcHJpb3JpdGllczogJWQiIHRvIGF2b2lk IGNvbmZ1c2lvbi4uDQoNCj4gDQo+ID4gKwlyZXR1cm4gdmVyYl9wcmlvcml0aWVzOw0KPiA+ICt9 DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L21seDUvbWx4NV90cmlnZ2VyLmMNCj4gPiBi L2RyaXZlcnMvbmV0L21seDUvbWx4NV90cmlnZ2VyLmMgaW5kZXggNmJiNGZmYjE0Li5kODBhMmU2 ODggMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9uZXQvbWx4NS9tbHg1X3RyaWdnZXIuYw0KPiA+ ICsrKyBiL2RyaXZlcnMvbmV0L21seDUvbWx4NV90cmlnZ2VyLmMNCj4gPiBAQCAtMTQ4LDEyICsx NDgsNiBAQCBtbHg1X2Rldl9zdGFydChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCj4gPiAgCWlu dCByZXQ7DQo+ID4NCj4gPiAgCWRldi0+ZGF0YS0+ZGV2X3N0YXJ0ZWQgPSAxOw0KPiA+IC0JcmV0 ID0gbWx4NV9mbG93X2NyZWF0ZV9kcm9wX3F1ZXVlKGRldik7DQo+ID4gLQlpZiAocmV0KSB7DQo+ ID4gLQkJRFJWX0xPRyhFUlIsICJwb3J0ICV1IGRyb3AgcXVldWUgYWxsb2NhdGlvbiBmYWlsZWQ6 ICVzIiwNCj4gPiAtCQkJZGV2LT5kYXRhLT5wb3J0X2lkLCBzdHJlcnJvcihydGVfZXJybm8pKTsN Cj4gPiAtCQlnb3RvIGVycm9yOw0KPiA+IC0JfQ0KPiA+ICAJRFJWX0xPRyhERUJVRywgInBvcnQg JXUgYWxsb2NhdGluZyBhbmQgY29uZmlndXJpbmcgaGFzaCBSeCBxdWV1ZXMiLA0KPiA+ICAJCWRl di0+ZGF0YS0+cG9ydF9pZCk7DQo+ID4gIAlydGVfbWVtcG9vbF93YWxrKG1seDVfbXAybXJfaXRl ciwgcHJpdik7IEBAIC0yMDIsNyArMTk2LDYgQEANCj4gPiBtbHg1X2Rldl9zdGFydChzdHJ1Y3Qg cnRlX2V0aF9kZXYgKmRldikNCj4gPiAgCW1seDVfdHJhZmZpY19kaXNhYmxlKGRldik7DQo+ID4g IAltbHg1X3R4cV9zdG9wKGRldik7DQo+ID4gIAltbHg1X3J4cV9zdG9wKGRldik7DQo+ID4gLQlt bHg1X2Zsb3dfZGVsZXRlX2Ryb3BfcXVldWUoZGV2KTsNCj4gPiAgCXJ0ZV9lcnJubyA9IHJldDsg LyogUmVzdG9yZSBydGVfZXJybm8uICovDQo+ID4gIAlyZXR1cm4gLXJ0ZV9lcnJubzsNCj4gPiAg fQ0KPiA+IEBAIC0yMzcsNyArMjMwLDYgQEAgbWx4NV9kZXZfc3RvcChzdHJ1Y3QgcnRlX2V0aF9k ZXYgKmRldikNCj4gPiAgCW1seDVfcnhxX3N0b3AoZGV2KTsNCj4gPiAgCWZvciAobXIgPSBMSVNU X0ZJUlNUKCZwcml2LT5tcik7IG1yOyBtciA9IExJU1RfRklSU1QoJnByaXYtPm1yKSkNCj4gPiAg CQltbHg1X21yX3JlbGVhc2UobXIpOw0KPiA+IC0JbWx4NV9mbG93X2RlbGV0ZV9kcm9wX3F1ZXVl KGRldik7DQo+ID4gIH0NCj4gPg0KPiA+ICAvKioNCj4gPiAtLQ0KPiA+IDIuMTMuMw0KPiANCj4g VGhhbmtzLA0KPiANCj4gLS0NCj4gTsOpbGlvIExhcmFuamVpcm8NCj4gNldJTkQNCg==