From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-eopbgr20041.outbound.protection.outlook.com [40.107.2.41]) by dpdk.org (Postfix) with ESMTP id 179421BE11 for ; Thu, 12 Apr 2018 15:43:06 +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=RnBNmHJtwRNPH5Nd+kKZJaChuyevHeXKiccb1AUX2ag=; b=m3GYzZtkJMNIRNAau+R3Wd30qQy4ej1467Cqba6PwYPAQswzrM92dSJ2CqLbxqKgL1izWFspHOmrpNZm5M4b8nthuxAYWxIWclePtcZuEQ7Z5xdmAhX8YPG+HaVlJlG+q6w0Ikx/OOyY+80XOZCG7QuQlhP4s2/Mb3VR10HCuT8= Received: from VI1PR05MB1678.eurprd05.prod.outlook.com (10.165.235.152) by VI1PR05MB4399.eurprd05.prod.outlook.com (52.133.13.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.653.12; Thu, 12 Apr 2018 13:43:04 +0000 Received: from VI1PR05MB1678.eurprd05.prod.outlook.com ([fe80::b8e2:e81f:98a:b6d0]) by VI1PR05MB1678.eurprd05.prod.outlook.com ([fe80::b8e2:e81f:98a:b6d0%14]) with mapi id 15.20.0653.018; Thu, 12 Apr 2018 13:43:04 +0000 From: "Xueming(Steven) Li" To: =?utf-8?B?TsOpbGlvIExhcmFuamVpcm8=?= CC: Shahaf Shuler , "dev@dpdk.org" Thread-Topic: [PATCH v2 01/15] net/mlx5: support 16 hardware priorities Thread-Index: AQHT0NCykGo5ACUCdEy/Ke6j8trDSaP6EmUAgAAD/OCAAsPaAIAAI20Q Date: Thu, 12 Apr 2018 13:43:04 +0000 Message-ID: References: <20180410133415.189905-1-xuemingl@mellanox.com> <20180410133415.189905-2-xuemingl@mellanox.com> <20180410144130.6byrrolegsimzyu3@laranjeiro-vm.dev.6wind.com> <20180412090916.6ibyognm554hmy6b@laranjeiro-vm.dev.6wind.com> In-Reply-To: <20180412090916.6ibyognm554hmy6b@laranjeiro-vm.dev.6wind.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [114.83.166.179] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; VI1PR05MB4399; 7:Zskcmz6v2xpXdPb3VgZEEg7MZFZnGH7nUiX+hbDhQwTLw8MowRZLKFqn87RG9PanAaER2ORqze0b4AZ5nFXh6LHljLh0VGQQzWTaX0R6dlDJ6sfe/AOh+OdaDRT8icoMz0q5k2VUDQmrQqpZZbQzSuhM6k5/bdploHZ0GkBZkfkE72vPN81DAZsPqdA95A+glI7IZWEzDUCB+az1ikhyk8nTGWCGmftx92LvP/KORP3IDhsCKfLWHeWRE+M1uMvW 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:VI1PR05MB4399; x-ms-traffictypediagnostic: VI1PR05MB4399: authentication-results: spf=none (sender IP is ) smtp.mailfrom=xuemingl@mellanox.com; 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)(5005006)(8121501046)(3002001)(10201501046)(93006095)(93001095)(3231221)(944501327)(52105095)(6055026)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123562045)(20161123564045)(20161123560045)(6072148)(201708071742011); SRVR:VI1PR05MB4399; BCL:0; PCL:0; RULEID:; SRVR:VI1PR05MB4399; x-forefront-prvs: 06400060E1 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(346002)(39380400002)(39860400002)(376002)(396003)(13464003)(189003)(199004)(25786009)(8936002)(5250100002)(6116002)(26005)(8676002)(54906003)(3846002)(33656002)(186003)(81156014)(81166006)(316002)(6246003)(229853002)(6436002)(66066001)(106356001)(14454004)(53936002)(55016002)(68736007)(9686003)(478600001)(6916009)(105586002)(102836004)(7696005)(93886005)(74316002)(99286004)(4326008)(2900100001)(86362001)(97736004)(305945005)(446003)(5660300001)(7736002)(476003)(11346002)(2906002)(3280700002)(486006)(53546011)(3660700001)(59450400001)(6506007)(76176011); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR05MB4399; H:VI1PR05MB1678.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: 1/HuS55VY+5RwDxkrhSuDtTRDBVFEx3Z3tmCzhaEk4KWJ69nZ1DD/SvVk/yqoqGwWYODv1q/d0ZDN9STKACAZjHFEZ/1M7XKZwe3DK/RxS7tI3bYxpNcrWx1oDEVuRRf8lMtrQKoDrTzTXSKrw1AfJLLwNfHzkDO5lfk0hBt6bcCHzW/BuI7ra96GyKGm/EY 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: 263f327e-434d-42fb-34b1-08d5a07b5118 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 263f327e-434d-42fb-34b1-08d5a07b5118 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Apr 2018 13:43:04.4130 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB4399 Subject: Re: [dpdk-dev] [PATCH v2 01/15] 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: Thu, 12 Apr 2018 13:43:06 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTsOpbGlvIExhcmFuamVp cm8gPG5lbGlvLmxhcmFuamVpcm9ANndpbmQuY29tPg0KPiBTZW50OiBUaHVyc2RheSwgQXByaWwg MTIsIDIwMTggNTowOSBQTQ0KPiBUbzogWHVlbWluZyhTdGV2ZW4pIExpIDx4dWVtaW5nbEBtZWxs YW5veC5jb20+DQo+IENjOiBTaGFoYWYgU2h1bGVyIDxzaGFoYWZzQG1lbGxhbm94LmNvbT47IGRl dkBkcGRrLm9yZw0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHYyIDAxLzE1XSBuZXQvbWx4NTogc3Vw cG9ydCAxNiBoYXJkd2FyZSBwcmlvcml0aWVzDQo+IA0KPiBPbiBUdWUsIEFwciAxMCwgMjAxOCBh dCAwMzoyMjo0NlBNICswMDAwLCBYdWVtaW5nKFN0ZXZlbikgTGkgd3JvdGU6DQo+ID4gSGkgTmVs aW8sDQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBO w6lsaW8gTGFyYW5qZWlybyA8bmVsaW8ubGFyYW5qZWlyb0A2d2luZC5jb20+DQo+ID4gPiBTZW50 OiBUdWVzZGF5LCBBcHJpbCAxMCwgMjAxOCAxMDo0MiBQTQ0KPiA+ID4gVG86IFh1ZW1pbmcoU3Rl dmVuKSBMaSA8eHVlbWluZ2xAbWVsbGFub3guY29tPg0KPiA+ID4gQ2M6IFNoYWhhZiBTaHVsZXIg PHNoYWhhZnNAbWVsbGFub3guY29tPjsgZGV2QGRwZGsub3JnDQo+ID4gPiBTdWJqZWN0OiBSZTog W1BBVENIIHYyIDAxLzE1XSBuZXQvbWx4NTogc3VwcG9ydCAxNiBoYXJkd2FyZQ0KPiA+ID4gcHJp b3JpdGllcw0KPiA+ID4NCj4gPiA+IE9uIFR1ZSwgQXByIDEwLCAyMDE4IGF0IDA5OjM0OjAxUE0g KzA4MDAsIFh1ZW1pbmcgTGkgd3JvdGU6DQo+ID4gPiA+IEFkanVzdCBmbG93IHByaW9yaXR5IG1h cHBpbmcgdG8gYWRhcHQgbmV3IGhhcmR3YXJlIDE2IHZlcmIgZmxvdw0KPiA+ID4gPiBwcmlvcml0 ZXMgc3VwcG9ydDoNCj4gPiA+ID4gMC0zOiBSVEUgRkxPVyB0dW5uZWwgcnVsZQ0KPiA+ID4gPiA0 LTc6IFJURSBGTE9XIG5vbi10dW5uZWwgcnVsZQ0KPiA+ID4gPiA4LTE1OiBQTUQgY29udHJvbCBm bG93DQo+ID4gPg0KPiA+ID4gVGhpcyBjb21taXQgbG9nIGlzIGluZHVjaW5nIHBlb3BsZSBpbiBl cnJvciwgdGhpcyBhbW91bnQgb2YgcHJpb3JpdHkNCj4gPiA+IGRlcGVuZHMgb24gdGhlIE1lbGxh bm94IE9GRUQgaW5zdGFsbGVkLCBpdCBpcyBub3QgYXZhaWxhYmxlIG9uDQo+ID4gPiB1cHN0cmVh bSBMaW51eCBrZXJuZWwgeWV0IG5vciBpbiB0aGUgY3VycmVudCBNZWxsYW5veCBPRkVEIEdBLg0K PiA+ID4NCj4gPiA+IFdoYXQgaGFwcGVucyB3aGVuIHRob3NlIGFtb3VudCBvZiBwcmlvcml0eSBh cmUgbm90IGF2YWlsYWJsZSwgaXMgaXQNCj4gPiA+IHJlbW92aW5nIGEgZnVuY3Rpb25hbGl0eT8g IFdpbGwgaXQgY29sbGlkZSB3aXRoIG90aGVyIGZsb3dzPw0KPiA+DQo+ID4gSWYgMTYgIHByaW9y aXRpZXMgbm90IGF2YWlsYWJsZSwgc2ltcGx5IGJlaGF2aW9yIGFzIDggcHJpb3JpdGllcy4NCj4g DQo+IEl0IGlzIG5vdCBkZXNjcmliZWQgaW4gdGhlIGNvbW1pdCBsb2csIHBsZWFzZSBhZGQgaXQu DQo+IA0KPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBYdWVtaW5nIExpIDx4dWVtaW5nbEBtZWxsYW5v eC5jb20+DQo+IDxzbmlwLz4NCj4gPiA+ID4gIAl9LA0KPiA+ID4gPiAgCVtIQVNIX1JYUV9FVEhd ID0gew0KPiA+ID4gPiAgCQkuaGFzaF9maWVsZHMgPSAwLA0KPiA+ID4gPiAgCQkuZHBka19yc3Nf aGYgPSAwLA0KPiA+ID4gPiAtCQkuZmxvd19wcmlvcml0eSA9IDMsDQo+ID4gPiA+ICsJCS5mbG93 X3ByaW9yaXR5ID0gMiwNCj4gPiA+ID4gIAl9LA0KPiA+ID4gPiAgfTsNCj4gPiA+DQo+ID4gPiBJ ZiB0aGUgYW1vdW50IG9mIHByaW9yaXRpZXMgcmVtYWlucyA4LCB5b3UgYXJlIHJlbW92aW5nIHRo ZSBwcmlvcml0eQ0KPiA+ID4gZm9yIHRoZSB0dW5uZWwgZmxvd3MgaW50cm9kdWNlZCBieSBjb21t aXQgNzQ5MzY1NzE3ZjVjICgibmV0L21seDU6DQo+ID4gPiBjaGFuZ2UgdHVubmVsIGZsb3cgcHJp b3JpdHkiKQ0KPiA+ID4NCj4gPiA+IFBsZWFzZSBrZWVwIHRoaXMgZnVuY3Rpb25hbGl0eSB3aGVu IHRoaXMgcGF0Y2ggZmFpbHMgdG8gZ2V0IHRoZQ0KPiA+ID4gZXhwZWN0ZWQNCj4gPiA+IDE2IFZl cmJzIHByaW9yaXRpZXMuDQo+ID4NCj4gPiBUaGVzZSBwcmlvcml0eSBzaGlmdCBhcmUgZGlmZmVy ZW50IGluIDE2IHByaW9yaXRpZXMgc2NlbmFyaW8sIEkNCj4gPiBjaGFuZ2VkIGl0IHRvIGNhbGN1 bGF0aW9uLiBJbiBmdW5jdGlvbiBtbHg1X2Zsb3dfcHJpb3JpdGllc19kZXRlY3QoKSwNCj4gPiBw cmlvcml0eSBzaGlmdCB3aWxsIGJlIDEgaWYgOCBwcmlvcml0aWVzLCA0IGluIGNhc2Ugb2YgMTYg cHJpb3JpdGllcy4NCj4gPiBQbGVhc2UgcmVmZXIgdG8gY2hhbmdlcyBpbiBmdW5jdGlvbiBtbHg1 X2Zsb3dfdXBkYXRlX3ByaW9yaXR5KCkgYXMgd2VsbC4NCj4gDQo+IFBsZWFzZSBsaWdodCBteSBs YW1wLCBJIGRvbid0IHNlZSBpdC4uLg0KDQpTb3JyeSwgcGxlYXNlIHJlZmVyIHRvIHByaXYtPmNv bmZpZy5mbG93X3ByaW9yaXR5X3NoaWZ0Lg0KDQo+IA0KPiA8c25pcC8+DQo+ID4gPiA+ICBzdGF0 aWMgdm9pZA0KPiA+ID4gPiAtbWx4NV9mbG93X3VwZGF0ZV9wcmlvcml0eShzdHJ1Y3QgbWx4NV9m bG93X3BhcnNlICpwYXJzZXIsDQo+ID4gPiA+ICttbHg1X2Zsb3dfdXBkYXRlX3ByaW9yaXR5KHN0 cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KPiA+ID4gPiArCQkJICBzdHJ1Y3QgbWx4NV9mbG93X3Bh cnNlICpwYXJzZXIsDQo+ID4gPiA+ICAJCQkgIGNvbnN0IHN0cnVjdCBydGVfZmxvd19hdHRyICph dHRyKSAgew0KPiA+ID4gPiArCXN0cnVjdCBwcml2ICpwcml2ID0gZGV2LT5kYXRhLT5kZXZfcHJp dmF0ZTsNCj4gPiA+ID4gIAl1bnNpZ25lZCBpbnQgaTsNCj4gPiA+ID4gKwl1aW50MTZfdCBwcmlv cml0eTsNCj4gPiA+ID4NCj4gPiA+ID4gKwlpZiAocHJpdi0+Y29uZmlnLmZsb3dfcHJpb3JpdHlf c2hpZnQgPT0gMSkNCj4gPiA+ID4gKwkJcHJpb3JpdHkgPSBhdHRyLT5wcmlvcml0eSAqIE1MWDVf VkVSQlNfRkxPV19QUklPXzQ7DQo+ID4gPiA+ICsJZWxzZQ0KPiA+ID4gPiArCQlwcmlvcml0eSA9 IGF0dHItPnByaW9yaXR5ICogTUxYNV9WRVJCU19GTE9XX1BSSU9fODsNCj4gPiA+ID4gKwlpZiAo IXBhcnNlci0+aW5uZXIpDQo+ID4gPiA+ICsJCXByaW9yaXR5ICs9IHByaXYtPmNvbmZpZy5mbG93 X3ByaW9yaXR5X3NoaWZ0Ow0KDQpIZXJlLCBpZiBub24tdHVubmVsIGZsb3csIGxvd2VyKGluY3Jl YXNlKSAxIGZvciA4IHByaW9yaXRpZXMsIGxvd2VyIDQgb3RoZXJ3aXNlLg0KSSdsbCBhcHBlbmQg YSBjb21tZW50IGhlcmUuDQoNCj4gPiA+ID4gIAlpZiAocGFyc2VyLT5kcm9wKSB7DQo+ID4gPiA+ IC0JCXBhcnNlci0+cXVldWVbSEFTSF9SWFFfRVRIXS5pYnZfYXR0ci0+cHJpb3JpdHkgPQ0KPiA+ ID4gPiAtCQkJYXR0ci0+cHJpb3JpdHkgKw0KPiA+ID4gPiAtCQkJaGFzaF9yeHFfaW5pdFtIQVNI X1JYUV9FVEhdLmZsb3dfcHJpb3JpdHk7DQo+ID4gPiA+ICsJCXBhcnNlci0+cXVldWVbSEFTSF9S WFFfRVRIXS5pYnZfYXR0ci0+cHJpb3JpdHkgPQ0KPiBwcmlvcml0eSArDQo+ID4gPiA+ICsJCQkJ aGFzaF9yeHFfaW5pdFtIQVNIX1JYUV9FVEhdLmZsb3dfcHJpb3JpdHk7DQo+ID4gPiA+ICAJCXJl dHVybjsNCj4gPiA+ID4gIAl9DQo+ID4gPiA+ICAJZm9yIChpID0gMDsgaSAhPSBoYXNoX3J4cV9p bml0X247ICsraSkgew0KPiA+ID4gPiAtCQlpZiAocGFyc2VyLT5xdWV1ZVtpXS5pYnZfYXR0cikg ew0KPiA+ID4gPiAtCQkJcGFyc2VyLT5xdWV1ZVtpXS5pYnZfYXR0ci0+cHJpb3JpdHkgPQ0KPiA+ ID4gPiAtCQkJCWF0dHItPnByaW9yaXR5ICsNCj4gPiA+ID4gLQkJCQloYXNoX3J4cV9pbml0W2ld LmZsb3dfcHJpb3JpdHkgLQ0KPiA+ID4gPiAtCQkJCShwYXJzZXItPmlubmVyID8gMSA6IDApOw0K PiA+ID4gPiAtCQl9DQo+ID4gPiA+ICsJCWlmICghcGFyc2VyLT5xdWV1ZVtpXS5pYnZfYXR0cikN Cj4gPiA+ID4gKwkJCWNvbnRpbnVlOw0KPiA+ID4gPiArCQlwYXJzZXItPnF1ZXVlW2ldLmlidl9h dHRyLT5wcmlvcml0eSA9IHByaW9yaXR5ICsNCj4gPiA+ID4gKwkJCQloYXNoX3J4cV9pbml0W2ld LmZsb3dfcHJpb3JpdHk7DQo+IA0KPiBQcmV2aW91cyBjb2RlIHdhcyBzdWJ0cmFjdGluZyBvbmUg ZnJvbSB0aGUgdGFibGUgcHJpb3JpdGllcyB3aGljaCB3YXMNCj4gc3RhcnRpbmcgYXQgMS4gIElu IHRoZSBuZXcgY29kZSBJIGRvbid0IHNlZSBpdC4NCj4gDQo+IFdoYXQgSSBhbSBtaXNzaW5nPw0K DQpQbGVhc2UgcmVmZXIgdG8gbmV3IGNvbW1lbnQgYWJvdmUgYXJvdW5kIHZhcmlhYmxlICJwcmlv cml0eSIgY2FsY3VsYXRpb24uDQoNCj4gDQo+ID4gPiA+ICAJfQ0KPiA+ID4gPiAgfQ0KPiA+ID4g Pg0KPiA+ID4gPiBAQCAtMTA4Nyw3ICsxMDk3LDcgQEAgbWx4NV9mbG93X2NvbnZlcnQoc3RydWN0 IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+ID4gPiA+ICAJCS5sYXllciA9IEhBU0hfUlhRX0VUSCwNCj4g PiA+ID4gIAkJLm1hcmtfaWQgPSBNTFg1X0ZMT1dfTUFSS19ERUZBVUxULA0KPiA+ID4gPiAgCX07 DQo+ID4gPiA+IC0JcmV0ID0gbWx4NV9mbG93X2NvbnZlcnRfYXR0cmlidXRlcyhhdHRyLCBlcnJv cik7DQo+ID4gPiA+ICsJcmV0ID0gbWx4NV9mbG93X2NvbnZlcnRfYXR0cmlidXRlcyhkZXYsIGF0 dHIsIGVycm9yKTsNCj4gPiA+ID4gIAlpZiAocmV0KQ0KPiA+ID4gPiAgCQlyZXR1cm4gcmV0Ow0K PiA+ID4gPiAgCXJldCA9IG1seDVfZmxvd19jb252ZXJ0X2FjdGlvbnMoZGV2LCBhY3Rpb25zLCBl cnJvciwgcGFyc2VyKTsNCj4gQEANCj4gPiA+ID4gLTExNTgsNyArMTE2OCw3IEBAIG1seDVfZmxv d19jb252ZXJ0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KPiA+ID4gPiAgCSAqLw0KPiA+ID4g PiAgCWlmICghcGFyc2VyLT5kcm9wKQ0KPiA+ID4gPiAgCQltbHg1X2Zsb3dfY29udmVydF9maW5h bGlzZShwYXJzZXIpOw0KPiA+ID4gPiAtCW1seDVfZmxvd191cGRhdGVfcHJpb3JpdHkocGFyc2Vy LCBhdHRyKTsNCj4gPiA+ID4gKwltbHg1X2Zsb3dfdXBkYXRlX3ByaW9yaXR5KGRldiwgcGFyc2Vy LCBhdHRyKTsNCj4gPiA+ID4gIGV4aXRfZnJlZToNCj4gPiA+ID4gIAkvKiBPbmx5IHZlcmlmaWNh dGlvbiBpcyBleHBlY3RlZCwgYWxsIHJlc291cmNlcyBzaG91bGQgYmUNCj4gcmVsZWFzZWQuDQo+ ID4gPiAqLw0KPiA+ID4gPiAgCWlmICghcGFyc2VyLT5jcmVhdGUpIHsNCj4gPiA+ID4gQEAgLTI0 NTAsNyArMjQ2MCw3IEBAIG1seDVfY3RybF9mbG93X3ZsYW4oc3RydWN0IHJ0ZV9ldGhfZGV2ICpk ZXYsDQo+ID4gPiA+ICAJc3RydWN0IHByaXYgKnByaXYgPSBkZXYtPmRhdGEtPmRldl9wcml2YXRl Ow0KPiA+ID4gPiAgCWNvbnN0IHN0cnVjdCBydGVfZmxvd19hdHRyIGF0dHIgPSB7DQo+ID4gPiA+ ICAJCS5pbmdyZXNzID0gMSwNCj4gPiA+ID4gLQkJLnByaW9yaXR5ID0gTUxYNV9DVFJMX0ZMT1df UFJJT1JJVFksDQo+ID4gPiA+ICsJCS5wcmlvcml0eSA9IHByaXYtPmNvbmZpZy5jb250cm9sX2Zs b3dfcHJpb3JpdHksDQo+ID4gPiA+ICAJfTsNCj4gPiA+ID4gIAlzdHJ1Y3QgcnRlX2Zsb3dfaXRl bSBpdGVtc1tdID0gew0KPiA+ID4gPiAgCQl7DQo+ID4gPiA+IEBAIC0zMTYxLDMgKzMxNzEsNTAg QEAgbWx4NV9kZXZfZmlsdGVyX2N0cmwoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+ID4gPiA+ ICAJfQ0KPiA+ID4gPiAgCXJldHVybiAwOw0KPiA+ID4gPiAgfQ0KPiA+ID4gPiArDQo+ID4gPiA+ ICsvKioNCj4gPiA+ID4gKyAqIERldGVjdCBudW1iZXIgb2YgVmVyYnMgZmxvdyBwcmlvcml0aWVz IHN1cHBvcnRlZC4NCj4gPiA+ID4gKyAqDQo+ID4gPiA+ICsgKiBAcGFyYW0gZGV2DQo+ID4gPiA+ ICsgKiAgIFBvaW50ZXIgdG8gRXRoZXJuZXQgZGV2aWNlLg0KPiA+ID4gPiArICovDQo+ID4gPiA+ ICt2b2lkDQo+ID4gPiA+ICttbHg1X2Zsb3dfcHJpb3JpdGllc19kZXRlY3Qoc3RydWN0IHJ0ZV9l dGhfZGV2ICpkZXYpIHsNCj4gPiA+ID4gKwlzdHJ1Y3QgcHJpdiAqcHJpdiA9IGRldi0+ZGF0YS0+ ZGV2X3ByaXZhdGU7DQo+ID4gPiA+ICsJdWludDMyX3QgdmVyYl9wcmlvcml0aWVzID0gTUxYNV9W RVJCU19GTE9XX1BSSU9fOCAqIDI7DQo+ID4gPiA+ICsJc3RydWN0IHsNCj4gPiA+ID4gKwkJc3Ry dWN0IGlidl9mbG93X2F0dHIgYXR0cjsNCj4gPiA+ID4gKwkJc3RydWN0IGlidl9mbG93X3NwZWNf ZXRoIGV0aDsNCj4gPiA+ID4gKwkJc3RydWN0IGlidl9mbG93X3NwZWNfYWN0aW9uX2Ryb3AgZHJv cDsNCj4gPiA+ID4gKwl9IGZsb3dfYXR0ciA9IHsNCj4gPiA+ID4gKwkJLmF0dHIgPSB7DQo+ID4g PiA+ICsJCQkubnVtX29mX3NwZWNzID0gMiwNCj4gPiA+ID4gKwkJCS5wcmlvcml0eSA9IHZlcmJf cHJpb3JpdGllcyAtIDEsDQo+ID4gPiA+ICsJCX0sDQo+ID4gPiA+ICsJCS5ldGggPSB7DQo+ID4g PiA+ICsJCQkudHlwZSA9IElCVl9GTE9XX1NQRUNfRVRILA0KPiA+ID4gPiArCQkJLnNpemUgPSBz aXplb2Yoc3RydWN0IGlidl9mbG93X3NwZWNfZXRoKSwNCj4gPiA+ID4gKwkJfSwNCj4gPiA+ID4g KwkJLmRyb3AgPSB7DQo+ID4gPiA+ICsJCQkuc2l6ZSA9IHNpemVvZihzdHJ1Y3QgaWJ2X2Zsb3df c3BlY19hY3Rpb25fZHJvcCksDQo+ID4gPiA+ICsJCQkudHlwZSA9IElCVl9GTE9XX1NQRUNfQUNU SU9OX0RST1AsDQo+ID4gPiA+ICsJCX0sDQo+ID4gPiA+ICsJfTsNCj4gPiA+ID4gKwlzdHJ1Y3Qg aWJ2X2Zsb3cgKmZsb3c7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKwlpZiAocHJpdi0+Y29uZmlnLmNv bnRyb2xfZmxvd19wcmlvcml0eSkNCj4gPiA+ID4gKwkJcmV0dXJuOw0KPiA+ID4gPiArCWZsb3cg PSBtbHg1X2dsdWUtPmNyZWF0ZV9mbG93KHByaXYtPmZsb3dfZHJvcF9xdWV1ZS0+cXAsDQo+ID4g PiA+ICsJCQkJICAgICAgJmZsb3dfYXR0ci5hdHRyKTsNCj4gPiA+ID4gKwlpZiAoZmxvdykgew0K PiA+ID4gPiArCQlwcml2LT5jb25maWcuZmxvd19wcmlvcml0eV9zaGlmdCA9DQo+IE1MWDVfVkVS QlNfRkxPV19QUklPXzggLyAyOw0KPiA+ID4gPiArCQljbGFpbV96ZXJvKG1seDVfZ2x1ZS0+ZGVz dHJveV9mbG93KGZsb3cpKTsNCj4gPiA+ID4gKwl9IGVsc2Ugew0KPiA+ID4gPiArCQlwcml2LT5j b25maWcuZmxvd19wcmlvcml0eV9zaGlmdCA9IDE7DQo+ID4gPiA+ICsJCXZlcmJfcHJpb3JpdGll cyA9IHZlcmJfcHJpb3JpdGllcyAvIDI7DQo+ID4gPiA+ICsJfQ0KPiA+ID4gPiArCXByaXYtPmNv bmZpZy5jb250cm9sX2Zsb3dfcHJpb3JpdHkgPSAxOw0KPiA+ID4gPiArCURSVl9MT0coSU5GTywg InBvcnQgJXUgVmVyYnMgZmxvdyBwcmlvcml0aWVzOiAlZCIsDQo+ID4gPiA+ICsJCWRldi0+ZGF0 YS0+cG9ydF9pZCwgdmVyYl9wcmlvcml0aWVzKTsgfQ0KPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvbWx4NS9tbHg1X3RyaWdnZXIuYw0KPiA+ID4gPiBiL2RyaXZlcnMvbmV0L21seDUv bWx4NV90cmlnZ2VyLmMgaW5kZXggNmJiNGZmYjE0Li5kODBhMmU2ODgNCj4gPiA+ID4gMTAwNjQ0 DQo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvbmV0L21seDUvbWx4NV90cmlnZ2VyLmMNCj4gPiA+ID4g KysrIGIvZHJpdmVycy9uZXQvbWx4NS9tbHg1X3RyaWdnZXIuYw0KPiA+ID4gPiBAQCAtMTQ4LDEy ICsxNDgsNiBAQCBtbHg1X2Rldl9zdGFydChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCj4gPiA+ ID4gIAlpbnQgcmV0Ow0KPiA+ID4gPg0KPiA+ID4gPiAgCWRldi0+ZGF0YS0+ZGV2X3N0YXJ0ZWQg PSAxOw0KPiA+ID4gPiAtCXJldCA9IG1seDVfZmxvd19jcmVhdGVfZHJvcF9xdWV1ZShkZXYpOw0K PiA+ID4gPiAtCWlmIChyZXQpIHsNCj4gPiA+ID4gLQkJRFJWX0xPRyhFUlIsICJwb3J0ICV1IGRy b3AgcXVldWUgYWxsb2NhdGlvbiBmYWlsZWQ6ICVzIiwNCj4gPiA+ID4gLQkJCWRldi0+ZGF0YS0+ cG9ydF9pZCwgc3RyZXJyb3IocnRlX2Vycm5vKSk7DQo+ID4gPiA+IC0JCWdvdG8gZXJyb3I7DQo+ ID4gPiA+IC0JfQ0KPiA+ID4gPiAgCURSVl9MT0coREVCVUcsICJwb3J0ICV1IGFsbG9jYXRpbmcg YW5kIGNvbmZpZ3VyaW5nIGhhc2ggUngNCj4gcXVldWVzIiwNCj4gPiA+ID4gIAkJZGV2LT5kYXRh LT5wb3J0X2lkKTsNCj4gPiA+ID4gIAlydGVfbWVtcG9vbF93YWxrKG1seDVfbXAybXJfaXRlciwg cHJpdik7IEBAIC0yMDIsNyArMTk2LDYgQEANCj4gPiA+ID4gbWx4NV9kZXZfc3RhcnQoc3RydWN0 IHJ0ZV9ldGhfZGV2ICpkZXYpDQo+ID4gPiA+ICAJbWx4NV90cmFmZmljX2Rpc2FibGUoZGV2KTsN Cj4gPiA+ID4gIAltbHg1X3R4cV9zdG9wKGRldik7DQo+ID4gPiA+ICAJbWx4NV9yeHFfc3RvcChk ZXYpOw0KPiA+ID4gPiAtCW1seDVfZmxvd19kZWxldGVfZHJvcF9xdWV1ZShkZXYpOw0KPiA+ID4g PiAgCXJ0ZV9lcnJubyA9IHJldDsgLyogUmVzdG9yZSBydGVfZXJybm8uICovDQo+ID4gPiA+ICAJ cmV0dXJuIC1ydGVfZXJybm87DQo+ID4gPiA+ICB9DQo+ID4gPiA+IEBAIC0yMzcsNyArMjMwLDYg QEAgbWx4NV9kZXZfc3RvcChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCj4gPiA+ID4gIAltbHg1 X3J4cV9zdG9wKGRldik7DQo+ID4gPiA+ICAJZm9yIChtciA9IExJU1RfRklSU1QoJnByaXYtPm1y KTsgbXI7IG1yID0gTElTVF9GSVJTVCgmcHJpdi0NCj4gPm1yKSkNCj4gPiA+ID4gIAkJbWx4NV9t cl9yZWxlYXNlKG1yKTsNCj4gPiA+ID4gLQltbHg1X2Zsb3dfZGVsZXRlX2Ryb3BfcXVldWUoZGV2 KTsNCj4gPiA+ID4gIH0NCj4gPiA+ID4NCj4gPiA+ID4gIC8qKg0KPiA+ID4gPiAtLQ0KPiA+ID4g PiAyLjEzLjMNCj4gPiA+DQo+ID4gPiBJIGhhdmUgZmV3IGNvbmNlcm5zIG9uIHRoaXMsIG1seDVf cGNpX3Byb2JlKCkgd2lsbCBhbHNvIHByb2JlIGFueQ0KPiA+ID4gdW5kZXIgbGF5ZXIgdmVyYnMg ZGV2aWNlLCBhbmQgaW4gYSBuZWFyIGZ1dHVyZSB0aGUgcmVwcmVzZW50b3JzDQo+ID4gPiBhc3Nv Y2lhdGVkIHRvIGEgVkYuDQo+ID4gPiBNYWtpbmcgc3VjaCBkZXRlY3Rpb24gc2hvdWxkIG9ubHkg YmUgZG9uZSBvbmNlIGJ5IHRoZSBQRiwgSSBhbHNvDQo+ID4gPiB3YW5kZXIgaWYgaXQgaXMgcG9z c2libGUgdG8gbWFrZSBzdWNoIGRyb3AgYWN0aW9uIGluIGEgcmVwcmVzZW50b3INCj4gPiA+IGRp cmVjdGx5IHVzaW5nIFZlcmJzLg0KPiA+DQo+ID4gVGhlbiB0aGVyZSBzaG91bGQgYmUgc29tZSB3 b3JrIHRvIGRpc2FibGUgZmxvd3MgaW4gcmVwcmVzZW50b3JzPyB0aGF0DQo+ID4gc3VwcG9zZWQg dG8gY292ZXIgdGhpcy4NCj4gDQo+IFRoZSBjb2RlIHJhaXNpbmcgYW5vdGhlciBWZXJicyBkZXZp Y2UgaXMgYWxyZWFkeSBwcmVzZW50IGFuZCBzaW5jZSB0aGUNCj4gZmlyc3QgZW50cmFuY2Ugb2Yg dGhpcyBQTUQgaW4gdGhlIERQREsgdHJlZSwgeW91IG11c3QgcmVzcGVjdCB0aGUgY29kZQ0KPiBh bHJlYWR5IHByZXNlbnQuDQo+IFRoaXMgcmVxdWVzdCBpcyBub3QgcmVsYXRlZCBkaXJlY3RseSB0 byBhIG5ldyBmZWF0dXJlIGJ1dCB0byBhbiBleGlzdGluZw0KPiBvbmUsIHRoZSByZXByZXNlbnRv cnMgYmVpbmcganVzdCBhbiBleGFtcGxlLg0KPiANCj4gVGhpcyBkZXRlY3Rpb24gc2hvdWxkIGJl IG9ubHkgZG9uZSBvbmNlIGFuZCBub3QgZm9yIGVhY2ggb2YgdGhlbS4NCg0KQ291bGQgeW91IHBs ZWFzZSBlbGFib3JhdGUgb24gInVuZGVyIGxheWVyIHZlcmJzIGRldmljZSIgYW5kIGhvdyB0byBq dWRnZQ0KZGVwZW5kZW5jeSB0byBQRiwgaXMgdGhlcmUgYSBwcm9iZSBvcmRlciBiZXR3ZWVuIHRo ZW0/DQoNCkJUVywgVkYgcmVwcmVzZW50b3IgY29kZSBzZWVtcyBleGlzdHMgaW4gMTcuMTEsIG5v dCB1cHN0cmVhbS4NCg0KPiANCj4gPiA+IEFub3RoZXIgY29uY2VybiBpcywgdGhpcyBwYXRjaCB3 aWxsIGJlIHJldmVydGVkIGluIHNvbWUgdGltZSB3aGVuDQo+ID4gPiB0aG9zZQ0KPiA+ID4gMTYg cHJpb3JpdHkgd2lsbCBiZSBhbHdheXMgYXZhaWxhYmxlLiAgSXQgd2lsbCBiZSBlYXNpZXIgdG8g cmVtb3ZlDQo+ID4gPiB0aGlzIGRldGVjdGlvbiBmdW5jdGlvbiB0aGFuIHNlYXJjaGluZyBmb3Ig YWxsIHRob3NlIG1vZGlmaWNhdGlvbnMuDQo+ID4gPg0KPiA+ID4gSSB3b3VsZCBzdWdnZXN0IHRv IGhhdmUgYSBzdGFuZGFsb25lIG1seDVfZmxvd19wcmlvcml0aWVzX2RldGVjdCgpDQo+ID4gPiB3 aGljaCBjcmVhdGVzIGFuZCBkZWxldGVzIGFsbCByZXNvdXJjZXMgbmVlZGVkIGZvciB0aGlzIGRl dGVjdGlvbi4NCj4gPg0KPiA+IFRoZXJlIGlzIGFuIHVwY29taW5nIG5ldyBmZWF0dXJlIHRvIHN1 cHBvcnQgcHJpb3JpdGllcyBtb3JlIHRoYW4gMTYsDQo+ID4gYXV0byBkZXRlY3Rpb24gd2lsbCBi ZSBrZXB0IElNSE8uDQo+IA0KPiBVbnRpbCB0aGUgZmluYWwgdmFsdWVzIG9mIHByaW9yaXRpZXMg d2lsbCBiZSBiYWNrcG9ydGVkIHRvIGFsbCBrZXJuZWxzIHdlDQo+IHN1cHBvcnQuICBZb3UgZG9u J3Qgc2VlIGZhciBlbm91Z2ggaW4gdGhlIGZ1dHVyZS4NCj4gDQo+ID4gQmVzaWRlcywgdGhlcmUg d2lsbCBiZSBhIGJ1bmRsZSBvZiByZXNvdXJjZSBjcmVhdGlvbiBhbmQgcmVtb3ZhbCBpbg0KPiA+ IHRoaXMgc3RhbmRhbG9uZSBmdW5jdGlvbiwgSSdtIG5vdCBzdXJlIGl0IHZhbHVhYmxlIHRvIGR1 cGxpY2F0ZSB0aGVtLA0KPiA+IHBsZWFzZSByZWZlciB0byBmdW5jdGlvbiBtbHg1X2Zsb3dfY3Jl YXRlX2Ryb3BfcXVldWUoKS4NCj4gDQo+IFlvdSBtaXN1bmRlcnN0b29kLCBJIGFtIG5vdCBhc2tp bmcgeW91IHRvIG5vdCB1c2UgdGhlIGRlZmF1bHQgZHJvcCBxdWV1ZXMNCj4gYnV0IGluc3RlYWQg b2YgbWFraW5nIGFuIHJ0ZV9mbG93IGF0dHJpYnV0ZXMsIGl0ZW1zIGFuZCBhY3Rpb25zIHRvIG1h a2UNCj4gZGlyZWN0bHkgdGhlIFZlcmJzIHNwZWNpZmljYXRpb24gb24gdGhlIHN0YWNrLiAgSXQg d2lsbCBiZSBmYXN0ZXIgdGhhbg0KPiBtYWtpbmcgYSBidW5jaCBvZiBjb252ZXJzaW9ucyAocmVs eWluZyBvbiBtYWxsb2MpIGZyb20gcnRlX2Zsb3cgdG8gVmVyYnMNCj4gd2hlcmVhcyB5b3Uga25v dyBleGFjdGx5IHdoYXQgaXQgbmVlZHMgaS5lLiAxIHNwZWMuDQoNClNvcnJ5LCBzdGlsbCBjb25m dXNlZCwgbWx4NV9mbG93X3ByaW9yaXRpZXNfZGV0ZWN0KCkgaW52b2tlcyBpYnZfZGVzdHJveV9m bG93KCksDQpub3QgcnRlX2Zsb3cgc3R1ZmYsIG5vIG1hbGxvYyBhdCBhbGwuIEJUVywgbWx4NSBm bG93IGFwaSBieXBhc3MgdmVyYiBmbG93IGluIA0Kb2ZmbGluZSBtb2RlLCB3ZSBjYW4ndCB1c2Ug aXQgdG8gY3JlYXRlIGZsb3dzIGF0IHN1Y2ggc3RhZ2UuDQoNCj4gDQo+IFRoYW5rcywNCj4gDQo+ IC0tDQo+IE7DqWxpbyBMYXJhbmplaXJvDQo+IDZXSU5EDQo=