From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on0056.outbound.protection.outlook.com [104.47.1.56]) by dpdk.org (Postfix) with ESMTP id F2C191E918 for ; Tue, 12 Jun 2018 08:42:39 +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:X-MS-Exchange-SenderADCheck; bh=ErTmCow0I9sdSNjlZHF7FUiTW6ZEayiwPG+nVtZHp/Y=; b=lg65JgAO/4kpc8iuWNQINLOZDr5TryKL+N7Mdr7NsEdZTF0yYJJvnAGc/WUMYJ8gf5/k0cbty/I83o/fSbuHOnA94JS0ZbaXNDnqB4CcgvmZ1XfFokmkEsi17jjriS76WwcaipcKWmAQtJX6rH9CPx1jmtx5jd+QcKzNVyBf8BE= Received: from VI1PR05MB1678.eurprd05.prod.outlook.com (10.165.235.152) by VI1PR05MB4239.eurprd05.prod.outlook.com (52.133.12.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.841.17; Tue, 12 Jun 2018 06:42:38 +0000 Received: from VI1PR05MB1678.eurprd05.prod.outlook.com ([fe80::e06e:5570:1949:413d]) by VI1PR05MB1678.eurprd05.prod.outlook.com ([fe80::e06e:5570:1949:413d%6]) with mapi id 15.20.0841.019; Tue, 12 Jun 2018 06:42:38 +0000 From: "Xueming(Steven) Li" To: Adrien Mazarguil , Shahaf Shuler CC: "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH 6/7] net/mlx5: probe all port representors Thread-Index: AQHT9EaUMZDxBl/FrE+8v8zD4GWcbqRcRECA Date: Tue, 12 Jun 2018 06:42:38 +0000 Message-ID: References: <20180525161814.13873-1-adrien.mazarguil@6wind.com> <20180525161814.13873-7-adrien.mazarguil@6wind.com> In-Reply-To: <20180525161814.13873-7-adrien.mazarguil@6wind.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [117.131.10.90] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; VI1PR05MB4239; 7:sJ434cQztqT2tzEEwvRz2VbtrGwD0iVzDzBasrHmt8ATVUwVXvHtwjoptPsGVxI8hSNMBrZNA7IFsk/nhmQE3SCnL4NPIIn9j1KUv6vVLKCtS+1XQIyR5bLSXSBG+oa8jmpvTCZXV0HDxVZV5zRjO0CjSt6OuylsmqgWtTPsoIX0QnCP5fW0aM/F2snTnLozIb8n7T/ihS+UxNnWyd8T6PsJrtMtL21ZWY7h4lkrNR98kpFJLWpNvydeM/WCgERN x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:VI1PR05MB4239; x-ms-traffictypediagnostic: VI1PR05MB4239: 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-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(3231254)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(20161123560045)(20161123558120)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(6072148)(201708071742011)(7699016); SRVR:VI1PR05MB4239; BCL:0; PCL:0; RULEID:; SRVR:VI1PR05MB4239; x-forefront-prvs: 07013D7479 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39380400002)(39860400002)(366004)(396003)(376002)(346002)(13464003)(199004)(189003)(76176011)(97736004)(6246003)(110136005)(316002)(229853002)(33656002)(486006)(55016002)(305945005)(26005)(2900100001)(68736007)(81166006)(81156014)(5890100001)(8936002)(5660300001)(7736002)(5250100002)(7696005)(53946003)(99286004)(476003)(186003)(11346002)(446003)(53936002)(6636002)(86362001)(74316002)(66066001)(3660700001)(14454004)(478600001)(105586002)(106356001)(8676002)(102836004)(9686003)(6116002)(25786009)(53546011)(3280700002)(6436002)(2906002)(4326008)(6506007)(59450400001)(3846002)(579004); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR05MB4239; 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: 3sAvLgOouOhr53l6Ov1P4QjTEhqZyZrsNHRPTsOU0GNsrftDL4Bd5qN0GmLqh5fg9TEKobSy1cp2EKFyP4VNJm3ucBEUaQSjQKhiMORUOPp8YRrKHgmgtIg//NV5qIuJHW7QLfZGOPbwA97mqF0f+qgDxy7rMJUJje2gdSmrc8Ma/t9iO9Q9ok6q8IbsxLkp 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: 33115d36-c81e-4dd5-8b5c-08d5d02fb061 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 33115d36-c81e-4dd5-8b5c-08d5d02fb061 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Jun 2018 06:42:38.3415 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB4239 Subject: Re: [dpdk-dev] [PATCH 6/7] net/mlx5: probe all port representors 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, 12 Jun 2018 06:42:40 -0000 SGkgQWRyaWVuLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IGRldiA8 ZGV2LWJvdW5jZXNAZHBkay5vcmc+IE9uIEJlaGFsZiBPZiBBZHJpZW4gTWF6YXJndWlsDQo+IFNl bnQ6IFNhdHVyZGF5LCBNYXkgMjYsIDIwMTggMTI6MzUgQU0NCj4gVG86IFNoYWhhZiBTaHVsZXIg PHNoYWhhZnNAbWVsbGFub3guY29tPg0KPiBDYzogZGV2QGRwZGsub3JnDQo+IFN1YmplY3Q6IFtk cGRrLWRldl0gW1BBVENIIDYvN10gbmV0L21seDU6IHByb2JlIGFsbCBwb3J0IHJlcHJlc2VudG9y cw0KPiANCj4gUHJvYmUgZXhpc3RpbmcgcG9ydCByZXByZXNlbnRvcnMgaW4gYWRkaXRpb24gdG8g dGhlaXIgbWFzdGVyIGRldmljZSBhbmQgYXNzb2NpYXRlIHRoZW0gYXV0b21hdGljYWxseS4NCj4g DQo+IFRvIGF2b2lkIG5hbWUgY29sbGlzaW9uIGJldHdlZW4gRXRoZXJuZXQgZGV2aWNlcywgdGhl aXIgbmFtZXMgdXNlIHRoZSBzYW1lIGNvbnZlbnRpb24gYXMgaXhnYmUgYW5kDQo+IGk0MGUgUE1E cywgdGhhdCBpcywgaW5zdGVhZCBvZiBvbmx5IGEgUENJIGFkZHJlc3MgaW4gREJERiBub3RhdGlv bjoNCj4gDQo+IC0gIm5ldF97REJERn1fMCIgZm9yIG1hc3Rlci9zd2l0Y2ggZGV2aWNlcy4NCj4g LSAibmV0X3tEQkRGfV9yZXByZXNlbnRvcl97cmVwfSIgd2l0aCAicmVwIiBzdGFydGluZyBmcm9t IDAgZm9yIHBvcnQNCj4gICByZXByZXNlbnRvcnMuDQo+IA0KPiBCb3RoIG9wdGlvbmFsbHkgc3Vm Zml4ZWQgd2l0aCAiX3BvcnRfe251bX0iIGluc3RlYWQgb2YgIiBwb3J0IHtudW19IiBmb3IgZGV2 aWNlcyB0aGF0IGV4cG9zZSBzZXZlcmFsDQo+IFZlcmJzIHBvcnRzIChub3RlIHRoaXMgaXMgbmV2 ZXIgdGhlIGNhc2Ugb24gbWx4NSwgYnV0IGtlcHQgZm9yIGhpc3RvcmljYWwgcmVhc29ucyBmb3Ig dGhlIHRpbWUgYmVpbmcpLg0KPiANCj4gKFBhdGNoIGJhc2VkIG9uIHByaW9yIHdvcmsgZnJvbSBZ dWFuaGFuIExpdSkNCj4gDQo+IFNpZ25lZC1vZmYtYnk6IEFkcmllbiBNYXphcmd1aWwgPGFkcmll bi5tYXphcmd1aWxANndpbmQuY29tPg0KPiAtLS0NCj4gIGRyaXZlcnMvbmV0L21seDUvbWx4NS5j ICAgICAgICB8IDExOSArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQ0KPiAgZHJpdmVycy9u ZXQvbWx4NS9tbHg1LmggICAgICAgIHwgICA4ICstDQo+ICBkcml2ZXJzL25ldC9tbHg1L21seDVf ZXRoZGV2LmMgfCAxNDUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tDQo+ICBk cml2ZXJzL25ldC9tbHg1L21seDVfbWFjLmMgICAgfCAgIDIgKy0NCj4gIGRyaXZlcnMvbmV0L21s eDUvbWx4NV9zdGF0cy5jICB8ICAgNiArLQ0KPiAgNSBmaWxlcyBjaGFuZ2VkLCAyMjYgaW5zZXJ0 aW9ucygrKSwgNTQgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv bWx4NS9tbHg1LmMgYi9kcml2ZXJzL25ldC9tbHg1L21seDUuYyBpbmRleCBkM2EyOTgzMzIuLjA5 YWZjYTYzYyAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvbWx4NS9tbHg1LmMNCj4gKysrIGIv ZHJpdmVycy9uZXQvbWx4NS9tbHg1LmMNCj4gQEAgLTMwMSw2ICszMDEsOSBAQCBtbHg1X2Rldl9j bG9zZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCj4gIAlpZiAocmV0KQ0KPiAgCQlEUlZfTE9H KFdBUk5JTkcsICJwb3J0ICV1IHNvbWUgZmxvd3Mgc3RpbGwgcmVtYWluIiwNCj4gIAkJCWRldi0+ ZGF0YS0+cG9ydF9pZCk7DQo+ICsJaWYgKCFwcml2LT5yZXByZXNlbnRvciAmJg0KPiArCSAgICBw cml2LT5kb21haW5faWQgIT0gUlRFX0VUSF9ERVZfU1dJVENIX0RPTUFJTl9JRF9JTlZBTElEKQ0K PiArCQljbGFpbV96ZXJvKHJ0ZV9ldGhfc3dpdGNoX2RvbWFpbl9mcmVlKHByaXYtPmRvbWFpbl9p ZCkpOw0KPiAgCW1lbXNldChwcml2LCAwLCBzaXplb2YoKnByaXYpKTsNCj4gIH0NCj4gDQo+IEBA IC02NDUsNiArNjQ4LDEwIEBAIG1seDVfdWFyX2luaXRfc2Vjb25kYXJ5KHN0cnVjdCBydGVfZXRo X2RldiAqZGV2KQ0KPiAgICogICBWZXJicyBkZXZpY2UgYXR0cmlidXRlcy4NCj4gICAqIEBwYXJh bSBwb3J0DQo+ICAgKiAgIFZlcmJzIHBvcnQgdG8gdXNlIChpbmRleGVkIGZyb20gMSkuDQo+ICsg KiBAcGFyYW0gbWFzdGVyDQo+ICsgKiAgIE1hc3RlciBkZXZpY2UgaW4gY2FzZSBAcCBpYnZfZGV2 IGlzIGEgcG9ydCByZXByZXNlbnRvci4NCj4gKyAqIEBwYXJhbSByZXBfaWQNCj4gKyAqICAgUmVw cmVzZW50b3IgaWRlbnRpZmllciB3aGVuIEBwIG1hc3RlciBpcyBub24tTlVMTC4NCj4gICAqDQo+ ICAgKiBAcmV0dXJuDQo+ICAgKiAgIEEgdmFsaWQgRXRoZXJuZXQgZGV2aWNlIG9iamVjdCBvbiBz dWNjZXNzLCBOVUxMIG90aGVyd2lzZSBhbmQgcnRlX2Vycm5vDQo+IEBAIC02NTUsNyArNjYyLDkg QEAgbWx4NV9kZXZfc3Bhd25fb25lKHN0cnVjdCBydGVfZGV2aWNlICpkcGRrX2RldiwNCj4gIAkJ ICAgc3RydWN0IGlidl9kZXZpY2UgKmlidl9kZXYsDQo+ICAJCSAgIGludCB2ZiwNCj4gIAkJICAg Y29uc3Qgc3RydWN0IGlidl9kZXZpY2VfYXR0cl9leCAqYXR0ciwNCj4gLQkJICAgdW5zaWduZWQg aW50IHBvcnQpDQo+ICsJCSAgIHVuc2lnbmVkIGludCBwb3J0LA0KPiArCQkgICBzdHJ1Y3QgcnRl X2V0aF9kZXYgKm1hc3RlciwNCj4gKwkJICAgdW5zaWduZWQgaW50IHJlcF9pZCkNCj4gIHsNCj4g IAlzdHJ1Y3QgaWJ2X2NvbnRleHQgKmN0eDsNCj4gIAlzdHJ1Y3QgaWJ2X3BvcnRfYXR0ciBwb3J0 X2F0dHI7DQo+IEBAIC03OTksMTEgKzgwOCwxNCBAQCBtbHg1X2Rldl9zcGF3bl9vbmUoc3RydWN0 IHJ0ZV9kZXZpY2UgKmRwZGtfZGV2LA0KPiAgCQkiIG9sZCBPRkVEL3JkbWEtY29yZSB2ZXJzaW9u IG9yIGZpcm13YXJlIGNvbmZpZ3VyYXRpb24iKTsgICNlbmRpZg0KPiAgCWNvbmZpZy5tcGxzX2Vu ID0gbXBsc19lbjsNCj4gLQlpZiAoYXR0ci0+b3JpZ19hdHRyLnBoeXNfcG9ydF9jbnQgPiAxKQ0K PiAtCQlzbnByaW50ZihuYW1lLCBzaXplb2YobmFtZSksICIlcyIsIGRwZGtfZGV2LT5uYW1lKTsN Cj4gKwlpZiAoIW1hc3RlcikNCj4gKwkJc25wcmludGYobmFtZSwgc2l6ZW9mKG5hbWUpLCAibmV0 XyVzXzAiLCBkcGRrX2Rldi0+bmFtZSk7DQo+ICAJZWxzZQ0KPiAtCQlzbnByaW50ZihuYW1lLCBz aXplb2YobmFtZSksICIlcyBwb3J0ICV1IiwNCj4gLQkJCSBkcGRrX2Rldi0+bmFtZSwgcG9ydCk7 DQo+ICsJCXNucHJpbnRmKG5hbWUsIHNpemVvZihuYW1lKSwgIm5ldF8lc19yZXByZXNlbnRvcl8l dSIsDQo+ICsJCQkgZHBka19kZXYtPm5hbWUsIHJlcF9pZCk7DQo+ICsJaWYgKGF0dHItPm9yaWdf YXR0ci5waHlzX3BvcnRfY250ID4gMSkNCj4gKwkJc25wcmludGYobmFtZSwgc2l6ZW9mKG5hbWUp LCAiJXNfcG9ydF8ldSIsIG5hbWUsIHBvcnQpOw0KPiArCURSVl9MT0coREVCVUcsICJuYW1pbmcg RXRoZXJuZXQgZGV2aWNlIFwiJXNcIiIsIG5hbWUpOw0KPiAgCWlmIChydGVfZWFsX3Byb2Nlc3Nf dHlwZSgpID09IFJURV9QUk9DX1NFQ09OREFSWSkgew0KPiAgCQlldGhfZGV2ID0gcnRlX2V0aF9k ZXZfYXR0YWNoX3NlY29uZGFyeShuYW1lKTsNCj4gIAkJaWYgKGV0aF9kZXYgPT0gTlVMTCkgew0K PiBAQCAtODgwLDYgKzg5MiwyNyBAQCBtbHg1X2Rldl9zcGF3bl9vbmUoc3RydWN0IHJ0ZV9kZXZp Y2UgKmRwZGtfZGV2LA0KPiAgCXByaXYtPnBvcnQgPSBwb3J0Ow0KPiAgCXByaXYtPnBkID0gcGQ7 DQo+ICAJcHJpdi0+bXR1ID0gRVRIRVJfTVRVOw0KPiArCS8qDQo+ICsJICogQWxsb2NhdGUgYSBz d2l0Y2ggZG9tYWluIGZvciBtYXN0ZXIgZGV2aWNlcyBhbmQgc2hhcmUgaXQgd2l0aA0KPiArCSAq IHBvcnQgcmVwcmVzZW50b3JzLg0KPiArCSAqLw0KPiArCWlmICghbWFzdGVyKSB7DQo+ICsJCXBy aXYtPnJlcHJlc2VudG9yID0gMDsNCj4gKwkJcHJpdi0+ZG9tYWluX2lkID0gUlRFX0VUSF9ERVZf U1dJVENIX0RPTUFJTl9JRF9JTlZBTElEOw0KPiArCQlwcml2LT5yZXBfaWQgPSAwOw0KPiArCQll cnIgPSBydGVfZXRoX3N3aXRjaF9kb21haW5fYWxsb2MoJnByaXYtPmRvbWFpbl9pZCk7DQoNClNv IGRvbWFpbl9pZCBpcyB1c2VkIHRvIGlkZW50aWZ5IHJlbGF0aW9uIGJldHdlZW4gUEYgYW5kIHJl cHJlc2VudG9yIHBvcnQ/DQoNCj4gKwkJaWYgKGVycikgew0KPiArCQkJZXJyID0gcnRlX2Vycm5v Ow0KPiArCQkJRFJWX0xPRyhFUlIsICJ1bmFibGUgdG8gYWxsb2NhdGUgc3dpdGNoIGRvbWFpbjog JXMiLA0KPiArCQkJCXN0cmVycm9yKHJ0ZV9lcnJubykpOw0KPiArCQkJZ290byBlcnJvcjsNCj4g KwkJfQ0KPiArCX0gZWxzZSB7DQo+ICsJCXByaXYtPnJlcHJlc2VudG9yID0gMTsNCj4gKwkJcHJp di0+ZG9tYWluX2lkID0NCj4gKwkJCSgoc3RydWN0IHByaXYgKiltYXN0ZXItPmRhdGEtPmRldl9w cml2YXRlKS0+ZG9tYWluX2lkOw0KPiArCQlwcml2LT5yZXBfaWQgPSByZXBfaWQ7DQo+ICsJfQ0K PiAgCWVyciA9IG1seDVfYXJncygmY29uZmlnLCBkcGRrX2Rldi0+ZGV2YXJncyk7DQo+ICAJaWYg KGVycikgew0KPiAgCQllcnIgPSBydGVfZXJybm87DQo+IEBAIC0xMDY3LDggKzExMDAsMTIgQEAg bWx4NV9kZXZfc3Bhd25fb25lKHN0cnVjdCBydGVfZGV2aWNlICpkcGRrX2RldiwNCj4gIAlydGVf cndsb2NrX3dyaXRlX3VubG9jaygmbWx4NV9zaGFyZWRfZGF0YS0+bWVtX2V2ZW50X3J3bG9jayk7 DQo+ICAJcmV0dXJuIGV0aF9kZXY7DQo+ICBlcnJvcjoNCj4gLQlpZiAocHJpdikNCj4gKwlpZiAo cHJpdikgew0KPiArCQlpZiAoIXByaXYtPnJlcHJlc2VudG9yICYmDQo+ICsJCSAgICBwcml2LT5k b21haW5faWQgIT0gUlRFX0VUSF9ERVZfU1dJVENIX0RPTUFJTl9JRF9JTlZBTElEKQ0KPiArCQkJ Y2xhaW1femVybyhydGVfZXRoX3N3aXRjaF9kb21haW5fZnJlZShwcml2LT5kb21haW5faWQpKTsN Cj4gIAkJcnRlX2ZyZWUocHJpdik7DQo+ICsJfQ0KPiAgCWlmIChwZCkNCj4gIAkJY2xhaW1femVy byhtbHg1X2dsdWUtPmRlYWxsb2NfcGQocGQpKTsNCj4gIAlpZiAoZXRoX2RldikNCj4gQEAgLTEw ODEsMTIgKzExMTgsMTQgQEAgbWx4NV9kZXZfc3Bhd25fb25lKHN0cnVjdCBydGVfZGV2aWNlICpk cGRrX2RldiwgIH0NCj4gDQo+ICAvKioNCj4gLSAqIFNwYXduIEV0aGVybmV0IGRldmljZXMgZnJv bSBWZXJicyBpbmZvcm1hdGlvbiwgb25lIHBlciBkZXRlY3RlZCBwb3J0Lg0KPiArICogU3Bhd24g RXRoZXJuZXQgZGV2aWNlcyBmcm9tIFZlcmJzIGluZm9ybWF0aW9uLCBvbmUgcGVyIGRldGVjdGVk IHBvcnQNCj4gKyBhbmQNCj4gKyAqIHBvcnQgcmVwcmVzZW50b3IuDQo+ICAgKg0KPiAgICogQHBh cmFtIGRwZGtfZGV2DQo+ICAgKiAgIEJhY2tpbmcgRFBESyBkZXZpY2UuDQo+ICAgKiBAcGFyYW0g aWJ2X2Rldg0KPiAtICogICBWZXJicyBkZXZpY2UuDQo+ICsgKiAgIE5VTEwtdGVybWluYXRlZCBs aXN0IG9mIFZlcmJzIGRldmljZXMuIEZpcnN0IGVudHJ5IGlzIHRoZSBtYXN0ZXIgZGV2aWNlDQo+ ICsgKiAgIChtYW5kYXRvcnkpLCBmb2xsb3dlZCBieSBvcHRpb25hbCByZXByZXNlbnRvcnMuDQo+ ICAgKiBAcGFyYW0gdmYNCj4gICAqICAgSWYgbm9uemVybywgZW5hYmxlIFZGLXNwZWNpZmljIGZl YXR1cmVzLg0KPiAgICoNCj4gQEAgLTEwOTcsMTcgKzExMzYsMjEgQEAgbWx4NV9kZXZfc3Bhd25f b25lKHN0cnVjdCBydGVfZGV2aWNlICpkcGRrX2RldiwNCj4gICAqLw0KPiAgc3RhdGljIHN0cnVj dCBydGVfZXRoX2RldiAqKg0KPiAgbWx4NV9kZXZfc3Bhd24oc3RydWN0IHJ0ZV9kZXZpY2UgKmRw ZGtfZGV2LA0KPiAtCSAgICAgICBzdHJ1Y3QgaWJ2X2RldmljZSAqaWJ2X2RldiwNCj4gKwkgICAg ICAgc3RydWN0IGlidl9kZXZpY2UgKippYnZfZGV2LA0KPiAgCSAgICAgICBpbnQgdmYpDQo+ICB7 DQo+ICAJc3RydWN0IHJ0ZV9ldGhfZGV2ICoqZXRoX2xpc3QgPSBOVUxMOw0KPiAgCXN0cnVjdCBp YnZfY29udGV4dCAqY3R4Ow0KPiAgCXN0cnVjdCBpYnZfZGV2aWNlX2F0dHJfZXggYXR0cjsNCj4g Kwl2b2lkICp0bXA7DQo+ICAJdW5zaWduZWQgaW50IGk7DQo+ICsJdW5zaWduZWQgaW50IGogPSAw Ow0KPiArCXVuc2lnbmVkIGludCBuID0gMDsNCj4gIAlpbnQgcmV0Ow0KPiANCj4gK25leHQ6DQo+ ICAJZXJybm8gPSAwOw0KPiAtCWN0eCA9IG1seDVfZ2x1ZS0+b3Blbl9kZXZpY2UoaWJ2X2Rldik7 DQo+ICsJY3R4ID0gbWx4NV9nbHVlLT5vcGVuX2RldmljZShpYnZfZGV2W2pdKTsNCj4gIAlpZiAo IWN0eCkgew0KPiAgCQlydGVfZXJybm8gPSBlcnJubyA/IGVycm5vIDogRU5PREVWOw0KPiAgCQlp ZiAocnRlX2Vycm5vID09IEVOT0RFVikNCj4gQEAgLTExMTYsNyArMTE1OSw3IEBAIG1seDVfZGV2 X3NwYXduKHN0cnVjdCBydGVfZGV2aWNlICpkcGRrX2RldiwNCj4gIAkJZWxzZQ0KPiAgCQkJRFJW X0xPRyhFUlIsDQo+ICAJCQkJImNhbm5vdCB1c2UgZGV2aWNlLCBhcmUgZHJpdmVycyB1cCB0byBk YXRlPyIpOw0KPiAtCQlyZXR1cm4gTlVMTDsNCj4gKwkJZ290byBlcnJvcjsNCj4gIAl9DQo+ICAJ cmV0ID0gbWx4NV9nbHVlLT5xdWVyeV9kZXZpY2VfZXgoY3R4LCBOVUxMLCAmYXR0cik7DQo+ICAJ bWx4NV9nbHVlLT5jbG9zZV9kZXZpY2UoY3R4KTsNCj4gQEAgLTExMjQsMzQgKzExNjcsNDIgQEAg bWx4NV9kZXZfc3Bhd24oc3RydWN0IHJ0ZV9kZXZpY2UgKmRwZGtfZGV2LA0KPiAgCQlydGVfZXJy bm8gPSByZXQ7DQo+ICAJCURSVl9MT0coRVJSLCAidW5hYmxlIHRvIHF1ZXJ5IGRldmljZSBpbmZv cm1hdGlvbjogJXMiLA0KPiAgCQkJc3RyZXJyb3IocnRlX2Vycm5vKSk7DQo+IC0JCXJldHVybiBO VUxMOw0KPiArCQlnb3RvIGVycm9yOw0KPiAgCX0NCj4gLQlEUlZfTE9HKElORk8sICIldSBwb3J0 KHMpIGRldGVjdGVkIiwgYXR0ci5vcmlnX2F0dHIucGh5c19wb3J0X2NudCk7DQo+IC0JZXRoX2xp c3QgPSBtYWxsb2Moc2l6ZW9mKCpldGhfbGlzdCkgKg0KPiAtCQkJICAoYXR0ci5vcmlnX2F0dHIu cGh5c19wb3J0X2NudCArIDEpKTsNCj4gLQlpZiAoIWV0aF9saXN0KSB7DQo+ICsJRFJWX0xPRyhJ TkZPLCAiJXUgcG9ydChzKSBkZXRlY3RlZCBvbiBcIiVzXCIiLA0KPiArCQlhdHRyLm9yaWdfYXR0 ci5waHlzX3BvcnRfY250LCBpYnZfZGV2W2pdLT5uYW1lKTsNCj4gKwl0bXAgPSByZWFsbG9jKGV0 aF9saXN0LCBzaXplb2YoKmV0aF9saXN0KSAqDQo+ICsJCSAgICAgIChuICsgYXR0ci5vcmlnX2F0 dHIucGh5c19wb3J0X2NudCArIDEpKTsNCj4gKwlpZiAoIXRtcCkgew0KPiAgCQlydGVfZXJybm8g PSBlcnJubzsNCj4gLQkJcmV0dXJuIE5VTEw7DQo+ICsJCWdvdG8gZXJyb3I7DQo+ICAJfQ0KPiAr CWV0aF9saXN0ID0gdG1wOw0KPiAgCWZvciAoaSA9IDA7IGkgPCBhdHRyLm9yaWdfYXR0ci5waHlz X3BvcnRfY250OyArK2kpIHsNCg0KSXMgdGhlcmUgYW55IG1seDUgZGV2aWNlIHRoYXQgc3VwcG9y dCBtb3JlIHRoYW4gcGh5c2ljYWwgcG9ydHMgb24gc2FtZSBQQ0kgaWQ/DQpJIHJlbWVtYmVyIHRo aXMgaXMgbWFqb3IgZGlmZmVyZW5jZSBiZXR3ZWVuIG1seDUgYW5kIG1seDQuDQoNCj4gLQkJZXRo X2xpc3RbaV0gPSBtbHg1X2Rldl9zcGF3bl9vbmUoZHBka19kZXYsIGlidl9kZXYsIHZmLA0KPiAt CQkJCQkJICZhdHRyLCBpICsgMSk7DQo+IC0JCWlmIChldGhfbGlzdFtpXSkNCj4gLQkJCWNvbnRp bnVlOw0KPiAtCQkvKiBTYXZlIHJ0ZV9lcnJubyBhbmQgcm9sbCBiYWNrIGluIGNhc2Ugb2YgZmFp bHVyZS4gKi8NCj4gLQkJcmV0ID0gcnRlX2Vycm5vOw0KPiAtCQl3aGlsZSAoaS0tKSB7DQo+IC0J CQltbHg1X2Rldl9jbG9zZShldGhfbGlzdFtpXSk7DQo+IC0JCQlpZiAocnRlX2VhbF9wcm9jZXNz X3R5cGUoKSA9PSBSVEVfUFJPQ19QUklNQVJZKQ0KPiAtCQkJCXJ0ZV9mcmVlKGV0aF9saXN0W2ld LT5kYXRhLT5kZXZfcHJpdmF0ZSk7DQo+IC0JCQljbGFpbV96ZXJvKHJ0ZV9ldGhfZGV2X3JlbGVh c2VfcG9ydChldGhfbGlzdFtpXSkpOw0KPiAtCQl9DQo+IC0JCWZyZWUoZXRoX2xpc3QpOw0KPiAt CQlydGVfZXJybm8gPSByZXQ7DQo+IC0JCXJldHVybiBOVUxMOw0KPiArCQlldGhfbGlzdFtuXSA9 IG1seDVfZGV2X3NwYXduX29uZShkcGRrX2RldiwgaWJ2X2RldltqXSwgdmYsDQo+ICsJCQkJCQkg JmF0dHIsIGkgKyAxLA0KPiArCQkJCQkJIGogPyBldGhfbGlzdFswXSA6IE5VTEwsDQo+ICsJCQkJ CQkgaiAtIDEpOw0KPiArCQlpZiAoIWV0aF9saXN0W25dKQ0KPiArCQkJZ290byBlcnJvcjsNCj4g KwkJKytuOw0KPiAgCX0NCj4gLQlldGhfbGlzdFtpXSA9IE5VTEw7DQo+ICsJaWYgKGlidl9kZXZb KytqXSkNCj4gKwkJZ290byBuZXh0Ow0KPiArCWV0aF9saXN0W25dID0gTlVMTDsNCj4gIAlyZXR1 cm4gZXRoX2xpc3Q7DQo+ICtlcnJvcjoNCj4gKwkvKiBTYXZlIHJ0ZV9lcnJubyBhbmQgcm9sbCBi YWNrIGluIGNhc2Ugb2YgZmFpbHVyZS4gKi8NCj4gKwlyZXQgPSBydGVfZXJybm87DQo+ICsJd2hp bGUgKG4tLSkgew0KPiArCQltbHg1X2Rldl9jbG9zZShldGhfbGlzdFtuXSk7DQo+ICsJCWlmIChy dGVfZWFsX3Byb2Nlc3NfdHlwZSgpID09IFJURV9QUk9DX1BSSU1BUlkpDQo+ICsJCQlydGVfZnJl ZShldGhfbGlzdFtuXS0+ZGF0YS0+ZGV2X3ByaXZhdGUpOw0KPiArCQljbGFpbV96ZXJvKHJ0ZV9l dGhfZGV2X3JlbGVhc2VfcG9ydChldGhfbGlzdFtuXSkpOw0KPiArCX0NCj4gKwlmcmVlKGV0aF9s aXN0KTsNCj4gKwlydGVfZXJybm8gPSByZXQ7DQo+ICsJcmV0dXJuIE5VTEw7DQo+ICB9DQo+IA0K PiAgLyoqDQo+IEBAIC0xMjY0LDcgKzEzMTUsNyBAQCBtbHg1X3BjaV9wcm9iZShzdHJ1Y3QgcnRl X3BjaV9kcml2ZXIgKnBjaV9kcnYgX19ydGVfdW51c2VkLA0KPiAgCQkJCWlidl9tYXRjaFtyZXRd LT5uYW1lLCByZXQgLSAxKTsNCj4gIAl9DQo+ICAJaWYgKG4pDQo+IC0JCWV0aF9saXN0ID0gbWx4 NV9kZXZfc3Bhd24oJnBjaV9kZXYtPmRldmljZSwgaWJ2X21hdGNoWzBdLCB2Zik7DQo+ICsJCWV0 aF9saXN0ID0gbWx4NV9kZXZfc3Bhd24oJnBjaV9kZXYtPmRldmljZSwgaWJ2X21hdGNoLCB2Zik7 DQo+ICAJbWx4NV9nbHVlLT5mcmVlX2RldmljZV9saXN0KGlidl9saXN0KTsNCj4gIAlpZiAoIWV0 aF9saXN0IHx8ICEqZXRoX2xpc3QpIHsNCj4gIAkJRFJWX0xPRyhXQVJOSU5HLA0KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvbWx4NS9tbHg1LmggYi9kcml2ZXJzL25ldC9tbHg1L21seDUuaCBp bmRleCA5OTdiMDRhMzMuLmIzOGNiMzdhOSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvbWx4 NS9tbHg1LmgNCj4gKysrIGIvZHJpdmVycy9uZXQvbWx4NS9tbHg1LmgNCj4gQEAgLTE2MSw2ICsx NjEsOSBAQCBzdHJ1Y3QgcHJpdiB7DQo+ICAJdWludDE2X3QgbXR1OyAvKiBDb25maWd1cmVkIE1U VS4gKi8NCj4gIAl1aW50OF90IHBvcnQ7IC8qIFBoeXNpY2FsIHBvcnQgbnVtYmVyLiAqLw0KPiAg CXVuc2lnbmVkIGludCBpc29sYXRlZDoxOyAvKiBXaGV0aGVyIGlzb2xhdGVkIG1vZGUgaXMgZW5h YmxlZC4gKi8NCj4gKwl1bnNpZ25lZCBpbnQgcmVwcmVzZW50b3I6MTsgLyogRGV2aWNlIGlzIGEg cG9ydCByZXByZXNlbnRvci4gKi8NCj4gKwl1aW50MTZfdCBkb21haW5faWQ7IC8qIFN3aXRjaCBk b21haW4gaWRlbnRpZmllci4gKi8NCj4gKwl1bnNpZ25lZCBpbnQgcmVwX2lkOyAvKiBQb3J0IHJl cHJlc2VudG9yIGlkZW50aWZpZXIuICovDQo+ICAJLyogUlgvVFggcXVldWVzLiAqLw0KPiAgCXVu c2lnbmVkIGludCByeHFzX247IC8qIFJYIHF1ZXVlcyBhcnJheSBzaXplLiAqLw0KPiAgCXVuc2ln bmVkIGludCB0eHFzX247IC8qIFRYIHF1ZXVlcyBhcnJheSBzaXplLiAqLyBAQCAtMjA5LDkgKzIx MiwxMiBAQCBpbnQgbWx4NV9nZXRlbnZfaW50KGNvbnN0DQo+IGNoYXIgKik7DQo+IA0KPiAgLyog bWx4NV9ldGhkZXYuYyAqLw0KPiANCj4gK2ludCBtbHg1X2dldF9tYXN0ZXJfaWZuYW1lKGNvbnN0 IHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KPiArCQkJICAgY2hhciAoKmlmbmFtZSlbSUZfTkFN RVNJWkVdKTsNCj4gIGludCBtbHg1X2dldF9pZm5hbWUoY29uc3Qgc3RydWN0IHJ0ZV9ldGhfZGV2 ICpkZXYsIGNoYXIgKCppZm5hbWUpW0lGX05BTUVTSVpFXSk7ICBpbnQNCj4gbWx4NV9pZmluZGV4 KGNvbnN0IHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KTsgLWludCBtbHg1X2lmcmVxKGNvbnN0IHN0 cnVjdCBydGVfZXRoX2RldiAqZGV2LCBpbnQgcmVxLA0KPiBzdHJ1Y3QgaWZyZXEgKmlmcik7DQo+ ICtpbnQgbWx4NV9pZnJlcShjb25zdCBzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgaW50IHJlcSwg c3RydWN0IGlmcmVxICppZnIsDQo+ICsJICAgICAgIGludCBtYXN0ZXIpOw0KPiAgaW50IG1seDVf Z2V0X210dShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgKm10dSk7ICBpbnQgbWx4 NV9zZXRfZmxhZ3Moc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+IHVuc2lnbmVkIGludCBrZWVw LA0KPiAgCQkgICB1bnNpZ25lZCBpbnQgZmxhZ3MpOw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvbWx4NS9tbHg1X2V0aGRldi5jIGIvZHJpdmVycy9uZXQvbWx4NS9tbHg1X2V0aGRldi5jIGlu ZGV4DQo+IGY2Y2ViYWU0MS4uMzYxYjdlZTRjIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC9t bHg1L21seDVfZXRoZGV2LmMNCj4gKysrIGIvZHJpdmVycy9uZXQvbWx4NS9tbHg1X2V0aGRldi5j DQo+IEBAIC05Myw3ICs5Myw3IEBAIHN0cnVjdCBldGh0b29sX2xpbmtfc2V0dGluZ3MgeyAgI2Vu ZGlmDQo+IA0KPiAgLyoqDQo+IC0gKiBHZXQgaW50ZXJmYWNlIG5hbWUgZnJvbSBwcml2YXRlIHN0 cnVjdHVyZS4NCj4gKyAqIEdldCBtYXN0ZXIgaW50ZXJmYWNlIG5hbWUgZnJvbSBwcml2YXRlIHN0 cnVjdHVyZS4NCj4gICAqDQo+ICAgKiBAcGFyYW1baW5dIGRldg0KPiAgICogICBQb2ludGVyIHRv IEV0aGVybmV0IGRldmljZS4NCj4gQEAgLTEwNCw3ICsxMDQsOCBAQCBzdHJ1Y3QgZXRodG9vbF9s aW5rX3NldHRpbmdzIHsNCj4gICAqICAgMCBvbiBzdWNjZXNzLCBhIG5lZ2F0aXZlIGVycm5vIHZh bHVlIG90aGVyd2lzZSBhbmQgcnRlX2Vycm5vIGlzIHNldC4NCj4gICAqLw0KPiAgaW50DQo+IC1t bHg1X2dldF9pZm5hbWUoY29uc3Qgc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIGNoYXIgKCppZm5h bWUpW0lGX05BTUVTSVpFXSkNCj4gK21seDVfZ2V0X21hc3Rlcl9pZm5hbWUoY29uc3Qgc3RydWN0 IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+ICsJCSAgICAgICBjaGFyICgqaWZuYW1lKVtJRl9OQU1FU0la RV0pDQo+ICB7DQo+ICAJc3RydWN0IHByaXYgKnByaXYgPSBkZXYtPmRhdGEtPmRldl9wcml2YXRl Ow0KPiAgCURJUiAqZGlyOw0KPiBAQCAtMTc5LDYgKzE4MCwxMTMgQEAgbWx4NV9nZXRfaWZuYW1l KGNvbnN0IHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCBjaGFyICgqaWZuYW1lKVtJRl9OQU1FU0la RV0pICB9DQo+IA0KPiAgLyoqDQo+ICsgKiBHZXQgaW50ZXJmYWNlIG5hbWUgZnJvbSBwcml2YXRl IHN0cnVjdHVyZS4NCj4gKyAqDQo+ICsgKiBUaGlzIGlzIGEgcG9ydCByZXByZXNlbnRvci1hd2Fy ZSB2ZXJzaW9uIG9mIG1seDVfZ2V0X21hc3Rlcl9pZm5hbWUoKS4NCj4gKyAqDQo+ICsgKiBAcGFy YW1baW5dIGRldg0KPiArICogICBQb2ludGVyIHRvIEV0aGVybmV0IGRldmljZS4NCj4gKyAqIEBw YXJhbVtvdXRdIGlmbmFtZQ0KPiArICogICBJbnRlcmZhY2UgbmFtZSBvdXRwdXQgYnVmZmVyLg0K PiArICoNCj4gKyAqIEByZXR1cm4NCj4gKyAqICAgMCBvbiBzdWNjZXNzLCBhIG5lZ2F0aXZlIGVy cm5vIHZhbHVlIG90aGVyd2lzZSBhbmQgcnRlX2Vycm5vIGlzIHNldC4NCj4gKyAqLw0KPiAraW50 DQo+ICttbHg1X2dldF9pZm5hbWUoY29uc3Qgc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIGNoYXIN Cj4gKygqaWZuYW1lKVtJRl9OQU1FU0laRV0pIHsNCj4gKwlzdHJ1Y3QgcHJpdiAqcHJpdiA9IGRl di0+ZGF0YS0+ZGV2X3ByaXZhdGU7DQo+ICsJaW50IHJldDsNCj4gKwljaGFyIG1hc3RlcltJRl9O QU1FU0laRV07DQo+ICsJRklMRSAqZmlsZTsNCj4gKwlESVIgKmRpcjsNCj4gKwl1aW50NjRfdCBw aHlzX3N3aXRjaF9pZDsNCj4gKw0KPiArCWlmICghcHJpdi0+cmVwcmVzZW50b3IpDQo+ICsJCXJl dHVybiBtbHg1X2dldF9tYXN0ZXJfaWZuYW1lKGRldiwgaWZuYW1lKTsNCj4gKwlyZXQgPSBtbHg1 X2dldF9tYXN0ZXJfaWZuYW1lKGRldiwgJm1hc3Rlcik7DQo+ICsJaWYgKHJldCkNCj4gKwkJcmV0 dXJuIHJldDsNCj4gKwl7DQo+ICsJCU1LU1RSKHBhdGgsICIlcy9kZXZpY2UvbmV0LyVzL3BoeXNf c3dpdGNoX2lkIiwNCj4gKwkJICAgICAgcHJpdi0+aWJkZXZfcGF0aCwgbWFzdGVyKTsNCj4gKw0K PiArCQlmaWxlID0gZm9wZW4ocGF0aCwgInJiIik7DQo+ICsJfQ0KPiArCWlmICghZmlsZSkgew0K PiArCQlydGVfZXJybm8gPSBlcnJubzsNCj4gKwkJcmV0dXJuIC1ydGVfZXJybm87DQo+ICsJfQ0K PiArCXJldCA9IGZzY2FuZihmaWxlLCAiJSIgU0NOeDY0LCAmcGh5c19zd2l0Y2hfaWQpOw0KPiAr CWZjbG9zZShmaWxlKTsNCj4gKwlpZiAocmV0ICE9IDEpIHsNCj4gKwkJcnRlX2Vycm5vID0gRUlO VkFMOw0KPiArCQlyZXR1cm4gLXJ0ZV9lcnJubzsNCj4gKwl9DQo+ICsJew0KPiArCQlNS1NUUihw YXRoLCAiJXMvZGV2aWNlL25ldC8lcy9zdWJzeXN0ZW0iLA0KPiArCQkgICAgICBwcml2LT5pYmRl dl9wYXRoLCBtYXN0ZXIpOw0KPiArDQo+ICsJCWRpciA9IG9wZW5kaXIocGF0aCk7DQo+ICsJfQ0K PiArCWlmICghZGlyKSB7DQo+ICsJCXJ0ZV9lcnJubyA9IGVycm5vOw0KPiArCQlyZXR1cm4gLXJ0 ZV9lcnJubzsNCj4gKwl9DQo+ICsJLyoNCj4gKwkgKiBTY2FuIG5ldHdvcmsgaW50ZXJmYWNlcyB0 byBmaW5kIG9uZSB3aXRoIG1hdGNoaW5nIHBoeXNfc3dpdGNoX2lkDQo+ICsJICogYW5kIHBoeXNf c3dpdGNoX25hbWUuDQo+ICsJICovDQo+ICsJZG8gew0KPiArCQlzdHJ1Y3QgZGlyZW50ICpkZW50 Ow0KPiArCQl1aW50NjRfdCBwaHlzX3N3aXRjaF9pZF9yZXA7DQo+ICsJCWludCByZXBfaWQ7DQo+ ICsNCj4gKwkJcmV0ID0gLUVOT0VOVDsNCj4gKwkJZGVudCA9IHJlYWRkaXIoZGlyKTsNCj4gKwkJ aWYgKCFkZW50KQ0KPiArCQkJYnJlYWs7DQo+ICsJCXsNCj4gKwkJCU1LU1RSKHBhdGgsDQo+ICsJ CQkgICAgICAiJXMvZGV2aWNlL25ldC8lcy9zdWJzeXN0ZW0vJXMvcGh5c19zd2l0Y2hfaWQiLA0K PiArCQkJICAgICAgcHJpdi0+aWJkZXZfcGF0aCwgbWFzdGVyLCBkZW50LT5kX25hbWUpOw0KPiAr DQo+ICsJCQlmaWxlID0gZm9wZW4ocGF0aCwgInJiIik7DQo+ICsJCX0NCj4gKwkJaWYgKCFmaWxl KQ0KPiArCQkJY29udGludWU7DQo+ICsJCXJldCA9IGZzY2FuZihmaWxlLCAiJSIgU0NOeDY0LCAm cGh5c19zd2l0Y2hfaWRfcmVwKTsNCj4gKwkJZmNsb3NlKGZpbGUpOw0KPiArCQlpZiAocmV0ICE9 IDEpDQo+ICsJCQljb250aW51ZTsNCj4gKwkJaWYgKHBoeXNfc3dpdGNoX2lkX3JlcCAhPSBwaHlz X3N3aXRjaF9pZCkNCj4gKwkJCWNvbnRpbnVlOw0KPiArCQl7DQo+ICsJCQlNS1NUUihwYXRoLA0K PiArCQkJICAgICAgIiVzL2RldmljZS9uZXQvJXMvc3Vic3lzdGVtLyVzL3BoeXNfcG9ydF9uYW1l IiwNCj4gKwkJCSAgICAgIHByaXYtPmliZGV2X3BhdGgsIG1hc3RlciwgZGVudC0+ZF9uYW1lKTsN Cj4gKw0KPiArCQkJZmlsZSA9IGZvcGVuKHBhdGgsICJyYiIpOw0KPiArCQl9DQo+ICsJCWlmICgh ZmlsZSkNCj4gKwkJCWNvbnRpbnVlOw0KPiArCQlyZXQgPSBmc2NhbmYoZmlsZSwgIiVkIiwgJnJl cF9pZCk7DQo+ICsJCWZjbG9zZShmaWxlKTsNCj4gKwkJaWYgKHJldCAhPSAxKQ0KPiArCQkJY29u dGludWU7DQo+ICsJCWlmIChyZXBfaWQgPCAwIHx8ICh1bnNpZ25lZCBpbnQpcmVwX2lkICE9IHBy aXYtPnJlcF9pZCkNCj4gKwkJCWNvbnRpbnVlOw0KPiArCQlzdHJsY3B5KCppZm5hbWUsIGRlbnQt PmRfbmFtZSwgc2l6ZW9mKCppZm5hbWUpKTsNCj4gKwkJcmV0ID0gMDsNCj4gKwkJYnJlYWs7DQo+ ICsJfSB3aGlsZSAoMSk7DQo+ICsJY2xvc2VkaXIoZGlyKTsNCj4gKwlpZiAocmV0KQ0KPiArCQly dGVfZXJybm8gPSAtcmV0Ow0KPiArCXJldHVybiByZXQ7DQo+ICt9DQo+ICsNCj4gKy8qKg0KPiAg ICogR2V0IHRoZSBpbnRlcmZhY2UgaW5kZXggZnJvbSBkZXZpY2UgbmFtZS4NCj4gICAqDQo+ICAg KiBAcGFyYW1baW5dIGRldg0KPiBAQCAtMjE0LDEyICszMjIsMTYgQEAgbWx4NV9pZmluZGV4KGNv bnN0IHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KQ0KPiAgICogICBSZXF1ZXN0IG51bWJlciB0byBw YXNzIHRvIGlvY3RsKCkuDQo+ICAgKiBAcGFyYW1bb3V0XSBpZnINCj4gICAqICAgSW50ZXJmYWNl IHJlcXVlc3Qgc3RydWN0dXJlIG91dHB1dCBidWZmZXIuDQo+ICsgKiBAcGFyYW0gbWFzdGVyDQo+ ICsgKiAgIFdoZW4gZGV2aWNlIGlzIGEgcG9ydCByZXByZXNlbnRvciwgcGVyZm9ybSByZXF1ZXN0 IG9uIG1hc3RlciBkZXZpY2UNCj4gKyAqICAgaW5zdGVhZC4NCj4gICAqDQo+ICAgKiBAcmV0dXJu DQo+ICAgKiAgIDAgb24gc3VjY2VzcywgYSBuZWdhdGl2ZSBlcnJubyB2YWx1ZSBvdGhlcndpc2Ug YW5kIHJ0ZV9lcnJubyBpcyBzZXQuDQo+ICAgKi8NCj4gIGludA0KPiAtbWx4NV9pZnJlcShjb25z dCBzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgaW50IHJlcSwgc3RydWN0IGlmcmVxICppZnIpDQo+ ICttbHg1X2lmcmVxKGNvbnN0IHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCBpbnQgcmVxLCBzdHJ1 Y3QgaWZyZXEgKmlmciwNCj4gKwkgICBpbnQgbWFzdGVyKQ0KPiAgew0KPiAgCWludCBzb2NrID0g c29ja2V0KFBGX0lORVQsIFNPQ0tfREdSQU0sIElQUFJPVE9fSVApOw0KPiAgCWludCByZXQgPSAw Ow0KPiBAQCAtMjI4LDcgKzM0MCwxMCBAQCBtbHg1X2lmcmVxKGNvbnN0IHN0cnVjdCBydGVfZXRo X2RldiAqZGV2LCBpbnQgcmVxLCBzdHJ1Y3QgaWZyZXEgKmlmcikNCj4gIAkJcnRlX2Vycm5vID0g ZXJybm87DQo+ICAJCXJldHVybiAtcnRlX2Vycm5vOw0KPiAgCX0NCj4gLQlyZXQgPSBtbHg1X2dl dF9pZm5hbWUoZGV2LCAmaWZyLT5pZnJfbmFtZSk7DQo+ICsJaWYgKG1hc3RlcikNCj4gKwkJcmV0 ID0gbWx4NV9nZXRfbWFzdGVyX2lmbmFtZShkZXYsICZpZnItPmlmcl9uYW1lKTsNCj4gKwllbHNl DQo+ICsJCXJldCA9IG1seDVfZ2V0X2lmbmFtZShkZXYsICZpZnItPmlmcl9uYW1lKTsNCj4gIAlp ZiAocmV0KQ0KPiAgCQlnb3RvIGVycm9yOw0KPiAgCXJldCA9IGlvY3RsKHNvY2ssIHJlcSwgaWZy KTsNCj4gQEAgLTI1OCw3ICszNzMsNyBAQCBpbnQNCj4gIG1seDVfZ2V0X210dShzdHJ1Y3QgcnRl X2V0aF9kZXYgKmRldiwgdWludDE2X3QgKm10dSkgIHsNCj4gIAlzdHJ1Y3QgaWZyZXEgcmVxdWVz dDsNCj4gLQlpbnQgcmV0ID0gbWx4NV9pZnJlcShkZXYsIFNJT0NHSUZNVFUsICZyZXF1ZXN0KTsN Cj4gKwlpbnQgcmV0ID0gbWx4NV9pZnJlcShkZXYsIFNJT0NHSUZNVFUsICZyZXF1ZXN0LCAwKTsN Cj4gDQo+ICAJaWYgKHJldCkNCj4gIAkJcmV0dXJuIHJldDsNCj4gQEAgLTI4Miw3ICszOTcsNyBA QCBtbHg1X3NldF9tdHUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IG10dSkgIHsN Cj4gIAlzdHJ1Y3QgaWZyZXEgcmVxdWVzdCA9IHsgLmlmcl9tdHUgPSBtdHUsIH07DQo+IA0KPiAt CXJldHVybiBtbHg1X2lmcmVxKGRldiwgU0lPQ1NJRk1UVSwgJnJlcXVlc3QpOw0KPiArCXJldHVy biBtbHg1X2lmcmVxKGRldiwgU0lPQ1NJRk1UVSwgJnJlcXVlc3QsIDApOw0KPiAgfQ0KPiANCj4g IC8qKg0KPiBAQCAtMzAyLDEzICs0MTcsMTMgQEAgaW50DQo+ICBtbHg1X3NldF9mbGFncyhzdHJ1 Y3QgcnRlX2V0aF9kZXYgKmRldiwgdW5zaWduZWQgaW50IGtlZXAsIHVuc2lnbmVkIGludCBmbGFn cykgIHsNCj4gIAlzdHJ1Y3QgaWZyZXEgcmVxdWVzdDsNCj4gLQlpbnQgcmV0ID0gbWx4NV9pZnJl cShkZXYsIFNJT0NHSUZGTEFHUywgJnJlcXVlc3QpOw0KPiArCWludCByZXQgPSBtbHg1X2lmcmVx KGRldiwgU0lPQ0dJRkZMQUdTLCAmcmVxdWVzdCwgMCk7DQo+IA0KPiAgCWlmIChyZXQpDQo+ICAJ CXJldHVybiByZXQ7DQo+ICAJcmVxdWVzdC5pZnJfZmxhZ3MgJj0ga2VlcDsNCj4gIAlyZXF1ZXN0 Lmlmcl9mbGFncyB8PSBmbGFncyAmIH5rZWVwOw0KPiAtCXJldHVybiBtbHg1X2lmcmVxKGRldiwg U0lPQ1NJRkZMQUdTLCAmcmVxdWVzdCk7DQo+ICsJcmV0dXJuIG1seDVfaWZyZXEoZGV2LCBTSU9D U0lGRkxBR1MsICZyZXF1ZXN0LCAwKTsNCj4gIH0NCj4gDQo+ICAvKioNCj4gQEAgLTU1MSw3ICs2 NjYsNyBAQCBtbHg1X2xpbmtfdXBkYXRlX3VubG9ja2VkX2dzZXQoc3RydWN0IHJ0ZV9ldGhfZGV2 ICpkZXYsDQo+ICAJaW50IGxpbmtfc3BlZWQgPSAwOw0KPiAgCWludCByZXQ7DQo+IA0KPiAtCXJl dCA9IG1seDVfaWZyZXEoZGV2LCBTSU9DR0lGRkxBR1MsICZpZnIpOw0KPiArCXJldCA9IG1seDVf aWZyZXEoZGV2LCBTSU9DR0lGRkxBR1MsICZpZnIsIDEpOw0KPiAgCWlmIChyZXQpIHsNCj4gIAkJ RFJWX0xPRyhXQVJOSU5HLCAicG9ydCAldSBpb2N0bChTSU9DR0lGRkxBR1MpIGZhaWxlZDogJXMi LA0KPiAgCQkJZGV2LT5kYXRhLT5wb3J0X2lkLCBzdHJlcnJvcihydGVfZXJybm8pKTsgQEAgLTU2 MSw3ICs2NzYsNyBAQA0KPiBtbHg1X2xpbmtfdXBkYXRlX3VubG9ja2VkX2dzZXQoc3RydWN0IHJ0 ZV9ldGhfZGV2ICpkZXYsDQo+ICAJZGV2X2xpbmsubGlua19zdGF0dXMgPSAoKGlmci5pZnJfZmxh Z3MgJiBJRkZfVVApICYmDQo+ICAJCQkJKGlmci5pZnJfZmxhZ3MgJiBJRkZfUlVOTklORykpOw0K PiAgCWlmci5pZnJfZGF0YSA9ICh2b2lkICopJmVkYXRhOw0KPiAtCXJldCA9IG1seDVfaWZyZXEo ZGV2LCBTSU9DRVRIVE9PTCwgJmlmcik7DQo+ICsJcmV0ID0gbWx4NV9pZnJlcShkZXYsIFNJT0NF VEhUT09MLCAmaWZyLCAxKTsNCj4gIAlpZiAocmV0KSB7DQo+ICAJCURSVl9MT0coV0FSTklORywN Cj4gIAkJCSJwb3J0ICV1IGlvY3RsKFNJT0NFVEhUT09MLCBFVEhUT09MX0dTRVQpIGZhaWxlZDog JXMiLCBAQCAtNjIyLDcgKzczNyw3IEBADQo+IG1seDVfbGlua191cGRhdGVfdW5sb2NrZWRfZ3Mo c3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+ICAJdWludDY0X3Qgc2M7DQo+ICAJaW50IHJldDsN Cj4gDQo+IC0JcmV0ID0gbWx4NV9pZnJlcShkZXYsIFNJT0NHSUZGTEFHUywgJmlmcik7DQo+ICsJ cmV0ID0gbWx4NV9pZnJlcShkZXYsIFNJT0NHSUZGTEFHUywgJmlmciwgMSk7DQo+ICAJaWYgKHJl dCkgew0KPiAgCQlEUlZfTE9HKFdBUk5JTkcsICJwb3J0ICV1IGlvY3RsKFNJT0NHSUZGTEFHUykg ZmFpbGVkOiAlcyIsDQo+ICAJCQlkZXYtPmRhdGEtPnBvcnRfaWQsIHN0cmVycm9yKHJ0ZV9lcnJu bykpOyBAQCAtNjMyLDcgKzc0Nyw3IEBADQo+IG1seDVfbGlua191cGRhdGVfdW5sb2NrZWRfZ3Mo c3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+ICAJZGV2X2xpbmsubGlua19zdGF0dXMgPSAoKGlm ci5pZnJfZmxhZ3MgJiBJRkZfVVApICYmDQo+ICAJCQkJKGlmci5pZnJfZmxhZ3MgJiBJRkZfUlVO TklORykpOw0KPiAgCWlmci5pZnJfZGF0YSA9ICh2b2lkICopJmdjbWQ7DQo+IC0JcmV0ID0gbWx4 NV9pZnJlcShkZXYsIFNJT0NFVEhUT09MLCAmaWZyKTsNCj4gKwlyZXQgPSBtbHg1X2lmcmVxKGRl diwgU0lPQ0VUSFRPT0wsICZpZnIsIDEpOw0KPiAgCWlmIChyZXQpIHsNCj4gIAkJRFJWX0xPRyhE RUJVRywNCj4gIAkJCSJwb3J0ICV1IGlvY3RsKFNJT0NFVEhUT09MLCBFVEhUT09MX0dMSU5LU0VU VElOR1MpIg0KPiBAQCAtNjQ5LDcgKzc2NCw3IEBAIG1seDVfbGlua191cGRhdGVfdW5sb2NrZWRf Z3Moc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+IA0KPiAgCSplY21kID0gZ2NtZDsNCj4gIAlp ZnIuaWZyX2RhdGEgPSAodm9pZCAqKWVjbWQ7DQo+IC0JcmV0ID0gbWx4NV9pZnJlcShkZXYsIFNJ T0NFVEhUT09MLCAmaWZyKTsNCj4gKwlyZXQgPSBtbHg1X2lmcmVxKGRldiwgU0lPQ0VUSFRPT0ws ICZpZnIsIDEpOw0KPiAgCWlmIChyZXQpIHsNCj4gIAkJRFJWX0xPRyhERUJVRywNCj4gIAkJCSJw b3J0ICV1IGlvY3RsKFNJT0NFVEhUT09MLCBFVEhUT09MX0dMSU5LU0VUVElOR1MpIg0KPiBAQCAt ODEyLDcgKzkyNyw3IEBAIG1seDVfZGV2X2dldF9mbG93X2N0cmwoc3RydWN0IHJ0ZV9ldGhfZGV2 ICpkZXYsIHN0cnVjdCBydGVfZXRoX2ZjX2NvbmYgKmZjX2NvbmYpDQo+ICAJaW50IHJldDsNCj4g DQo+ICAJaWZyLmlmcl9kYXRhID0gKHZvaWQgKikmZXRocGF1c2U7DQo+IC0JcmV0ID0gbWx4NV9p ZnJlcShkZXYsIFNJT0NFVEhUT09MLCAmaWZyKTsNCj4gKwlyZXQgPSBtbHg1X2lmcmVxKGRldiwg U0lPQ0VUSFRPT0wsICZpZnIsIDEpOw0KPiAgCWlmIChyZXQpIHsNCj4gIAkJRFJWX0xPRyhXQVJO SU5HLA0KPiAgCQkJInBvcnQgJXUgaW9jdGwoU0lPQ0VUSFRPT0wsIEVUSFRPT0xfR1BBVVNFUEFS QU0pIGZhaWxlZDoiDQo+IEBAIC04NjUsNyArOTgwLDcgQEAgbWx4NV9kZXZfc2V0X2Zsb3dfY3Ry bChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgc3RydWN0IHJ0ZV9ldGhfZmNfY29uZiAqZmNfY29u ZikNCj4gIAkJZXRocGF1c2UudHhfcGF1c2UgPSAxOw0KPiAgCWVsc2UNCj4gIAkJZXRocGF1c2Uu dHhfcGF1c2UgPSAwOw0KPiAtCXJldCA9IG1seDVfaWZyZXEoZGV2LCBTSU9DRVRIVE9PTCwgJmlm cik7DQo+ICsJcmV0ID0gbWx4NV9pZnJlcShkZXYsIFNJT0NFVEhUT09MLCAmaWZyLCAwKTsNCj4g IAlpZiAocmV0KSB7DQo+ICAJCURSVl9MT0coV0FSTklORywNCj4gIAkJCSJwb3J0ICV1IGlvY3Rs KFNJT0NFVEhUT09MLCBFVEhUT09MX1NQQVVTRVBBUkFNKSINCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L21seDUvbWx4NV9tYWMuYyBiL2RyaXZlcnMvbmV0L21seDUvbWx4NV9tYWMuYyBpbmRl eCA2NzJhNDc2MTkuLjEyZWUzN2Y1NQ0KPiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvbWx4 NS9tbHg1X21hYy5jDQo+ICsrKyBiL2RyaXZlcnMvbmV0L21seDUvbWx4NV9tYWMuYw0KPiBAQCAt NDksNyArNDksNyBAQCBtbHg1X2dldF9tYWMoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQ4 X3QgKCptYWMpW0VUSEVSX0FERFJfTEVOXSkNCj4gIAlzdHJ1Y3QgaWZyZXEgcmVxdWVzdDsNCj4g IAlpbnQgcmV0Ow0KPiANCj4gLQlyZXQgPSBtbHg1X2lmcmVxKGRldiwgU0lPQ0dJRkhXQUREUiwg JnJlcXVlc3QpOw0KPiArCXJldCA9IG1seDVfaWZyZXEoZGV2LCBTSU9DR0lGSFdBRERSLCAmcmVx dWVzdCwgMCk7DQo+ICAJaWYgKHJldCkNCj4gIAkJcmV0dXJuIHJldDsNCj4gIAltZW1jcHkobWFj LCByZXF1ZXN0Lmlmcl9od2FkZHIuc2FfZGF0YSwgRVRIRVJfQUREUl9MRU4pOyBkaWZmIC0tZ2l0 DQo+IGEvZHJpdmVycy9uZXQvbWx4NS9tbHg1X3N0YXRzLmMgYi9kcml2ZXJzL25ldC9tbHg1L21s eDVfc3RhdHMuYyBpbmRleCA4NzVkZDEwMjcuLjkxZjNkNDc0YSAxMDA2NDQNCj4gLS0tIGEvZHJp dmVycy9uZXQvbWx4NS9tbHg1X3N0YXRzLmMNCj4gKysrIGIvZHJpdmVycy9uZXQvbWx4NS9tbHg1 X3N0YXRzLmMNCj4gQEAgLTE0Niw3ICsxNDYsNyBAQCBtbHg1X3JlYWRfZGV2X2NvdW50ZXJzKHN0 cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50NjRfdCAqc3RhdHMpDQo+ICAJZXRfc3RhdHMtPmNt ZCA9IEVUSFRPT0xfR1NUQVRTOw0KPiAgCWV0X3N0YXRzLT5uX3N0YXRzID0geHN0YXRzX2N0cmwt PnN0YXRzX247DQo+ICAJaWZyLmlmcl9kYXRhID0gKGNhZGRyX3QpZXRfc3RhdHM7DQo+IC0JcmV0 ID0gbWx4NV9pZnJlcShkZXYsIFNJT0NFVEhUT09MLCAmaWZyKTsNCj4gKwlyZXQgPSBtbHg1X2lm cmVxKGRldiwgU0lPQ0VUSFRPT0wsICZpZnIsIDEpOw0KPiAgCWlmIChyZXQpIHsNCj4gIAkJRFJW X0xPRyhXQVJOSU5HLA0KPiAgCQkJInBvcnQgJXUgdW5hYmxlIHRvIHJlYWQgc3RhdGlzdGljIHZh bHVlcyBmcm9tIGRldmljZSIsIEBAIC0xOTQsNyArMTk0LDcgQEANCj4gbWx4NV9ldGh0b29sX2dl dF9zdGF0c19uKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KSB7DQo+IA0KPiAgCWRydmluZm8uY21k ID0gRVRIVE9PTF9HRFJWSU5GTzsNCj4gIAlpZnIuaWZyX2RhdGEgPSAoY2FkZHJfdCkmZHJ2aW5m bzsNCj4gLQlyZXQgPSBtbHg1X2lmcmVxKGRldiwgU0lPQ0VUSFRPT0wsICZpZnIpOw0KPiArCXJl dCA9IG1seDVfaWZyZXEoZGV2LCBTSU9DRVRIVE9PTCwgJmlmciwgMSk7DQo+ICAJaWYgKHJldCkg ew0KPiAgCQlEUlZfTE9HKFdBUk5JTkcsICJwb3J0ICV1IHVuYWJsZSB0byBxdWVyeSBudW1iZXIg b2Ygc3RhdGlzdGljcyIsDQo+ICAJCQlkZXYtPmRhdGEtPnBvcnRfaWQpOw0KPiBAQCAtMjQ0LDcg KzI0NCw3IEBAIG1seDVfeHN0YXRzX2luaXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpDQo+ICAJ c3RyaW5ncy0+c3RyaW5nX3NldCA9IEVUSF9TU19TVEFUUzsNCj4gIAlzdHJpbmdzLT5sZW4gPSBk ZXZfc3RhdHNfbjsNCj4gIAlpZnIuaWZyX2RhdGEgPSAoY2FkZHJfdClzdHJpbmdzOw0KPiAtCXJl dCA9IG1seDVfaWZyZXEoZGV2LCBTSU9DRVRIVE9PTCwgJmlmcik7DQo+ICsJcmV0ID0gbWx4NV9p ZnJlcShkZXYsIFNJT0NFVEhUT09MLCAmaWZyLCAxKTsNCj4gIAlpZiAocmV0KSB7DQo+ICAJCURS Vl9MT0coV0FSTklORywgInBvcnQgJXUgdW5hYmxlIHRvIGdldCBzdGF0aXN0aWMgbmFtZXMiLA0K PiAgCQkJZGV2LT5kYXRhLT5wb3J0X2lkKTsNCj4gLS0NCj4gMi4xMS4wDQo=