From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on0058.outbound.protection.outlook.com [104.47.1.58]) by dpdk.org (Postfix) with ESMTP id 8B8435B40 for ; Wed, 25 Apr 2018 14:20:56 +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=CjQbXOZt+CcPlNtV0dGec20R+/pATTAGEhgrBS8sz/E=; b=jcC/C9ExT2kiTuu6Omdna50lF/n302caoJ0nQ0xNy234aAFnqfiWfqJjIr7HJc/uLlEe42uLw7flpT4NephDdwnx6ZOCwgOamWOUaSa4/GRKmipqdSl76mB9GKMsIGIXuWnZ7vq+4D7zqHdfVT+mj8y/bGAcBGSuxeD8r9/yBEk= Received: from HE1PR0501MB2314.eurprd05.prod.outlook.com (10.168.34.19) by HE1PR0501MB3578.eurprd05.prod.outlook.com (10.166.196.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.696.14; Wed, 25 Apr 2018 12:20:54 +0000 Received: from HE1PR0501MB2314.eurprd05.prod.outlook.com ([fe80::d405:aec8:cd2f:85cc]) by HE1PR0501MB2314.eurprd05.prod.outlook.com ([fe80::d405:aec8:cd2f:85cc%18]) with mapi id 15.20.0675.018; Wed, 25 Apr 2018 12:20:54 +0000 From: Ophir Munk To: Ferruh Yigit , Pascal Mazon CC: "dev@dpdk.org" , Mordechay Haimovsky , Olga Shern , Thomas Monjalon , Raslan Darawsheh , Shahaf Shuler Thread-Topic: [PATCH v3] net/tap: remove queue specific offload support Thread-Index: AQHT2/VMztHsJDV5x06BviJMlkSv5qQRGsxAgAAiV4CAACQWMIAAA3rQ Date: Wed, 25 Apr 2018 12:20:53 +0000 Message-ID: References: <20180423093846.81133-1-ferruh.yigit@intel.com> <20180424175408.42099-1-ferruh.yigit@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [193.47.165.251] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; HE1PR0501MB3578; 7:ek6GTvb98/cs2DLS8QToaFAslZi6Me6ej7Apw885LchOUoVsPG/3s4osCeUhsrt6GMI+T6vN8pI7c4lfDycQ28xQ8NKIFwPLcKbTPvjHlrW8eHMOa0JqTIXlzkR12wTI2rNEIBThZ5qy/uBKuEPxD3VYPr2voQ2JFAYQtS+gRGsJFtzzXWj6ztoJl08mPJr7YwVA2ieVKihM1uepOVy6ccSdNgPB5qdl3Ew2RX35RWtD8jx7cFCIatTyw+Cnp90Y 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)(48565401081)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:HE1PR0501MB3578; x-ms-traffictypediagnostic: HE1PR0501MB3578: authentication-results: spf=none (sender IP is ) smtp.mailfrom=ophirmu@mellanox.com; x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(278428928389397)(228905959029699); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3002001)(93006095)(93001095)(10201501046)(3231232)(944501410)(52105095)(6055026)(6041310)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(20161123558120)(6072148)(201708071742011); SRVR:HE1PR0501MB3578; BCL:0; PCL:0; RULEID:; SRVR:HE1PR0501MB3578; x-forefront-prvs: 06530126A4 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(346002)(39860400002)(376002)(396003)(39380400002)(366004)(189003)(13464003)(199004)(51914003)(6436002)(2900100001)(3660700001)(105586002)(229853002)(6116002)(9686003)(3280700002)(97736004)(106356001)(86362001)(486006)(446003)(476003)(55016002)(5250100002)(2906002)(76176011)(74316002)(6246003)(81156014)(8676002)(8936002)(81166006)(53546011)(33656002)(66066001)(93886005)(99286004)(305945005)(59450400001)(6506007)(54906003)(102836004)(478600001)(53936002)(7736002)(107886003)(3846002)(186003)(110136005)(26005)(5660300001)(7696005)(4326008)(316002)(25786009)(68736007)(14454004); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR0501MB3578; H:HE1PR0501MB2314.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: E+2+f1eczcvllWsiPS6ufRLOWNv4JhE1FVELr1u30cRIW1oabTZe+sx8+7bJg4xIrjQ4wvYD1blbSwOXpym6jsKbuCcRmRRkU2WwFIC3TKFrpDwQ07so7qej71ttID+9SwoB2MLB9UTJIS2o6zHqBs+Xs0kwVFOpuw2vXTz5H/q0VqbckqfGzVJtWsk3DvM5 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: 7f8b1c02-43f0-4878-5d05-08d5aaa6fdc7 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7f8b1c02-43f0-4878-5d05-08d5aaa6fdc7 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Apr 2018 12:20:53.9912 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0501MB3578 Subject: Re: [dpdk-dev] [PATCH v3] net/tap: remove queue specific offload support 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: Wed, 25 Apr 2018 12:20:56 -0000 SGkgRmVycnVoLA0KSSBzdGFydGVkIHdvcmtpbmcgb24gYSBwYXRjaC4NCk5vIG5lZWQgZm9yIHlv dXIgdGVzdCBleGFtcGxlLg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206 IE9waGlyIE11bmsNCj4gU2VudDogV2VkbmVzZGF5LCBBcHJpbCAyNSwgMjAxOCAzOjAwIFBNDQo+ IFRvOiAnRmVycnVoIFlpZ2l0JyA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT47IFBhc2NhbCBNYXpv bg0KPiA8cGFzY2FsLm1hem9uQDZ3aW5kLmNvbT4NCj4gQ2M6IGRldkBkcGRrLm9yZzsgTW9yZGVj aGF5IEhhaW1vdnNreSA8bW90aWhAbWVsbGFub3guY29tPjsgT2xnYQ0KPiBTaGVybiA8b2xnYXNA bWVsbGFub3guY29tPjsgVGhvbWFzIE1vbmphbG9uIDx0aG9tYXNAbW9uamFsb24ubmV0PjsNCj4g UmFzbGFuIERhcmF3c2hlaCA8cmFzbGFuZEBtZWxsYW5veC5jb20+OyBTaGFoYWYgU2h1bGVyDQo+ IDxzaGFoYWZzQG1lbGxhbm94LmNvbT4NCj4gU3ViamVjdDogUkU6IFtQQVRDSCB2M10gbmV0L3Rh cDogcmVtb3ZlIHF1ZXVlIHNwZWNpZmljIG9mZmxvYWQgc3VwcG9ydA0KPiANCj4gDQo+IA0KPiA+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogRmVycnVoIFlpZ2l0IFttYWls dG86ZmVycnVoLnlpZ2l0QGludGVsLmNvbV0NCj4gPiBTZW50OiBXZWRuZXNkYXksIEFwcmlsIDI1 LCAyMDE4IDEyOjQ4IFBNDQo+ID4gVG86IE9waGlyIE11bmsgPG9waGlybXVAbWVsbGFub3guY29t PjsgUGFzY2FsIE1hem9uDQo+ID4gPHBhc2NhbC5tYXpvbkA2d2luZC5jb20+DQo+ID4gQ2M6IGRl dkBkcGRrLm9yZzsgTW9yZGVjaGF5IEhhaW1vdnNreSA8bW90aWhAbWVsbGFub3guY29tPjsgT2xn YQ0KPiBTaGVybg0KPiA+IDxvbGdhc0BtZWxsYW5veC5jb20+OyBUaG9tYXMgTW9uamFsb24gPHRo b21hc0Btb25qYWxvbi5uZXQ+Ow0KPiBSYXNsYW4NCj4gPiBEYXJhd3NoZWggPHJhc2xhbmRAbWVs bGFub3guY29tPjsgU2hhaGFmIFNodWxlcg0KPiA8c2hhaGFmc0BtZWxsYW5veC5jb20+DQo+ID4g U3ViamVjdDogUmU6IFtQQVRDSCB2M10gbmV0L3RhcDogcmVtb3ZlIHF1ZXVlIHNwZWNpZmljIG9m ZmxvYWQgc3VwcG9ydA0KPiA+DQo+ID4gT24gNC8yNS8yMDE4IDEwOjE4IEFNLCBPcGhpciBNdW5r IHdyb3RlOg0KPiA+ID4gSGkgRmVycnVoLA0KPiA+ID4NCj4gPiA+IEkgc2hvdWxkIGhhdmUgbWVu dGlvbmVkIGVhcmxpZXIgdGhhdCBUQVAgZG9lcyBzdXBwb3J0IHF1ZXVlIHNwZWNpZmljDQo+ID4g Y2FwYWJpbGl0aWVzLg0KPiA+ID4gUGxlYXNlIGxvb2sgaW4gdGFwX3F1ZXVlX3NldHVwKCkgYW5k IG5vdGUgdGhhdCBlYWNoIFRBUCBxdWV1ZSBpcw0KPiA+ID4gY3JlYXRlZA0KPiA+IHdpdGggYSBk aXN0aW5jdCBmaWxlIGRlc2NyaXB0b3IgKGZkKS4NCj4gPiA+IFRoZW4gc3VwcG9ydGluZyBhbiBv ZmZsb2FkIGNhcGFiaWxpdHkgaXMganVzdCBpbXBsZW1lbnRpbmcgaXQgaW4gU1cgKGUuZy4NCj4g PiBjYWxjdWxhdGluZyBJUCBjaGVja3N1bSkuDQo+ID4gPg0KPiA+ID4gSWYgdGhlIG1haW4gYXNz dW1wdGlvbiBvZiB0aGlzIHBhdGNoIHdhcyB0aGF0IFRBUCBkb2VzIG5vdCBzdXBwb3J0DQo+ID4g PiBxdWV1ZQ0KPiA+IHNwZWNpZmljIG9mZmxvYWRzIC0gdGhlbiBwbGVhc2UgY29uc2lkZXIgdGhp cyBwYXRjaCBhZ2Fpbi4NCj4gPg0KPiA+IFllcyB0aGF0IHdhcyB0aGUgaW5pdGlhbCBxdWVzdGlv biwgaXMgdGFwIHN1cHBvcnRzIHF1ZXVlIHNwZWNpZmljDQo+ID4gb2ZmbG9hZHMgb3Igbm90LiBU aGFua3MgZm9yIHRoZSBhbnN3ZXIuDQo+ID4NCj4gPiA+DQo+ID4gPiBPbiB0aGUgb3RoZXIgaGFu ZCB0aGVyZSBpcyBubyBwb3J0IHNwZWNpZmljIGNhcGFiaWxpdHkgc3VwcG9ydGVkIGJ5IFRBUC4N Cj4gPg0KPiA+IElmIHNvIHZlcmlmeSBmdW5jdGlvbnMgYXJlIHdyb25nLCB0aGF0IHdhcyB0aGUg ZXJyb3IgSSBnb3QuDQo+IA0KPiBDYW4geW91IHBsZWFzZSBzcGVjaWZ5IHRoZSB0ZXN0IHlvdSBk aWQgd2hhdCBlcnJvciB5b3UgZ290Pw0KPiBJZiBJIGZpeCBzb21ldGhpbmcgSSB3YW50IHRvIHZl cmlmeSB3aGF0IEkgYW0gZml4aW5nLg0KPiANCj4gPiBJdCBzZWVtcyBjb3B5L3Bhc3RlIG9mIG1s eCBvbmUgYnV0IHRoZSBwb3J0X3N1cHBfb2ZmbG9hZHMgaGFzDQo+ID4gZGlmZmVyZW50IG1lYW5p bmcgdGhlcmUuDQo+ID4NCj4gPiA+IEhvd2V2ZXIsIGluIG9yZGVyIHRvIHN1cHBvcnQgbGVnYWN5 IGFwcGxpY2F0aW9ucywgcG9ydCBjYXBhYmlsaXRpZXMNCj4gPiA+IGFyZQ0KPiA+IHVzdWFsbHkg cmVwb3J0ZWQgYXMgdGhlIE9SIG9wZXJhdGlvbiBiZXR3ZWVuIHF1ZXVlICYgcG9ydCBjYXBhYmls aXRpZXMuDQo+ID4gPiBUQVAgY3VycmVudGx5IGNsb25lcyB0aGUgcXVldWUgY2FwYWJpbGl0aWVz IHRvIHBvcnQgY2FwYWJpbGl0aWVzLiBXZQ0KPiA+ID4gY291bGQNCj4gPiBvcHRpbWl6ZSB0aGlz IGNsb25pbmcgYnkgYWx3YXlzIHJldHVybiBxdWV1ZSBjYXBhYmlsaXRpZXMgd2hlbiBxdWVyaWVk DQo+ID4gYWJvdXQgcXVldWVzIG9yIHBvcnRzLiBJbiB0aGlzIGNhc2UgLSB0YXBfcnhfb2ZmbG9h ZF9nZXRfcG9ydF9jYXBhKCkNCj4gPiBhbmQNCj4gPiB0YXBfdHhfb2ZmbG9hZF9nZXRfcG9ydF9j YXBhKCkgY291bGQgYmUgcmVtb3ZlZC4NCj4gPg0KPiA+IEluc3RlYWQgb2YgcmVtb3ZpbmcgdGhl IGZ1bmN0aW9ucyBJIHRoaW5rIHlvdSBjYW4ga2VlcCB0aGVtIGJ1dCByZXR1cm4NCj4gPiBjb3Jy ZWN0IHZhbHVlcywgaW4gdGhpcyBjYXNlIHJldHVybiBlbXB0eSwgdGhpcyB3aWxsIG1ha2UgdGhl IGV4aXRpbmcNCj4gPiB2YWxpZGF0aW9uIGZ1bmN0aW9ucyBjb3JyZWN0Lg0KPiA+DQo+ID4gQ2Fu IHlvdSBzZW5kIGEgZml4IGZvciB0aGF0Pw0KPiA+IElmIG5vIGZpeCBzZW50LCBJIHN1Z2dlc3Qg Z29pbmcgd2l0aCB0aGlzIHBhdGNoIHRvIHJlbW92ZSBxdWV1ZSBsZXZlbA0KPiA+IG9mZmxvYWQg c3VwcG9ydCB1bnRpbCBpdCBpcyBmaXhlZC4NCj4gPg0KPiA+ID4NCj4gPiA+IFBsZWFzZSBmaW5k IG1vcmUgY29tbWVudHMgaW5saW5lLg0KPiA+ID4NCj4gPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiA+ID4+IEZyb206IEZlcnJ1aCBZaWdpdCBbbWFpbHRvOmZlcnJ1aC55aWdpdEBp bnRlbC5jb21dDQo+ID4gPj4gU2VudDogVHVlc2RheSwgQXByaWwgMjQsIDIwMTggODo1NCBQTQ0K PiA+ID4+IFRvOiBQYXNjYWwgTWF6b24gPHBhc2NhbC5tYXpvbkA2d2luZC5jb20+DQo+ID4gPj4g Q2M6IGRldkBkcGRrLm9yZzsgRmVycnVoIFlpZ2l0IDxmZXJydWgueWlnaXRAaW50ZWwuY29tPjsg TW9yZGVjaGF5DQo+ID4gPj4gSGFpbW92c2t5IDxtb3RpaEBtZWxsYW5veC5jb20+OyBPcGhpciBN dW5rDQo+ID4gPG9waGlybXVAbWVsbGFub3guY29tPg0KPiA+ID4+IFN1YmplY3Q6IFtQQVRDSCB2 M10gbmV0L3RhcDogcmVtb3ZlIHF1ZXVlIHNwZWNpZmljIG9mZmxvYWQgc3VwcG9ydA0KPiA+ID4+ DQo+ID4gPj4gSXQgaXMgbm90IGNsZWFyIGlmIHRhcCBQTUQgc3VwcG9ydHMgcXVldWUgc3BlY2lm aWMgb2ZmbG9hZHMsDQo+ID4gPj4gcmVtb3ZpbmcgdGhlIHJlbGF0ZWQgY29kZS4NCj4gPiA+Pg0K PiA+ID4+IEZpeGVzOiA5NWFlMTk2YWUxMGIgKCJuZXQvdGFwOiB1c2UgbmV3IFJ4IG9mZmxvYWRz IEFQSSIpDQo+ID4gPj4gRml4ZXM6IDgxOGZlMTRhOTg5MSAoIm5ldC90YXA6IHVzZSBuZXcgVHgg b2ZmbG9hZHMgQVBJIikNCj4gPiA+PiBDYzogbW90aWhAbWVsbGFub3guY29tDQo+ID4gPj4NCj4g PiA+PiBTaWduZWQtb2ZmLWJ5OiBGZXJydWggWWlnaXQgPGZlcnJ1aC55aWdpdEBpbnRlbC5jb20+ DQo+ID4gPj4gLS0tDQo+ID4gPj4gQ2M6IE9waGlyIE11bmsgPG9waGlybXVAbWVsbGFub3guY29t Pg0KPiA+ID4+DQo+ID4gPj4gdjI6DQo+ID4gPj4gKiByZWJhc2VkDQo+ID4gPj4NCj4gPiA+PiB2 MzoNCj4gPiA+PiAqIHR4cS0+Y3N1bSByZXN0b3JlZCwNCj4gPiA+PiAgIC0gRVRIX1RYUV9GTEFH U19JR05PUkUgY2hlY2sgcmVtb3ZlZCBzaW5jZSBldGhkZXYgbGF5ZXIgdGFrZXMNCj4gPiA+PiBj YXJlIG9mIGl0DQo+ID4gPj4gICAtIHR4X2NvbmYgIT0gTlVMTCBjaGVjayByZW1vdmVkLCB0aGlz IGlzIGludGVybmFsIGFwaSB3aG8gY2FsbHMgdGhpcyBpcw0KPiA+ID4+ICAgZXRoZGV2IGFuZCBp dCBkb2Vzbid0IHBhc3MgbnVsbCB0eF9jb25mDQo+ID4gPj4gLS0tDQo+ID4gPj4gIGRyaXZlcnMv bmV0L3RhcC9ydGVfZXRoX3RhcC5jIHwgMTAyDQo+ID4gPj4gKysrKystLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gPj4gIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRp b25zKCspLCA5MiBkZWxldGlvbnMoLSkNCj4gPiA+Pg0KPiA+ID4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC90YXAvcnRlX2V0aF90YXAuYw0KPiA+ID4+IGIvZHJpdmVycy9uZXQvdGFwL3J0ZV9l dGhfdGFwLmMgaW5kZXggZWYzM2FhY2U5Li42MWI0YjVkZjMgMTAwNjQ0DQo+ID4gPj4gLS0tIGEv ZHJpdmVycy9uZXQvdGFwL3J0ZV9ldGhfdGFwLmMNCj4gPiA+PiArKysgYi9kcml2ZXJzL25ldC90 YXAvcnRlX2V0aF90YXAuYw0KPiA+ID4+IEBAIC0yNzgsMzEgKzI3OCw2IEBAIHRhcF9yeF9vZmZs b2FkX2dldF9wb3J0X2NhcGEodm9pZCkNCj4gPiA+PiAgCSAgICAgICBERVZfUlhfT0ZGTE9BRF9D UkNfU1RSSVA7DQo+ID4gPj4gIH0NCj4gPiA+Pg0KPiA+ID4+IC1zdGF0aWMgdWludDY0X3QNCj4g PiA+PiAtdGFwX3J4X29mZmxvYWRfZ2V0X3F1ZXVlX2NhcGEodm9pZCkNCj4gPiA+PiAtew0KPiA+ ID4+IC0JcmV0dXJuIERFVl9SWF9PRkZMT0FEX1NDQVRURVIgfA0KPiA+ID4+IC0JICAgICAgIERF Vl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfA0KPiA+ID4+IC0JICAgICAgIERFVl9SWF9PRkZMT0FE X1VEUF9DS1NVTSB8DQo+ID4gPj4gLQkgICAgICAgREVWX1JYX09GRkxPQURfVENQX0NLU1VNIHwN Cj4gPiA+PiAtCSAgICAgICBERVZfUlhfT0ZGTE9BRF9DUkNfU1RSSVA7DQo+ID4gPj4gLX0NCj4g PiA+PiAtDQo+ID4gPg0KPiA+ID4gVEFQIFBNRCBzdXBwb3J0cyBhbGwgb2YgdGhlc2UgUlggcXVl dWUgc3BlY2lmaWMgb2ZmbG9hZHMuIEkgc3VnZ2VzdA0KPiA+ID4gdG8NCj4gPiBsZWF2ZSB0aGlz IGZ1bmN0aW9uIGluIHBsYWNlLg0KPiA+ID4NCj4gPiA+PiAtc3RhdGljIGJvb2wNCj4gPiA+PiAt dGFwX3J4cV9hcmVfb2ZmbG9hZHNfdmFsaWQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQ2 NF90DQo+ID4gPj4gb2ZmbG9hZHMpIC0NCj4gPiB7DQo+ID4gPj4gLQl1aW50NjRfdCBwb3J0X29m ZmxvYWRzID0gZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGUub2ZmbG9hZHM7DQo+ID4gPj4gLQl1 aW50NjRfdCBxdWV1ZV9zdXBwX29mZmxvYWRzID0gdGFwX3J4X29mZmxvYWRfZ2V0X3F1ZXVlX2Nh cGEoKTsNCj4gPiA+PiAtCXVpbnQ2NF90IHBvcnRfc3VwcF9vZmZsb2FkcyA9IHRhcF9yeF9vZmZs b2FkX2dldF9wb3J0X2NhcGEoKTsNCj4gPiA+PiAtDQo+ID4gPj4gLQlpZiAoKG9mZmxvYWRzICYg KHF1ZXVlX3N1cHBfb2ZmbG9hZHMgfCBwb3J0X3N1cHBfb2ZmbG9hZHMpKSAhPQ0KPiA+ID4+IC0J ICAgIG9mZmxvYWRzKQ0KPiA+ID4+IC0JCXJldHVybiBmYWxzZTsNCj4gPiA+PiAtCWlmICgocG9y dF9vZmZsb2FkcyBeIG9mZmxvYWRzKSAmIHBvcnRfc3VwcF9vZmZsb2FkcykNCj4gPiA+PiAtCQly ZXR1cm4gZmFsc2U7DQo+ID4gPj4gLQlyZXR1cm4gdHJ1ZTsNCj4gPiA+PiAtfQ0KPiA+ID4+IC0N Cj4gPiA+DQo+ID4gPiBQdXR0aW5nIGFzaWRlIHRoZSBmYWN0IHRoYXQgcXVldWUgb2ZmbG9hZHMg ZXF1YWxzIHBvcnQgb2ZmbG9hZHMgKHNvDQo+ID4gPiBjb3VsZA0KPiA+IGlnbm9yZSAicG9ydF9z dXBwX29mZmxvYWQiIHZhcmlhYmxlKSAtIHRoaXMgZnVuY3Rpb24gaXMgZXNzZW50aWFsIHRvDQo+ ID4gdmFsaWRhdGUgdGhhdCB0aGUgY29uZmlndXJlZCBSeCBvZmZsb2FkcyBhcmUgc3VwcG9ydGVk IGJ5IFRBUC4gSQ0KPiA+IHN1Z2dlc3QgdG8gbGVhdmUgdGhpcyBmdW5jdGlvbiBpbiBwbGFjZS4N Cj4gPiA+IFdpdGhvdXQgaXQgLSB0ZXN0cG1kIGZhbHNlbHkgY29uZmlybXMgbm9uIHN1cHBvcnRl ZCBvZmZsb2Fkcy4NCj4gPiA+IEZvciBleGFtcGxlIGJlZm9yZSB0aGlzIHBhdGNoOiBvZmZsb2Fk aW5nICJody12bGFuLWZpbHRlciIgd2lsbCBmYWlsDQo+ID4gPiBhcw0KPiA+IGV4cGVjdGVkOg0K PiA+ID4NCj4gPiA+IHRlc3RwbWQ+IHBvcnQgY29uZmlnIGFsbA0KPiA+ID4gdGVzdHBtZD4gcG9y dCBjb25maWcgYWxsIGh3LXZsYW4tZmlsdGVyIG9uIHBvcnQgc3RhcnQgYWxsDQo+ID4gPiBDb25m aWd1cmluZyBQb3J0IDAgKHNvY2tldCAwKQ0KPiA+ID4gUE1EOiBuZXRfdGFwMDogMHgxMjA5ZmMw OiBUWCBjb25maWd1cmVkIHF1ZXVlcyBudW1iZXI6IDENCj4gPiA+IFBNRDogbmV0X3RhcDA6IDB4 MTIwOWZjMDogUlggY29uZmlndXJlZCBxdWV1ZXMgbnVtYmVyOiAxDQo+ID4gPiBQTUQ6IDB4MTIw OWZjMDogUnggcXVldWUgb2ZmbG9hZHMgMHgxMjBlIGRvbid0IG1hdGNoIHBvcnQgb2ZmbG9hZHMN Cj4gPiA+IDB4MTIwZSBvciBzdXBwb3J0ZWQgb2ZmbG9hZHMgMHgzMDBlIEZhaWwgdG8gY29uZmln dXJlIHBvcnQgMCByeA0KPiA+ID4gcXVldWVzDQo+ID4gPg0KPiA+ID4gSG93ZXZlciwgd2l0aCB0 aGlzIHBhdGNoIHRoaXMgY29uZmlndXJhdGlvbiBpcyBmYWxzZWx5IGFjY2VwdGVkLg0KPiA+ID4N Cj4gPiA+PiAgLyogQ2FsbGJhY2sgdG8gaGFuZGxlIHRoZSByeCBidXJzdCBvZiBwYWNrZXRzIHRv IHRoZSBjb3JyZWN0IGludGVyZmFjZQ0KPiBhbmQNCj4gPiA+PiAgICogZmlsZSBkZXNjcmlwdG9y KHMpIGluIGEgbXVsdGktcXVldWUgc2V0dXAuDQo+ID4gPj4gICAqLw0KPiA+ID4+IEBAIC00MTEs MzEgKzM4Niw2IEBAIHRhcF90eF9vZmZsb2FkX2dldF9wb3J0X2NhcGEodm9pZCkNCj4gPiA+PiAg CSAgICAgICBERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU07DQo+ID4gPj4gIH0NCj4gPiA+Pg0KPiA+ ID4+IC1zdGF0aWMgdWludDY0X3QNCj4gPiA+PiAtdGFwX3R4X29mZmxvYWRfZ2V0X3F1ZXVlX2Nh cGEodm9pZCkNCj4gPiA+PiAtew0KPiA+ID4+IC0JcmV0dXJuIERFVl9UWF9PRkZMT0FEX01VTFRJ X1NFR1MgfA0KPiA+ID4+IC0JICAgICAgIERFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfA0KPiA+ ID4+IC0JICAgICAgIERFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8DQo+ID4gPj4gLQkgICAgICAg REVWX1RYX09GRkxPQURfVENQX0NLU1VNOw0KPiA+ID4+IC19DQo+ID4gPj4gLQ0KPiA+ID4NCj4g PiA+IFRBUCBQTUQgc3VwcG9ydHMgYWxsIG9mIHRoZXNlIFRYIHF1ZXVlIHNwZWNpZmljIG9mZmxv YWRzLiBJIHN1Z2dlc3QNCj4gPiA+IHRvDQo+ID4gbGVhdmUgdGhpcyBmdW5jdGlvbiBpbiBwbGFj ZS4NCj4gPiA+DQo+ID4gPj4gLXN0YXRpYyBib29sDQo+ID4gPj4gLXRhcF90eHFfYXJlX29mZmxv YWRzX3ZhbGlkKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50NjRfdA0KPiA+ID4+IG9mZmxv YWRzKSAtDQo+ID4gew0KPiA+ID4+IC0JdWludDY0X3QgcG9ydF9vZmZsb2FkcyA9IGRldi0+ZGF0 YS0+ZGV2X2NvbmYudHhtb2RlLm9mZmxvYWRzOw0KPiA+ID4+IC0JdWludDY0X3QgcXVldWVfc3Vw cF9vZmZsb2FkcyA9IHRhcF90eF9vZmZsb2FkX2dldF9xdWV1ZV9jYXBhKCk7DQo+ID4gPj4gLQl1 aW50NjRfdCBwb3J0X3N1cHBfb2ZmbG9hZHMgPSB0YXBfdHhfb2ZmbG9hZF9nZXRfcG9ydF9jYXBh KCk7DQo+ID4gPj4gLQ0KPiA+ID4+IC0JaWYgKChvZmZsb2FkcyAmIChxdWV1ZV9zdXBwX29mZmxv YWRzIHwgcG9ydF9zdXBwX29mZmxvYWRzKSkgIT0NCj4gPiA+PiAtCSAgICBvZmZsb2FkcykNCj4g PiA+PiAtCQlyZXR1cm4gZmFsc2U7DQo+ID4gPj4gLQkvKiBWZXJpZnkgd2UgaGF2ZSBubyBjb25m bGljdCB3aXRoIHBvcnQgb2ZmbG9hZHMgKi8NCj4gPiA+PiAtCWlmICgocG9ydF9vZmZsb2FkcyBe IG9mZmxvYWRzKSAmIHBvcnRfc3VwcF9vZmZsb2FkcykNCj4gPiA+PiAtCQlyZXR1cm4gZmFsc2U7 DQo+ID4gPj4gLQlyZXR1cm4gdHJ1ZTsNCj4gPiA+PiAtfQ0KPiA+ID4+IC0NCj4gPiA+DQo+ID4g PiBUaGlzIGZ1bmN0aW9uIGlzIGVzc2VudGlhbCB0byB2YWxpZGF0ZSB0aGF0IHRoZSBjb25maWd1 cmVkIFR4DQo+ID4gPiBvZmZsb2FkcyBhcmUNCj4gPiBzdXBwb3J0ZWQgYnkgVEFQLg0KPiA+ID4g SSBzdWdnZXN0IHRvIGxlYXZlIHRoaXMgZnVuY3Rpb24gaW4gcGxhY2UuDQo+ID4gPg0KPiA+ID4+ ICBzdGF0aWMgdm9pZA0KPiA+ID4+ICB0YXBfdHhfb2ZmbG9hZChjaGFyICpwYWNrZXQsIHVpbnQ2 NF90IG9sX2ZsYWdzLCB1bnNpZ25lZCBpbnQgbDJfbGVuLA0KPiA+ID4+ICAJICAgICAgIHVuc2ln bmVkIGludCBsM19sZW4pDQo+ID4gPj4gQEAgLTc2MywxMiArNzEzLDEwIEBAIHRhcF9kZXZfaW5m byhzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgc3RydWN0DQo+ID4gPj4gcnRlX2V0aF9kZXZfaW5m byAqZGV2X2luZm8pDQo+ID4gPj4gIAlkZXZfaW5mby0+bWF4X3R4X3F1ZXVlcyA9IFJURV9QTURf VEFQX01BWF9RVUVVRVM7DQo+ID4gPj4gIAlkZXZfaW5mby0+bWluX3J4X2J1ZnNpemUgPSAwOw0K PiA+ID4+ICAJZGV2X2luZm8tPnNwZWVkX2NhcGEgPSB0YXBfZGV2X3NwZWVkX2NhcGEoKTsNCj4g PiA+PiAtCWRldl9pbmZvLT5yeF9xdWV1ZV9vZmZsb2FkX2NhcGEgPQ0KPiA+ID4+IHRhcF9yeF9v ZmZsb2FkX2dldF9xdWV1ZV9jYXBhKCk7DQo+ID4gPj4gLQlkZXZfaW5mby0+cnhfb2ZmbG9hZF9j YXBhID0gdGFwX3J4X29mZmxvYWRfZ2V0X3BvcnRfY2FwYSgpIHwNCj4gPiA+PiAtCQkJCSAgICBk ZXZfaW5mby0+cnhfcXVldWVfb2ZmbG9hZF9jYXBhOw0KPiA+ID4+IC0JZGV2X2luZm8tPnR4X3F1 ZXVlX29mZmxvYWRfY2FwYSA9DQo+ID4gPj4gdGFwX3R4X29mZmxvYWRfZ2V0X3F1ZXVlX2NhcGEo KTsNCj4gPiA+PiAtCWRldl9pbmZvLT50eF9vZmZsb2FkX2NhcGEgPSB0YXBfdHhfb2ZmbG9hZF9n ZXRfcG9ydF9jYXBhKCkgfA0KPiA+ID4+IC0JCQkJICAgIGRldl9pbmZvLT50eF9xdWV1ZV9vZmZs b2FkX2NhcGE7DQo+ID4gPj4gKwlkZXZfaW5mby0+cnhfb2ZmbG9hZF9jYXBhID0gdGFwX3J4X29m ZmxvYWRfZ2V0X3BvcnRfY2FwYSgpOw0KPiA+ID4+ICsJZGV2X2luZm8tPnR4X29mZmxvYWRfY2Fw YSA9IHRhcF90eF9vZmZsb2FkX2dldF9wb3J0X2NhcGEoKTsNCj4gPiA+PiArCWRldl9pbmZvLT5y eF9xdWV1ZV9vZmZsb2FkX2NhcGEgPSAwOw0KPiA+ID4+ICsJZGV2X2luZm8tPnR4X3F1ZXVlX29m ZmxvYWRfY2FwYSA9IDA7DQo+ID4gPj4gIH0NCj4gPiA+Pg0KPiA+ID4NCj4gPiA+IFJ4X3F1ZXVl X29mZmxvYWRzX2NhcGEgc2hvdWxkIGJlIHJlcG9ydGVkIGFzIGJlZm9yZToNCj4gPiA+IGRldl9p bmZvLT50eF9xdWV1ZV9vZmZsb2FkX2NhcGEgPSB0YXBfdHhfb2ZmbG9hZF9nZXRfcXVldWVfY2Fw YSgpOw0KPiA+ID4gU2FtZSBmb3IgVFggb2ZmbG9hZHMuDQo+ID4gPg0KPiA+ID4gUG9ydCBjYXBh YmlsaXRpZXMgY291bGQgcmV0dXJuIHF1ZXVlIGNhcGFiaWxpdGllczoNCj4gPiA+DQo+ID4gPiBJ bnN0ZWFkIG9mOg0KPiA+ID4NCj4gPiA+IGRldl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEgPSB0YXBf cnhfb2ZmbG9hZF9nZXRfcG9ydF9jYXBhKCkgfA0KPiA+ID4gCQkJCSAgICBkZXZfaW5mby0+cnhf cXVldWVfb2ZmbG9hZF9jYXBhOw0KPiA+ID4NCj4gPiA+IFdlIGNvdWxkIHJldHVybjoNCj4gPiA+ DQo+ID4gPiBkZXZfaW5mby0+cnhfb2ZmbG9hZF9jYXBhID0gZGV2X2luZm8tPnJ4X3F1ZXVlX29m ZmxvYWRfY2FwYTsNCj4gPiA+DQo+ID4gPiBUaGUgc2FtZSBhcmd1bWVudCBpcyB2YWxpZCBmb3Ig VHggYXMgd2VsbC4NCj4gPiA+DQo+ID4gPj4gIHN0YXRpYyBpbnQNCj4gPiA+PiBAQCAtMTA5NCwx OSArMTA0Miw2IEBAIHRhcF9yeF9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYNCj4gKmRl diwNCj4gPiA+PiAgCQlyZXR1cm4gLTE7DQo+ID4gPj4gIAl9DQo+ID4gPj4NCj4gPiA+PiAtCS8q IFZlcmlmeSBhcHBsaWNhdGlvbiBvZmZsb2FkcyBhcmUgdmFsaWQgZm9yIG91ciBwb3J0IGFuZCBx dWV1ZS4gKi8NCj4gPiA+PiAtCWlmICghdGFwX3J4cV9hcmVfb2ZmbG9hZHNfdmFsaWQoZGV2LCBy eF9jb25mLT5vZmZsb2FkcykpIHsNCj4gPiA+PiAtCQlydGVfZXJybm8gPSBFTk9UU1VQOw0KPiA+ ID4+IC0JCVJURV9MT0coRVJSLCBQTUQsDQo+ID4gPj4gLQkJCSIlcDogUnggcXVldWUgb2ZmbG9h ZHMgMHglIiBQUkl4NjQNCj4gPiA+PiAtCQkJIiBkb24ndCBtYXRjaCBwb3J0IG9mZmxvYWRzIDB4 JSIgUFJJeDY0DQo+ID4gPj4gLQkJCSIgb3Igc3VwcG9ydGVkIG9mZmxvYWRzIDB4JSIgUFJJeDY0 ICJcbiIsDQo+ID4gPj4gLQkJCSh2b2lkICopZGV2LCByeF9jb25mLT5vZmZsb2FkcywNCj4gPiA+ PiAtCQkJZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGUub2ZmbG9hZHMsDQo+ID4gPj4gLQkJCSh0 YXBfcnhfb2ZmbG9hZF9nZXRfcG9ydF9jYXBhKCkgfA0KPiA+ID4+IC0JCQkgdGFwX3J4X29mZmxv YWRfZ2V0X3F1ZXVlX2NhcGEoKSkpOw0KPiA+ID4+IC0JCXJldHVybiAtcnRlX2Vycm5vOw0KPiA+ ID4+IC0JfQ0KPiA+ID4NCj4gPiA+IFRoZSB0YXBfcnhxX2FyZV9vZmZsb2Fkc192YWxpZCgpIGNh bGwgaXMgZXNzZW50aWFsLiBJIHN1Z2dlc3QgdG8NCj4gPiA+IGxlYXZlIGl0IGluDQo+ID4gcGxh Y2UuDQo+ID4gPiBUaGUgUlRFX0xPRyBjb3VsZCBkcm9wIHBvcnQgcmVmZXJlbmNlcyB0byBiZWNv bWU6DQo+ID4gPg0KPiA+ID4gCQlSVEVfTE9HKEVSUiwgUE1ELA0KPiA+ID4gCQkJIiVwOiBSeCBx dWV1ZSBvZmZsb2FkcyAweCUiIFBSSXg2NA0KPiA+ID4gCQkJIiBkb24ndCBtYXRjaCINCj4gPiA+ IAkJCSIgc3VwcG9ydGVkIG9mZmxvYWRzIDB4JSIgUFJJeDY0ICJcbiIsDQo+ID4gPiAJCQkodm9p ZCAqKWRldiwgcnhfY29uZi0+b2ZmbG9hZHMsDQo+ID4gPiAJCQkgdGFwX3J4X29mZmxvYWRfZ2V0 X3F1ZXVlX2NhcGEoKSkpOw0KPiA+ID4NCj4gPiA+DQo+ID4gPj4gIAlyeHEtPm1wID0gbXA7DQo+ ID4gPj4gIAlyeHEtPnRyaWdnZXJfc2VlbiA9IDE7IC8qIGZvcmNlIGluaXRpYWwgYnVyc3QgKi8N Cj4gPiA+PiAgCXJ4cS0+aW5fcG9ydCA9IGRldi0+ZGF0YS0+cG9ydF9pZDsgQEAgLTExNzUsMjkg KzExMTAsMTIgQEANCj4gPiA+PiB0YXBfdHhfcXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2 DQo+ID4gKmRldiwNCj4gPiA+PiAgCQlyZXR1cm4gLTE7DQo+ID4gPj4gIAlkZXYtPmRhdGEtPnR4 X3F1ZXVlc1t0eF9xdWV1ZV9pZF0gPSAmaW50ZXJuYWxzLT50eHFbdHhfcXVldWVfaWRdOw0KPiA+ ID4+ICAJdHhxID0gZGV2LT5kYXRhLT50eF9xdWV1ZXNbdHhfcXVldWVfaWRdOw0KPiA+ID4+IC0J LyoNCj4gPiA+PiAtCSAqIERvbid0IHZlcmlmeSBwb3J0IG9mZmxvYWRzIGZvciBhcHBsaWNhdGlv biB3aGljaA0KPiA+ID4+IC0JICogdXNlIHRoZSBvbGQgQVBJLg0KPiA+ID4+IC0JICovDQo+ID4g Pj4gLQlpZiAodHhfY29uZiAhPSBOVUxMICYmDQo+ID4gPj4gLQkgICAgISEodHhfY29uZi0+dHhx X2ZsYWdzICYgRVRIX1RYUV9GTEFHU19JR05PUkUpKSB7DQo+ID4gPj4gLQkJaWYgKHRhcF90eHFf YXJlX29mZmxvYWRzX3ZhbGlkKGRldiwgdHhfY29uZi0+b2ZmbG9hZHMpKSB7DQo+ID4gPj4gLQkJ CXR4cS0+Y3N1bSA9ICEhKHR4X2NvbmYtPm9mZmxvYWRzICYNCj4gPiA+PiAtCQkJCQkoREVWX1RY X09GRkxPQURfSVBWNF9DS1NVTSB8DQo+ID4gPj4gLQkJCQkJIERFVl9UWF9PRkZMT0FEX1VEUF9D S1NVTSB8DQo+ID4gPj4gLQkJCQkJIERFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSkpOw0KPiA+ID4+ IC0JCX0gZWxzZSB7DQo+ID4gPj4gLQkJCXJ0ZV9lcnJubyA9IEVOT1RTVVA7DQo+ID4gPj4gLQkJ CVJURV9MT0coRVJSLCBQTUQsDQo+ID4gPj4gLQkJCQkiJXA6IFR4IHF1ZXVlIG9mZmxvYWRzIDB4 JSIgUFJJeDY0DQo+ID4gPj4gLQkJCQkiIGRvbid0IG1hdGNoIHBvcnQgb2ZmbG9hZHMgMHglIiBQ Ukl4NjQNCj4gPiA+PiAtCQkJCSIgb3Igc3VwcG9ydGVkIG9mZmxvYWRzIDB4JSIgUFJJeDY0LA0K PiA+ID4+IC0JCQkJKHZvaWQgKilkZXYsIHR4X2NvbmYtPm9mZmxvYWRzLA0KPiA+ID4+IC0JCQkJ ZGV2LT5kYXRhLT5kZXZfY29uZi50eG1vZGUub2ZmbG9hZHMsDQo+ID4gPj4gLQkJCQl0YXBfdHhf b2ZmbG9hZF9nZXRfcG9ydF9jYXBhKCkpOw0KPiA+ID4+IC0JCQlyZXR1cm4gLXJ0ZV9lcnJubzsN Cj4gPiA+PiAtCQl9DQo+ID4gPj4gLQl9DQo+ID4gPj4gKw0KPiA+ID4NCj4gPiA+IFRoZSB0YXBf dHhxX2FyZV9vZmZsb2Fkc192YWxpZCgpIGNhbGwgaXMgZXNzZW50aWFsLiBJIHN1Z2dlc3QgdG8N Cj4gPiA+IGxlYXZlIGl0IGluDQo+ID4gcGxhY2UuDQo+ID4gPiBUaGUgUlRFX0xPRyBtZXNzYWdl IGNvdWxkIGRyb3AgY29tcGFyaXNvbiBiZXR3ZWVuIHF1ZXVlIGFuZCBwb3J0DQo+ID4gY2FwYWJp bGl0aWVzOg0KPiA+ID4NCj4gPiA+IAkJCVJURV9MT0coRVJSLCBQTUQsDQo+ID4gPiAJCQkJIiVw OiBUeCBxdWV1ZSBvZmZsb2FkcyAweCUiIFBSSXg2NA0KPiA+ID4gCQkJCSIgZG9uJ3QgbWF0Y2gi DQo+ID4gPiAJCQkJIiBzdXBwb3J0ZWQgb2ZmbG9hZHMgMHglIiBQUkl4NjQsDQo+ID4gPiAJCQkJ KHZvaWQgKilkZXYsIHR4X2NvbmYtPm9mZmxvYWRzLA0KPiA+ID4gCQkJCXRhcF90eF9vZmZsb2Fk X2dldF9xdWV1ZV9jYXBhKCkpOw0KPiA+ID4NCj4gPiA+PiArCXR4cS0+Y3N1bSA9ICEhKHR4X2Nv bmYtPm9mZmxvYWRzICYNCj4gPiA+PiArCQkJKERFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfA0K PiA+ID4+ICsJCQkgREVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwNCj4gPiA+PiArCQkJIERFVl9U WF9PRkZMT0FEX1RDUF9DS1NVTSkpOw0KPiA+ID4+ICsNCj4gPiA+PiAgCXJldCA9IHRhcF9zZXR1 cF9xdWV1ZShkZXYsIGludGVybmFscywgdHhfcXVldWVfaWQsIDApOw0KPiA+ID4+ICAJaWYgKHJl dCA9PSAtMSkNCj4gPiA+PiAgCQlyZXR1cm4gLTE7DQo+ID4gPj4gLS0NCj4gPiA+PiAyLjE0LjMN Cj4gPiA+DQoNCg==