From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0050.outbound.protection.outlook.com [104.47.2.50]) by dpdk.org (Postfix) with ESMTP id E8637E5D for ; Tue, 24 Apr 2018 09:40:26 +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=VSic7v+v0/fpXdJeUQOPL/F4rHsGDJ/283D5+CDfxKU=; b=rgNW73WF1AddBvIxzYizvzg9meUXQg2MEuwtWgtMfG+QMzmsgH1wkWT/IXisXFm7FZnlRmyp5QVYGQNZRxWSm5VrqTFy7zRKtgE+qnQBp3IPE+DAladd1RHzvZ9SX4BVGqtweSwOnEOniJMREXFgxowiJTGqPCcC0+SwbQ7Iucg= Received: from VI1PR05MB1678.eurprd05.prod.outlook.com (10.165.235.152) by VI1PR05MB1550.eurprd05.prod.outlook.com (10.164.85.156) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.696.15; Tue, 24 Apr 2018 07:40:24 +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.0696.019; Tue, 24 Apr 2018 07:40:24 +0000 From: "Xueming(Steven) Li" To: =?utf-8?B?TsOpbGlvIExhcmFuamVpcm8=?= CC: Shahaf Shuler , "dev@dpdk.org" Thread-Topic: [PATCH v6 02/11] net/mlx5: support GRE tunnel flow Thread-Index: AQHT2v9WZfySiFW//0CPejrrjXqO7KQOTtSAgAAJF8CAAAT6AIABK6XQ Date: Tue, 24 Apr 2018 07:40:24 +0000 Message-ID: References: <20180420122340.113348-1-xuemingl@mellanox.com> <20180423123310.32991-3-xuemingl@mellanox.com> <20180423125553.xr2mbqd7pfqvil4j@laranjeiro-vm.dev.6wind.com> <20180423134614.ssgcy73idz52x4f6@laranjeiro-vm.dev.6wind.com> In-Reply-To: <20180423134614.ssgcy73idz52x4f6@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: 6wind.com; dkim=none (message not signed) header.d=none;6wind.com; dmarc=none action=none header.from=mellanox.com; x-originating-ip: [180.174.142.249] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; VI1PR05MB1550; 7:2eCbALEaZDbrCXGJsg1/38QxWiazDykhVD3fzdV1Hjcn0tpaohxGS88eCfVJ4xT9GjxK+bx8IWT7o2CYg1SeiqMOcTdMY45SWOi8gm/Kd3ogLDfRhlMCfhTJ7vxWsDIIGLBmPM5b3ECIz/aSt3LWGfd7ovItoE7kUclLEshwew31rdyXJlO8cJ6ycA9PXcXgnHxnzwq7L6C9GgF9xc4i3U1Y1c6C6yz/krZeRvVBJQ89ZPv6NyRLYL1k1KDm+xPz 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:VI1PR05MB1550; x-ms-traffictypediagnostic: VI1PR05MB1550: 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)(10201501046)(3231232)(944501410)(52105095)(93006095)(93001095)(3002001)(6055026)(6041310)(20161123558120)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(6072148)(201708071742011); SRVR:VI1PR05MB1550; BCL:0; PCL:0; RULEID:; SRVR:VI1PR05MB1550; x-forefront-prvs: 0652EA5565 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(366004)(376002)(39380400002)(346002)(39860400002)(13464003)(31014005)(3280700002)(8676002)(2900100001)(54906003)(4326008)(2906002)(9686003)(86362001)(478600001)(53936002)(229853002)(25786009)(3660700001)(446003)(476003)(6246003)(316002)(11346002)(53546011)(186003)(33656002)(5660300001)(66066001)(102836004)(6506007)(6916009)(81166006)(8936002)(305945005)(74316002)(6116002)(6436002)(3846002)(93886005)(7696005)(76176011)(5250100002)(55016002)(26005)(59450400001)(7736002); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR05MB1550; H:VI1PR05MB1678.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; MLV:sfv; x-microsoft-antispam-message-info: 1Q5XLmlQlr1aonIyFpGRILLykQi78RbsvECFrWHfV7ULn14/JAOm74nOeeC+8uWa8l4EHdqAHRZPDmltbTfQfrCvRwCUjYP0B6muKvVJF2XjbM3F1t7O5SuJqN6X13wqLfXQNdkI9tqOn979LmfsNuxEjdlHNmcd7dr84W205HAmExO9keHrVj1KHmvNikFs 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: 1c861ea8-db98-44c3-b446-08d5a9b6a412 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1c861ea8-db98-44c3-b446-08d5a9b6a412 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Apr 2018 07:40:24.3218 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB1550 Subject: Re: [dpdk-dev] [PATCH v6 02/11] net/mlx5: support GRE tunnel flow 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: Tue, 24 Apr 2018 07:40:27 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTsOpbGlvIExhcmFuamVp cm8gPG5lbGlvLmxhcmFuamVpcm9ANndpbmQuY29tPg0KPiBTZW50OiBNb25kYXksIEFwcmlsIDIz LCAyMDE4IDk6NDYgUE0NCj4gVG86IFh1ZW1pbmcoU3RldmVuKSBMaSA8eHVlbWluZ2xAbWVsbGFu b3guY29tPg0KPiBDYzogU2hhaGFmIFNodWxlciA8c2hhaGFmc0BtZWxsYW5veC5jb20+OyBkZXZA ZHBkay5vcmcNCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2NiAwMi8xMV0gbmV0L21seDU6IHN1cHBv cnQgR1JFIHR1bm5lbCBmbG93DQo+IA0KPiBPbiBNb24sIEFwciAyMywgMjAxOCBhdCAwMTozMjoy M1BNICswMDAwLCBYdWVtaW5nKFN0ZXZlbikgTGkgd3JvdGU6DQo+ID4gSGkgTmVsaW8sDQo+ID4N Cj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBOw6lsaW8gTGFy YW5qZWlybyA8bmVsaW8ubGFyYW5qZWlyb0A2d2luZC5jb20+DQo+ID4gPiBTZW50OiBNb25kYXks IEFwcmlsIDIzLCAyMDE4IDg6NTYgUE0NCj4gPiA+IFRvOiBYdWVtaW5nKFN0ZXZlbikgTGkgPHh1 ZW1pbmdsQG1lbGxhbm94LmNvbT4NCj4gPiA+IENjOiBTaGFoYWYgU2h1bGVyIDxzaGFoYWZzQG1l bGxhbm94LmNvbT47IGRldkBkcGRrLm9yZw0KPiA+ID4gU3ViamVjdDogUmU6IFtQQVRDSCB2NiAw Mi8xMV0gbmV0L21seDU6IHN1cHBvcnQgR1JFIHR1bm5lbCBmbG93DQo+ID4gPg0KPiA+ID4gT24g TW9uLCBBcHIgMjMsIDIwMTggYXQgMDg6MzM6MDFQTSArMDgwMCwgWHVlbWluZyBMaSB3cm90ZToN Cj4gPiA+ID4gU2lnbmVkLW9mZi1ieTogWHVlbWluZyBMaSA8eHVlbWluZ2xAbWVsbGFub3guY29t Pg0KPiA+ID4gPiAtLS0NCj4gPiA+ID4gIGRyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93LmMgfCAx MDENCj4gPiA+ID4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQ0K PiA+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDk0IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0p DQo+ID4gPiA+DQo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9tbHg1L21seDVfZmxv dy5jDQo+ID4gPiA+IGIvZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cuYyBpbmRleCA1NDAyY2Ix NDguLmIzNjVmOTg2OCAxMDA2NDQNCj4gPiA+ID4gLS0tIGEvZHJpdmVycy9uZXQvbWx4NS9tbHg1 X2Zsb3cuYw0KPiA+ID4gPiArKysgYi9kcml2ZXJzL25ldC9tbHg1L21seDVfZmxvdy5jDQo+ID4g PiA+IEBAIC0zNyw2ICszNyw3IEBADQo+ID4gPiA+ICAvKiBJbnRlcm5ldCBQcm90b2NvbCB2ZXJz aW9ucy4gKi8gICNkZWZpbmUgTUxYNV9JUFY0IDQgICNkZWZpbmUNCj4gPiA+ID4gTUxYNV9JUFY2 IDYNCj4gPiA+ID4gKyNkZWZpbmUgTUxYNV9HUkUgNDcNCj4gPiA+ID4NCj4gPiA+ID4gICNpZm5k ZWYgSEFWRV9JQlZfREVWSUNFX0NPVU5URVJTX1NFVF9TVVBQT1JUDQo+ID4gPiA+ICBzdHJ1Y3Qg aWJ2X2Zsb3dfc3BlY19jb3VudGVyX2FjdGlvbiB7IEBAIC04OSw2ICs5MCwxMSBAQA0KPiA+ID4g PiBtbHg1X2Zsb3dfY3JlYXRlX3Z4bGFuKGNvbnN0IHN0cnVjdCBydGVfZmxvd19pdGVtICppdGVt LA0KPiA+ID4gPiAgCQkgICAgICAgY29uc3Qgdm9pZCAqZGVmYXVsdF9tYXNrLA0KPiA+ID4gPiAg CQkgICAgICAgc3RydWN0IG1seDVfZmxvd19kYXRhICpkYXRhKTsNCj4gPiA+ID4NCj4gPiA+ID4g K3N0YXRpYyBpbnQNCj4gPiA+ID4gK21seDVfZmxvd19jcmVhdGVfZ3JlKGNvbnN0IHN0cnVjdCBy dGVfZmxvd19pdGVtICppdGVtLA0KPiA+ID4gPiArCQkgICAgIGNvbnN0IHZvaWQgKmRlZmF1bHRf bWFzaywNCj4gPiA+ID4gKwkJICAgICBzdHJ1Y3QgbWx4NV9mbG93X2RhdGEgKmRhdGEpOw0KPiA+ ID4gPiArDQo+ID4gPiA+ICBzdHJ1Y3QgbWx4NV9mbG93X3BhcnNlOw0KPiA+ID4gPg0KPiA+ID4g PiAgc3RhdGljIHZvaWQNCj4gPiA+ID4gQEAgLTIzMSw2ICsyMzcsMTAgQEAgc3RydWN0IHJ0ZV9m bG93IHsNCj4gPiA+ID4gIAkJX19WQV9BUkdTX18sIFJURV9GTE9XX0lURU1fVFlQRV9FTkQsIFwN Cj4gPiA+ID4gIAl9DQo+ID4gPiA+DQo+ID4gPiA+ICsjZGVmaW5lIElTX1RVTk5FTCh0eXBlKSAo IFwNCj4gPiA+ID4gKwkodHlwZSkgPT0gUlRFX0ZMT1dfSVRFTV9UWVBFX1ZYTEFOIHx8IFwNCj4g PiA+ID4gKwkodHlwZSkgPT0gUlRFX0ZMT1dfSVRFTV9UWVBFX0dSRSkNCj4gPiA+ID4gKw0KPiA+ ID4gPiAgLyoqIFN0cnVjdHVyZSB0byBnZW5lcmF0ZSBhIHNpbXBsZSBncmFwaCBvZiBsYXllcnMg c3VwcG9ydGVkIGJ5DQo+ID4gPiA+IHRoZSBOSUMuICovICBzdHJ1Y3QgbWx4NV9mbG93X2l0ZW1z IHsNCj4gPiA+ID4gIAkvKiogTGlzdCBvZiBwb3NzaWJsZSBhY3Rpb25zIGZvciB0aGVzZSBpdGVt cy4gKi8gQEAgLTI4NCw3DQo+ID4gPiA+ICsyOTQsOCBAQCBzdGF0aWMgY29uc3QgZW51bSBydGVf Zmxvd19hY3Rpb25fdHlwZSB2YWxpZF9hY3Rpb25zW10gPQ0KPiA+ID4gPiB7ICBzdGF0aWMgY29u c3Qgc3RydWN0IG1seDVfZmxvd19pdGVtcyBtbHg1X2Zsb3dfaXRlbXNbXSA9IHsNCj4gPiA+ID4g IAlbUlRFX0ZMT1dfSVRFTV9UWVBFX0VORF0gPSB7DQo+ID4gPiA+ICAJCS5pdGVtcyA9IElURU1T KFJURV9GTE9XX0lURU1fVFlQRV9FVEgsDQo+ID4gPiA+IC0JCQkgICAgICAgUlRFX0ZMT1dfSVRF TV9UWVBFX1ZYTEFOKSwNCj4gPiA+ID4gKwkJCSAgICAgICBSVEVfRkxPV19JVEVNX1RZUEVfVlhM QU4sDQo+ID4gPiA+ICsJCQkgICAgICAgUlRFX0ZMT1dfSVRFTV9UWVBFX0dSRSksDQo+ID4gPiA+ ICAJfSwNCj4gPiA+ID4gIAlbUlRFX0ZMT1dfSVRFTV9UWVBFX0VUSF0gPSB7DQo+ID4gPiA+ICAJ CS5pdGVtcyA9IElURU1TKFJURV9GTE9XX0lURU1fVFlQRV9WTEFOLCBAQCAtMzE2LDcgKzMyNyw4 IEBADQo+ID4gPiA+IHN0YXRpYyBjb25zdCBzdHJ1Y3QgbWx4NV9mbG93X2l0ZW1zIG1seDVfZmxv d19pdGVtc1tdID0gew0KPiA+ID4gPiAgCX0sDQo+ID4gPiA+ICAJW1JURV9GTE9XX0lURU1fVFlQ RV9JUFY0XSA9IHsNCj4gPiA+ID4gIAkJLml0ZW1zID0gSVRFTVMoUlRFX0ZMT1dfSVRFTV9UWVBF X1VEUCwNCj4gPiA+ID4gLQkJCSAgICAgICBSVEVfRkxPV19JVEVNX1RZUEVfVENQKSwNCj4gPiA+ ID4gKwkJCSAgICAgICBSVEVfRkxPV19JVEVNX1RZUEVfVENQLA0KPiA+ID4gPiArCQkJICAgICAg IFJURV9GTE9XX0lURU1fVFlQRV9HUkUpLA0KPiA+ID4gPiAgCQkuYWN0aW9ucyA9IHZhbGlkX2Fj dGlvbnMsDQo+ID4gPiA+ICAJCS5tYXNrID0gJihjb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfaXRlbV9p cHY0KXsNCj4gPiA+ID4gIAkJCS5oZHIgPSB7DQo+ID4gPiA+IEBAIC0zMzMsNyArMzQ1LDggQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBtbHg1X2Zsb3dfaXRlbXMgbWx4NV9mbG93X2l0ZW1zW10gPSB7 DQo+ID4gPiA+ICAJfSwNCj4gPiA+ID4gIAlbUlRFX0ZMT1dfSVRFTV9UWVBFX0lQVjZdID0gew0K PiA+ID4gPiAgCQkuaXRlbXMgPSBJVEVNUyhSVEVfRkxPV19JVEVNX1RZUEVfVURQLA0KPiA+ID4g PiAtCQkJICAgICAgIFJURV9GTE9XX0lURU1fVFlQRV9UQ1ApLA0KPiA+ID4gPiArCQkJICAgICAg IFJURV9GTE9XX0lURU1fVFlQRV9UQ1AsDQo+ID4gPiA+ICsJCQkgICAgICAgUlRFX0ZMT1dfSVRF TV9UWVBFX0dSRSksDQo+ID4gPiA+ICAJCS5hY3Rpb25zID0gdmFsaWRfYWN0aW9ucywNCj4gPiA+ ID4gIAkJLm1hc2sgPSAmKGNvbnN0IHN0cnVjdCBydGVfZmxvd19pdGVtX2lwdjYpew0KPiA+ID4g PiAgCQkJLmhkciA9IHsNCj4gPiA+ID4gQEAgLTM4Niw2ICszOTksMTkgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBtbHg1X2Zsb3dfaXRlbXMgbWx4NV9mbG93X2l0ZW1zW10gPSB7DQo+ID4gPiA+ICAJ CS5jb252ZXJ0ID0gbWx4NV9mbG93X2NyZWF0ZV90Y3AsDQo+ID4gPiA+ICAJCS5kc3Rfc3ogPSBz aXplb2Yoc3RydWN0IGlidl9mbG93X3NwZWNfdGNwX3VkcCksDQo+ID4gPiA+ICAJfSwNCj4gPiA+ ID4gKwlbUlRFX0ZMT1dfSVRFTV9UWVBFX0dSRV0gPSB7DQo+ID4gPiA+ICsJCS5pdGVtcyA9IElU RU1TKFJURV9GTE9XX0lURU1fVFlQRV9FVEgsDQo+ID4gPiA+ICsJCQkgICAgICAgUlRFX0ZMT1df SVRFTV9UWVBFX0lQVjQsDQo+ID4gPiA+ICsJCQkgICAgICAgUlRFX0ZMT1dfSVRFTV9UWVBFX0lQ VjYpLA0KPiA+ID4gPiArCQkuYWN0aW9ucyA9IHZhbGlkX2FjdGlvbnMsDQo+ID4gPiA+ICsJCS5t YXNrID0gJihjb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfaXRlbV9ncmUpew0KPiA+ID4gPiArCQkJLnBy b3RvY29sID0gLTEsDQo+ID4gPiA+ICsJCX0sDQo+ID4gPiA+ICsJCS5kZWZhdWx0X21hc2sgPSAm cnRlX2Zsb3dfaXRlbV9ncmVfbWFzaywNCj4gPiA+ID4gKwkJLm1hc2tfc3ogPSBzaXplb2Yoc3Ry dWN0IHJ0ZV9mbG93X2l0ZW1fZ3JlKSwNCj4gPiA+ID4gKwkJLmNvbnZlcnQgPSBtbHg1X2Zsb3df Y3JlYXRlX2dyZSwNCj4gPiA+ID4gKwkJLmRzdF9zeiA9IHNpemVvZihzdHJ1Y3QgaWJ2X2Zsb3df c3BlY190dW5uZWwpLA0KPiA+ID4gPiArCX0sDQo+ID4gPiA+ICAJW1JURV9GTE9XX0lURU1fVFlQ RV9WWExBTl0gPSB7DQo+ID4gPiA+ICAJCS5pdGVtcyA9IElURU1TKFJURV9GTE9XX0lURU1fVFlQ RV9FVEgpLA0KPiA+ID4gPiAgCQkuYWN0aW9ucyA9IHZhbGlkX2FjdGlvbnMsDQo+ID4gPiA+IEBA IC00MDEsNyArNDI3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtbHg1X2Zsb3dfaXRlbXMNCj4g PiA+ID4gbWx4NV9mbG93X2l0ZW1zW10gPSB7DQo+ID4gPiA+DQo+ID4gPiA+ICAvKiogU3RydWN0 dXJlIHRvIHBhc3MgdG8gdGhlIGNvbnZlcnNpb24gZnVuY3Rpb24uICovICBzdHJ1Y3QNCj4gPiA+ ID4gbWx4NV9mbG93X3BhcnNlIHsNCj4gPiA+ID4gLQl1aW50MzJfdCBpbm5lcjsgLyoqPCBTZXQg b25jZSBWWExBTiBpcyBlbmNvdW50ZXJlZC4gKi8NCj4gPiA+ID4gKwl1aW50MzJfdCBpbm5lcjsg LyoqPCBWZXJicyB2YWx1ZSwgc2V0IG9uY2UgdHVubmVsIGlzDQo+ID4gPiA+ICtlbmNvdW50ZXJl ZC4gKi8NCj4gPiA+ID4gIAl1aW50MzJfdCBjcmVhdGU6MTsNCj4gPiA+ID4gIAkvKio8IFdoZXRo ZXIgcmVzb3VyY2VzIHNob3VsZCByZW1haW4gYWZ0ZXIgYSB2YWxpZGF0ZS4gKi8NCj4gPiA+ID4g IAl1aW50MzJfdCBkcm9wOjE7IC8qKjwgVGFyZ2V0IGlzIGEgZHJvcCBxdWV1ZS4gKi8gQEAgLTgy OSwxMw0KPiA+ID4gPiArODU1LDEzIEBAIG1seDVfZmxvd19jb252ZXJ0X2l0ZW1zX3ZhbGlkYXRl KGNvbnN0IHN0cnVjdCBydGVfZmxvd19pdGVtIGl0ZW1zW10sDQo+ID4gPiA+ICAJCQkJCSAgICAg IGN1cl9pdGVtLT5tYXNrX3N6KTsNCj4gPiA+ID4gIAkJaWYgKHJldCkNCj4gPiA+ID4gIAkJCWdv dG8gZXhpdF9pdGVtX25vdF9zdXBwb3J0ZWQ7DQo+ID4gPiA+IC0JCWlmIChpdGVtcy0+dHlwZSA9 PSBSVEVfRkxPV19JVEVNX1RZUEVfVlhMQU4pIHsNCj4gPiA+ID4gKwkJaWYgKElTX1RVTk5FTChp dGVtcy0+dHlwZSkpIHsNCj4gPiA+ID4gIAkJCWlmIChwYXJzZXItPmlubmVyKSB7DQo+ID4gPiA+ ICAJCQkJcnRlX2Zsb3dfZXJyb3Jfc2V0KGVycm9yLCBFTk9UU1VQLA0KPiA+ID4gPiAgCQkJCQkJ ICAgUlRFX0ZMT1dfRVJST1JfVFlQRV9JVEVNLA0KPiA+ID4gPiAgCQkJCQkJICAgaXRlbXMsDQo+ ID4gPiA+IC0JCQkJCQkgICAiY2Fubm90IHJlY29nbml6ZSBtdWx0aXBsZSINCj4gPiA+ID4gLQkJ CQkJCSAgICIgVlhMQU4gZW5jYXBzdWxhdGlvbnMiKTsNCj4gPiA+ID4gKwkJCQkJCSAgICJDYW5u b3QgcmVjb2duaXplIG11bHRpcGxlIg0KPiA+ID4gPiArCQkJCQkJICAgIiB0dW5uZWwgZW5jYXBz dWxhdGlvbnMuIik7DQo+ID4gPiA+ICAJCQkJcmV0dXJuIC1ydGVfZXJybm87DQo+ID4gPiA+ICAJ CQl9DQo+ID4gPiA+ICAJCQlwYXJzZXItPmlubmVyID0gSUJWX0ZMT1dfU1BFQ19JTk5FUjsgQEAg LTE2NDEsNiArMTY2Nyw2NyBAQA0KPiA+ID4gPiBtbHg1X2Zsb3dfY3JlYXRlX3Z4bGFuKGNvbnN0 IHN0cnVjdCBydGVfZmxvd19pdGVtICppdGVtLCAgfQ0KPiA+ID4gPg0KPiA+ID4gPiAgLyoqDQo+ ID4gPiA+ICsgKiBDb252ZXJ0IEdSRSBpdGVtIHRvIFZlcmJzIHNwZWNpZmljYXRpb24uDQo+ID4g PiA+ICsgKg0KPiA+ID4gPiArICogQHBhcmFtIGl0ZW1baW5dDQo+ID4gPiA+ICsgKiAgIEl0ZW0g c3BlY2lmaWNhdGlvbi4NCj4gPiA+ID4gKyAqIEBwYXJhbSBkZWZhdWx0X21hc2tbaW5dDQo+ID4g PiA+ICsgKiAgIERlZmF1bHQgYml0LW1hc2tzIHRvIHVzZSB3aGVuIGl0ZW0tPm1hc2sgaXMgbm90 IHByb3ZpZGVkLg0KPiA+ID4gPiArICogQHBhcmFtIGRhdGFbaW4sIG91dF0NCj4gPiA+ID4gKyAq ICAgVXNlciBzdHJ1Y3R1cmUuDQo+ID4gPiA+ICsgKg0KPiA+ID4gPiArICogQHJldHVybg0KPiA+ ID4gPiArICogICAwIG9uIHN1Y2Nlc3MsIGEgbmVnYXRpdmUgZXJybm8gdmFsdWUgb3RoZXJ3aXNl IGFuZCBydGVfZXJybm8gaXMgc2V0Lg0KPiA+ID4gPiArICovDQo+ID4gPiA+ICtzdGF0aWMgaW50 DQo+ID4gPiA+ICttbHg1X2Zsb3dfY3JlYXRlX2dyZShjb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfaXRl bSAqaXRlbSBfX3J0ZV91bnVzZWQsDQo+ID4gPiA+ICsJCSAgICAgY29uc3Qgdm9pZCAqZGVmYXVs dF9tYXNrIF9fcnRlX3VudXNlZCwNCj4gPiA+ID4gKwkJICAgICBzdHJ1Y3QgbWx4NV9mbG93X2Rh dGEgKmRhdGEpIHsNCj4gPiA+ID4gKwlzdHJ1Y3QgbWx4NV9mbG93X3BhcnNlICpwYXJzZXIgPSBk YXRhLT5wYXJzZXI7DQo+ID4gPiA+ICsJdW5zaWduZWQgaW50IHNpemUgPSBzaXplb2Yoc3RydWN0 IGlidl9mbG93X3NwZWNfdHVubmVsKTsNCj4gPiA+ID4gKwlzdHJ1Y3QgaWJ2X2Zsb3dfc3BlY190 dW5uZWwgdHVubmVsID0gew0KPiA+ID4gPiArCQkudHlwZSA9IHBhcnNlci0+aW5uZXIgfCBJQlZf RkxPV19TUEVDX1ZYTEFOX1RVTk5FTCwNCj4gPiA+ID4gKwkJLnNpemUgPSBzaXplLA0KPiA+ID4g PiArCX07DQo+ID4gPiA+ICsJc3RydWN0IGlidl9mbG93X3NwZWNfaXB2NF9leHQgKmlwdjQ7DQo+ ID4gPiA+ICsJc3RydWN0IGlidl9mbG93X3NwZWNfaXB2NiAqaXB2NjsNCj4gPiA+ID4gKwl1bnNp Z25lZCBpbnQgaTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArCXBhcnNlci0+aW5uZXIgPSBJQlZfRkxP V19TUEVDX0lOTkVSOw0KPiA+ID4gPiArCS8qIFVwZGF0ZSBlbmNhcHN1bGF0aW9uIElQIGxheWVy IHByb3RvY29sLiAqLw0KPiA+ID4gPiArCWZvciAoaSA9IDA7IGkgIT0gaGFzaF9yeHFfaW5pdF9u OyArK2kpIHsNCj4gPiA+ID4gKwkJaWYgKCFwYXJzZXItPnF1ZXVlW2ldLmlidl9hdHRyKQ0KPiA+ ID4gPiArCQkJY29udGludWU7DQo+ID4gPiA+ICsJCWlmIChwYXJzZXItPm91dF9sYXllciA9PSBI QVNIX1JYUV9JUFY0KSB7DQo+ID4gPiA+ICsJCQlpcHY0ID0gKHZvaWQgKikoKHVpbnRwdHJfdClw YXJzZXItPnF1ZXVlW2ldLmlidl9hdHRyICsNCj4gPiA+ID4gKwkJCQlwYXJzZXItPnF1ZXVlW2ld Lm9mZnNldCAtDQo+ID4gPiA+ICsJCQkJc2l6ZW9mKHN0cnVjdCBpYnZfZmxvd19zcGVjX2lwdjRf ZXh0KSk7DQo+ID4gPiA+ICsJCQlpZiAoaXB2NC0+bWFzay5wcm90byAmJiBpcHY0LT52YWwucHJv dG8gIT0gTUxYNV9HUkUpDQo+ID4gPiA+ICsJCQkJYnJlYWs7DQo+ID4gPiA+ICsJCQlpcHY0LT52 YWwucHJvdG8gPSBNTFg1X0dSRTsNCj4gPiA+ID4gKwkJCWlwdjQtPm1hc2sucHJvdG8gPSAweGZm Ow0KPiA+ID4gPiArCQl9IGVsc2UgaWYgKHBhcnNlci0+b3V0X2xheWVyID09IEhBU0hfUlhRX0lQ VjYpIHsNCj4gPiA+ID4gKwkJCWlwdjYgPSAodm9pZCAqKSgodWludHB0cl90KXBhcnNlci0+cXVl dWVbaV0uaWJ2X2F0dHIgKw0KPiA+ID4gPiArCQkJCXBhcnNlci0+cXVldWVbaV0ub2Zmc2V0IC0N Cj4gPiA+ID4gKwkJCQlzaXplb2Yoc3RydWN0IGlidl9mbG93X3NwZWNfaXB2NikpOw0KPiA+ID4g PiArCQkJaWYgKGlwdjYtPm1hc2submV4dF9oZHIgJiYNCj4gPiA+ID4gKwkJCSAgICBpcHY2LT52 YWwubmV4dF9oZHIgIT0gTUxYNV9HUkUpDQo+ID4gPiA+ICsJCQkJYnJlYWs7DQo+ID4gPiA+ICsJ CQlpcHY2LT52YWwubmV4dF9oZHIgPSBNTFg1X0dSRTsNCj4gPiA+ID4gKwkJCWlwdjYtPm1hc2su bmV4dF9oZHIgPSAweGZmOw0KPiA+ID4gPiArCQl9DQo+ID4gPiA+ICsJfQ0KPiA+ID4gPiArCWlm IChpICE9IGhhc2hfcnhxX2luaXRfbikNCj4gPiA+ID4gKwkJcmV0dXJuIHJ0ZV9mbG93X2Vycm9y X3NldChkYXRhLT5lcnJvciwgRUlOVkFMLA0KPiA+ID4gPiArCQkJCQkgIFJURV9GTE9XX0VSUk9S X1RZUEVfSVRFTSwNCj4gPiA+ID4gKwkJCQkJICBpdGVtLA0KPiA+ID4gPiArCQkJCQkgICJJUCBw cm90b2NvbCBvZiBHUkUgbXVzdCBiZSA0NyIpOw0KPiA+ID4gPiArCW1seDVfZmxvd19jcmVhdGVf Y29weShwYXJzZXIsICZ0dW5uZWwsIHNpemUpOw0KPiA+ID4gPiArCXJldHVybiAwOw0KPiA+ID4g PiArfQ0KPiA+ID4NCj4gPiA+IFRoZXJlIGlzIHNvbWV0aGluZyBzdHJhbmdlLCBpdGVtIGlzIG5v dCB1bnVzZWQgYXMgaXQgaXMgYXQgbGVhc3QgdXNlZCBpbiB0aGUgcnRlX2Zsb3dfZXJyb3Jfc2V0 KCkuDQo+ID4NCj4gPiBBIG5ldyBpc3N1ZSBpbnRyb2R1Y2VkIHdoZW4gYWRkaW5nIEdSRSBwcm90 b2NvbCBjaGVjay4NCj4gPiBJZiB5b3UgZmluaXNoZWQgdGhpcyBwYXRjaHNldCByZXZpZXcsIEkn bGwgdXBsb2FkIGEgbmV3IHZlcnNpb24gdG8gcmVtb3ZlIGl0Lg0KPiA+DQo+ID4gPg0KPiA+ID4g SW4gdGhlIG90aGVyIHNlcmllcyB5b3UgYXJlIHB1c2hpbmcsIHRoZXJlIGlzIG5vIG5ldw0KPiA+ ID4gUlRFX0ZMT1dfSVRFTV9HUkUgYW5kIGluIHRoZSBjdXJyZW50IGNvZGUgdGhlcmUgaXMgYWxz byBubyBSVEVfRkxPV19JVEVNX0dSRS4NCj4gPiA+DQo+ID4gPiBJIGRvbid0IHNlZSBob3cgdGhp cyBjb2RlIGNhbiBtYXRjaCB0aGUgbWlzc2luZyBpdGVtLCB3aGF0IGFtIEkgbWlzc2luZz8NCj4g Pg0KPiA+IEFyZSB5b3UgbG9va2luZyBmb3IgUlRFX0ZMT1dfSVRFTV9UWVBFX0dSRT8NCj4gDQo+ IFllcw0KDQpSVEVfRkxPV19JVEVNX1RZUEVfR1JFIGhhcyBiZWVuIGRlZmluZWQgaW4gcnRlX2Zs b3cuaCwgcGxlYXNlIGNoZWNrLg0KDQo+IA0KPiA+ID4NCj4gPiA+ID4gKy8qKg0KPiA+ID4gPiAg ICogQ29udmVydCBtYXJrL2ZsYWcgYWN0aW9uIHRvIFZlcmJzIHNwZWNpZmljYXRpb24uDQo+ID4g PiA+ICAgKg0KPiA+ID4gPiAgICogQHBhcmFtIHBhcnNlcg0KPiA+ID4gPiAtLQ0KPiA+ID4gPiAy LjEzLjMNCj4gPiA+DQo+ID4gPiBUaGFua3MsDQo+ID4gPg0KPiA+ID4gLS0NCj4gPiA+IE7DqWxp byBMYXJhbmplaXJvDQo+ID4gPiA2V0lORA0KPiANCj4gLS0NCj4gTsOpbGlvIExhcmFuamVpcm8N Cj4gNldJTkQNCg==