From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B35D2C282C3 for ; Thu, 24 Jan 2019 09:57:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 6E07C2184C for ; Thu, 24 Jan 2019 09:57:40 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="sxon5I6g" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727126AbfAXJ5j (ORCPT ); Thu, 24 Jan 2019 04:57:39 -0500 Received: from mail-eopbgr10059.outbound.protection.outlook.com ([40.107.1.59]:56638 "EHLO EUR02-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725287AbfAXJ5j (ORCPT ); Thu, 24 Jan 2019 04:57:39 -0500 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=OaLLAQwL3pVXi5EyTT++ygzBS7oRROtyRo1HWcPrqO8=; b=sxon5I6gHGZ6gK8VVCCgEirnxpobD+oa7AoCrLHMfxOR6ePSbNtGOCn3iHAPt6jsclUJnUFMoN5jjwm5ElX2TC2NQziTgrnviJcY6GFL0n7gsOU0trBRo+Hm8p4qweIwcAS7RR2o6CpgOIXqTCjJ6XjPT3wCA+YOQRoratR6yDo= Received: from AM0PR0502MB4068.eurprd05.prod.outlook.com (52.133.41.24) by AM0PR0502MB3619.eurprd05.prod.outlook.com (52.133.46.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1558.16; Thu, 24 Jan 2019 09:57:34 +0000 Received: from AM0PR0502MB4068.eurprd05.prod.outlook.com ([fe80::c5a8:ab5d:6acb:408d]) by AM0PR0502MB4068.eurprd05.prod.outlook.com ([fe80::c5a8:ab5d:6acb:408d%4]) with mapi id 15.20.1558.016; Thu, 24 Jan 2019 09:57:34 +0000 From: Eran Ben Elisha To: Jiri Pirko CC: "netdev@vger.kernel.org" , Jiri Pirko , "David S. Miller" , Saeed Mahameed , Moshe Shemesh Subject: Re: [PATCH net-next 3/7] devlink: move devlink health reporter to use devlink msg API Thread-Topic: [PATCH net-next 3/7] devlink: move devlink health reporter to use devlink msg API Thread-Index: AQHUsms5USrIId+fpEOZsEA0Ab6eRKW87uMAgAE/OYD///YEgIAADXqA Date: Thu, 24 Jan 2019 09:57:34 +0000 Message-ID: References: <1548172644-30862-1-git-send-email-eranbe@mellanox.com> <1548172644-30862-4-git-send-email-eranbe@mellanox.com> <20190123144228.GI2191@nanopsycho> <20190124090917.GB2357@nanopsycho> In-Reply-To: <20190124090917.GB2357@nanopsycho> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: AM6PR0202CA0028.eurprd02.prod.outlook.com (2603:10a6:209:15::41) To AM0PR0502MB4068.eurprd05.prod.outlook.com (2603:10a6:208:12::24) authentication-results: spf=none (sender IP is ) smtp.mailfrom=eranbe@mellanox.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [193.47.165.251] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;AM0PR0502MB3619;6:D4O3TeupFNylNSxdwxKA//82IQEsll9kxwpU82YfYvnesUjvNeYhWoG+gDot+tOHSKyseJTjCWB0EoKPEvrnguUgVcKxk2V4Qs37vqGK6XYsjWQ6M5drgQYpvWR4r/YS2OgZi5ckWniiAXTP2dArnE/21pDyQil+bcj76fUGNOErjTongd6mDj7EKVqvqPgxMePohbbTA0npQAOR99okW/N8PLISjISaMmYDsNl5GXJuB9l6MJyPEt5NFytoCr9OUnKYE5QW+cC5q7lErkxqx2h/2AyHQAJcCN/neMGrpCM0u4RbO05n6HzSdKXrlu1RIuuSr8rrQ5EqtRmM5mgG3wI/KApbCTmjYDo7FoUKR6hgj7yAI5KkE9JrbebaGx8DgvJpcaVBwQbEzZu/zJI5y2+3fw3ghRvjQzPwft6PiZZ8SjvMlGMM1E1Bx33LLouifMYsqyQ7EP9OEVPEhj1VhQ==;5:IZH00pe4T073p2LUxKvwvPIQlyORrb+Cdv9NCod8NZfeHMPxK5nGzfD+GPTWY0TTxHYsXcx/b47c7BXw3a14KYINzNzu2Shroi3d84VFD55HhoS7Sw6oHZ9EqNQ9WhiZqZMG0U3BhNozOmrQAVACIa14nh5nSa9fJJd0M7B5bmPBKhu5FGYcrp+hvGurilZihr89sTdezZgOUu9zK2uE0A==;7:KD+V4w91xNEDtG86sU/Z2x+fLN+bPhZoUjrfDvfHQOrOpmsdy1U8mZhMkdxqRZHkFI9+G4RMCUdIelL9fgn70spL6srYhSZYPq0LSg1SOdyxEtBFZFUCrIpCbNFHW5Vuh6aBDMsT3GmJHnXeLF/eMg== x-ms-office365-filtering-correlation-id: 51b4ead6-3327-475b-1bc8-08d681e25cb3 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600110)(711020)(4605077)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020);SRVR:AM0PR0502MB3619; x-ms-traffictypediagnostic: AM0PR0502MB3619: x-microsoft-antispam-prvs: x-forefront-prvs: 0927AA37C7 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(376002)(39860400002)(136003)(396003)(346002)(366004)(199004)(189003)(31686004)(86362001)(486006)(93886005)(68736007)(105586002)(106356001)(6916009)(316002)(2906002)(97736004)(31696002)(6116002)(14444005)(256004)(3846002)(54906003)(52116002)(8936002)(8676002)(99286004)(26005)(81156014)(25786009)(6512007)(476003)(305945005)(81166006)(386003)(6506007)(53546011)(7736002)(53936002)(76176011)(71190400001)(229853002)(71200400001)(102836004)(2616005)(478600001)(36756003)(4326008)(6436002)(107886003)(6486002)(66066001)(6246003)(14454004)(446003)(11346002)(186003);DIR:OUT;SFP:1101;SCL:1;SRVR:AM0PR0502MB3619;H:AM0PR0502MB4068.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-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: nIJqx8buGeY6fUDSDEgNzAZpFGv4sN6OMwSrH1eUEn1Oiarca4sAUVuBjPgCF0lNqghwA1tiLYX7GhTjtHnmq5/blvQdT+rUBNVnI4gpgmURowsSYBi39ZQNqAnavUeHEhUhO3zS05Kec/q79SyNptdi7cdgbnif3ClIahJz4NsxmIGcZ9hwXK4FCK7R2XzSkDGAXj6BxWX6ssfHRzVjmo7yVfZV4+UwCXlcCtIifNvK+FCjRSI7n8yhPPo5saEQlrc0AuWVrtIFuqIYxQw3J1Y2cbl/5SBJILXuzVgNN3B5RIa5n5Qu5UBX/OTVQpOfuvhpgbtZtb9MLOj/Qx8ISR6kaR/q/16ZaPo7RbfhINt44RuiFfrus7I4AkeWaGknBGQERN+GU38I4TYlk0KnN+g6gyInVUyMFWpk0DO4UBs= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: <68184374D8F80947AA654480E2D530AC@eurprd05.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 51b4ead6-3327-475b-1bc8-08d681e25cb3 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Jan 2019 09:57:33.1813 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0502MB3619 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org DQoNCk9uIDEvMjQvMjAxOSAxMTowOSBBTSwgSmlyaSBQaXJrbyB3cm90ZToNCj4gVGh1LCBKYW4g MjQsIDIwMTkgYXQgMDg6NDU6MDVBTSBDRVQsIGVyYW5iZUBtZWxsYW5veC5jb20gd3JvdGU6DQo+ Pg0KPj4NCj4+IE9uIDEvMjMvMjAxOSA0OjQyIFBNLCBKaXJpIFBpcmtvIHdyb3RlOg0KPj4+IFR1 ZSwgSmFuIDIyLCAyMDE5IGF0IDA0OjU3OjIwUE0gQ0VULCBlcmFuYmVAbWVsbGFub3guY29tIHdy b3RlOg0KPj4+PiBNb3ZlIGRldmxpbmsgcmVwb3J0ZXIgZGlhZ25vc2UgYW5kIGR1bXAgb3BlcmF0 aW9ucyB0byB1c2UgdGhlIG5ldyBtc2cgQVBJLg0KPj4+PiBSZWRlZmluZSB0aGUgc2lnbmF0dXJl IG9mIGRpYWdub3NlIGFuZCBkdW1wIG9wZXJhdGlvbnMgYW5kIG1vdmUgdGhlIG1seDVlDQo+Pj4+ IHJlcG9ydGVyIHRvIHVzZSBpdCB3aXRoIHRoZSBuZXcgZm9ybWF0Lg0KPj4+Pg0KPj4+PiBTaWdu ZWQtb2ZmLWJ5OiBFcmFuIEJlbiBFbGlzaGEgPGVyYW5iZUBtZWxsYW5veC5jb20+DQo+Pj4+IFJl dmlld2VkLWJ5OiBNb3NoZSBTaGVtZXNoIDxtb3NoZUBtZWxsYW5veC5jb20+DQo+Pj4+IC0tLQ0K Pj4+PiAuLi4vbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcG9ydGVyX3R4LmMgICAgICAgfCAgMSAr DQo+Pj4+IGluY2x1ZGUvbmV0L2RldmxpbmsuaCAgICAgICAgICAgICAgICAgICAgICAgICB8ICA5 ICstDQo+Pj4+IG5ldC9jb3JlL2RldmxpbmsuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IDk1ICsrKysrLS0tLS0tLS0tLS0tLS0NCj4+Pj4gMyBmaWxlcyBjaGFuZ2VkLCAyOCBpbnNlcnRp b25zKCspLCA3NyBkZWxldGlvbnMoLSkNCj4+Pj4NCj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXBvcnRlcl90eC5jIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcG9ydGVyX3R4LmMNCj4+Pj4g aW5kZXggZmM5Mjg1MGMyMTRhLi43MjM4Y2RhNjcwYmEgMTAwNjQ0DQo+Pj4+IC0tLSBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXBvcnRlcl90eC5jDQo+Pj4+ ICsrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXBvcnRl cl90eC5jDQo+Pj4+IEBAIC0yNjQsNiArMjY0LDcgQEAgc3RhdGljIGludCBtbHg1ZV90eF9yZXBv cnRlcl9kaWFnbm9zZShzdHJ1Y3QgZGV2bGlua19oZWFsdGhfcmVwb3J0ZXIgKnJlcG9ydGVyLA0K Pj4+PiBzdGF0aWMgY29uc3Qgc3RydWN0IGRldmxpbmtfaGVhbHRoX3JlcG9ydGVyX29wcyBtbHg1 X3R4X3JlcG9ydGVyX29wcyA9IHsNCj4+Pj4gCQkubmFtZSA9ICJUWCIsDQo+Pj4+IAkJLnJlY292 ZXIgPSBtbHg1ZV90eF9yZXBvcnRlcl9yZWNvdmVyLA0KPj4+PiArCQkuZGlhZ25vc2UgPSBtbHg1 ZV90eF9yZXBvcnRlcl9kaWFnbm9zZSwNCj4+Pg0KPj4+IFVucmVsYXRlZCB0byB0aGlzIHBhdGNo Lg0KPj4NCj4+IGFjay4NCj4+DQo+Pj4NCj4+Pg0KPj4+PiB9Ow0KPj4+Pg0KPj4+PiAjZGVmaW5l IE1MWDVfUkVQT1JURVJfVFhfR1JBQ0VGVUxfUEVSSU9EIDUwMA0KPj4+PiBkaWZmIC0tZ2l0IGEv aW5jbHVkZS9uZXQvZGV2bGluay5oIGIvaW5jbHVkZS9uZXQvZGV2bGluay5oDQo+Pj4+IGluZGV4 IGZlMzIzZTliMTRlMS4uZDY2ZGU4YjgwY2MyIDEwMDY0NA0KPj4+PiAtLS0gYS9pbmNsdWRlL25l dC9kZXZsaW5rLmgNCj4+Pj4gKysrIGIvaW5jbHVkZS9uZXQvZGV2bGluay5oDQo+Pj4+IEBAIC00 NDIsMTcgKzQ0MiwxMiBAQCBzdHJ1Y3QgZGV2bGlua19oZWFsdGhfcmVwb3J0ZXI7DQo+Pj4+DQo+ Pj4+IHN0cnVjdCBkZXZsaW5rX2hlYWx0aF9yZXBvcnRlcl9vcHMgew0KPj4+PiAJY2hhciAqbmFt ZTsNCj4+Pj4gLQl1bnNpZ25lZCBpbnQgZHVtcF9zaXplOw0KPj4+PiAtCXVuc2lnbmVkIGludCBk aWFnbm9zZV9zaXplOw0KPj4+PiAJaW50ICgqcmVjb3Zlcikoc3RydWN0IGRldmxpbmtfaGVhbHRo X3JlcG9ydGVyICpyZXBvcnRlciwNCj4+Pj4gCQkgICAgICAgdm9pZCAqcHJpdl9jdHgpOw0KPj4+ PiAJaW50ICgqZHVtcCkoc3RydWN0IGRldmxpbmtfaGVhbHRoX3JlcG9ydGVyICpyZXBvcnRlciwN Cj4+Pj4gLQkJICAgIHN0cnVjdCBkZXZsaW5rX2hlYWx0aF9idWZmZXIgKipidWZmZXJzX2FycmF5 LA0KPj4+PiAtCQkgICAgdW5zaWduZWQgaW50IGJ1ZmZlcl9zaXplLCB1bnNpZ25lZCBpbnQgbnVt X2J1ZmZlcnMsDQo+Pj4+IC0JCSAgICB2b2lkICpwcml2X2N0eCk7DQo+Pj4+ICsJCSAgICBzdHJ1 Y3QgZGV2bGlua19tc2dfY3R4ICptc2dfY3R4LCB2b2lkICpwcml2X2N0eCk7DQo+Pj4+IAlpbnQg KCpkaWFnbm9zZSkoc3RydWN0IGRldmxpbmtfaGVhbHRoX3JlcG9ydGVyICpyZXBvcnRlciwNCj4+ Pj4gLQkJCXN0cnVjdCBkZXZsaW5rX2hlYWx0aF9idWZmZXIgKipidWZmZXJzX2FycmF5LA0KPj4+ PiAtCQkJdW5zaWduZWQgaW50IGJ1ZmZlcl9zaXplLCB1bnNpZ25lZCBpbnQgbnVtX2J1ZmZlcnMp Ow0KPj4+PiArCQkJc3RydWN0IGRldmxpbmtfbXNnX2N0eCAqbXNnX2N0eCk7DQo+Pj4+IH07DQo+ Pj4+DQo+Pj4+IHN0cnVjdCBkZXZsaW5rX29wcyB7DQo+Pj4+IGRpZmYgLS1naXQgYS9uZXQvY29y ZS9kZXZsaW5rLmMgYi9uZXQvY29yZS9kZXZsaW5rLmMNCj4+Pj4gaW5kZXggNTdjYTA5Njg0OWIz Li4zNDdiNjM4ZTZmMzIgMTAwNjQ0DQo+Pj4+IC0tLSBhL25ldC9jb3JlL2RldmxpbmsuYw0KPj4+ PiArKysgYi9uZXQvY29yZS9kZXZsaW5rLmMNCj4+Pj4gQEAgLTQ1NTUsMTAgKzQ1NTUsOCBAQCBz dGF0aWMgaW50IGRldmxpbmtfbXNnX3NuZChzdHJ1Y3QgZ2VubF9pbmZvICppbmZvLA0KPj4+Pg0K Pj4+PiBzdHJ1Y3QgZGV2bGlua19oZWFsdGhfcmVwb3J0ZXIgew0KPj4+PiAJc3RydWN0IGxpc3Rf aGVhZCBsaXN0Ow0KPj4+PiAtCXN0cnVjdCBkZXZsaW5rX2hlYWx0aF9idWZmZXIgKipkdW1wX2J1 ZmZlcnNfYXJyYXk7DQo+Pj4+ICsJc3RydWN0IGRldmxpbmtfbXNnX2N0eCAqZHVtcF9tc2dfY3R4 Ow0KPj4+PiAJc3RydWN0IG11dGV4IGR1bXBfbG9jazsgLyogbG9jayBwYXJhbGxlbCByZWFkL3dy aXRlIGZyb20gZHVtcCBidWZmZXJzICovDQo+Pj4+IC0Jc3RydWN0IGRldmxpbmtfaGVhbHRoX2J1 ZmZlciAqKmRpYWdub3NlX2J1ZmZlcnNfYXJyYXk7DQo+Pj4+IC0Jc3RydWN0IG11dGV4IGRpYWdu b3NlX2xvY2s7IC8qIGxvY2sgcGFyYWxsZWwgcmVhZC93cml0ZSBmcm9tIGRpYWdub3NlIGJ1ZmZl cnMgKi8NCj4+Pg0KPj4+IEhvd2NvbWUgeW91IGRvbid0IG5lZWQgdGhlIG11dGV4IGFueW1vcmU/ DQo+Pg0KPj4gTm93LCBhcyBkYXRhIGlzIGFsbG9jYXRlZCBvbiB0aGUgZmx5IHdoaWxlIGRpYWdu b3NlX2RvaXQoKSwgbm8gbmVlZCB0bw0KPj4gc3RvcmUgdGhlIGRpYWdub3NlICBvdmVyIHRoZSBy ZXBvcnRlciBhbnltb3JlLiBTbyBubyBuZWVkIGZvciBhbnkgbXV0ZXgNCj4+IGxvY2tpbmcgaW4g b3JkZXIgdG8gcHJlcGFyZSBhbmQgc2VuZCBpdC4NCj4gDQo+IFdoeSB0aGUgZGF0YSBpcyBhbGxv Y2F0ZWQgb24gdGhlIGZseT8gU2hvdWxkbid0IGl0IGJlIGEgc2VwYXJhdGUgcGF0Y2gNCj4gYXMg aXQgbG9va3MgbGlrZSBhIHNlcGFyYXRlIGNoYW5nZT8NCj4gDQpUaGlzIHN0YXJ0IHRvIGJlIHJl YWxseSBjb21wbGljYXRlZCAoYnV0IHBvc3NpYmxlKS4NCg0KKCMxKSBJIHRoaW5rIHdlIHNoYWxs IHRha2UgeW91ciBhcHByb2FjaCBhbmQgZG8gYSByZXZlcnQgYW5kIHB1dCBpdCBhbGwgDQphZ2Fp biBvbiB0b3AuDQoNCj4gDQo+Pg0KPj4+DQo+Pj4NCj4+Pj4gCXZvaWQgKnByaXY7DQo+Pj4+IAlj b25zdCBzdHJ1Y3QgZGV2bGlua19oZWFsdGhfcmVwb3J0ZXJfb3BzICpvcHM7DQo+Pj4+IAlzdHJ1 Y3QgZGV2bGluayAqZGV2bGluazsNCj4+Pj4gQEAgLTQ2MTksOSArNDYxNyw3IEBAIGRldmxpbmtf aGVhbHRoX3JlcG9ydGVyX2NyZWF0ZShzdHJ1Y3QgZGV2bGluayAqZGV2bGluaywNCj4+Pj4gCQln b3RvIHVubG9jazsNCj4+Pj4gCX0NCj4+Pj4NCj4+Pj4gLQlpZiAoV0FSTl9PTihvcHMtPmR1bXAg JiYgIW9wcy0+ZHVtcF9zaXplKSB8fA0KPj4+PiAtCSAgICBXQVJOX09OKG9wcy0+ZGlhZ25vc2Ug JiYgIW9wcy0+ZGlhZ25vc2Vfc2l6ZSkgfHwNCj4+Pj4gLQkgICAgV0FSTl9PTihhdXRvX3JlY292 ZXIgJiYgIW9wcy0+cmVjb3ZlcikgfHwNCj4+Pj4gKwlpZiAoV0FSTl9PTihhdXRvX3JlY292ZXIg JiYgIW9wcy0+cmVjb3ZlcikgfHwNCj4+Pj4gCSAgICBXQVJOX09OKGdyYWNlZnVsX3BlcmlvZCAm JiAhb3BzLT5yZWNvdmVyKSkgew0KPj4+PiAJCXJlcG9ydGVyID0gRVJSX1BUUigtRUlOVkFMKTsN Cj4+Pj4gCQlnb3RvIHVubG9jazsNCj4+Pj4gQEAgLTQ2MzMsMzEgKzQ2MjksOCBAQCBkZXZsaW5r X2hlYWx0aF9yZXBvcnRlcl9jcmVhdGUoc3RydWN0IGRldmxpbmsgKmRldmxpbmssDQo+Pj4+IAkJ Z290byB1bmxvY2s7DQo+Pj4+IAl9DQo+Pj4+DQo+Pj4+IC0JaWYgKG9wcy0+ZHVtcCkgew0KPj4+ PiAtCQlyZXBvcnRlci0+ZHVtcF9idWZmZXJzX2FycmF5ID0NCj4+Pj4gLQkJCWRldmxpbmtfaGVh bHRoX2J1ZmZlcnNfY3JlYXRlKG9wcy0+ZHVtcF9zaXplKTsNCj4+Pj4gLQkJaWYgKCFyZXBvcnRl ci0+ZHVtcF9idWZmZXJzX2FycmF5KSB7DQo+Pj4+IC0JCQlrZnJlZShyZXBvcnRlcik7DQo+Pj4+ IC0JCQlyZXBvcnRlciA9IEVSUl9QVFIoLUVOT01FTSk7DQo+Pj4+IC0JCQlnb3RvIHVubG9jazsN Cj4+Pj4gLQkJfQ0KPj4+PiAtCX0NCj4+Pj4gLQ0KPj4+PiAtCWlmIChvcHMtPmRpYWdub3NlKSB7 DQo+Pj4+IC0JCXJlcG9ydGVyLT5kaWFnbm9zZV9idWZmZXJzX2FycmF5ID0NCj4+Pj4gLQkJCWRl dmxpbmtfaGVhbHRoX2J1ZmZlcnNfY3JlYXRlKG9wcy0+ZGlhZ25vc2Vfc2l6ZSk7DQo+Pj4+IC0J CWlmICghcmVwb3J0ZXItPmRpYWdub3NlX2J1ZmZlcnNfYXJyYXkpIHsNCj4+Pj4gLQkJCWRldmxp bmtfaGVhbHRoX2J1ZmZlcnNfZGVzdHJveShyZXBvcnRlci0+ZHVtcF9idWZmZXJzX2FycmF5LA0K Pj4+PiAtCQkJCQkJICAgICAgIERFVkxJTktfSEVBTFRIX1NJWkVfVE9fQlVGRkVSUyhvcHMtPmR1 bXBfc2l6ZSkpOw0KPj4+PiAtCQkJa2ZyZWUocmVwb3J0ZXIpOw0KPj4+PiAtCQkJcmVwb3J0ZXIg PSBFUlJfUFRSKC1FTk9NRU0pOw0KPj4+PiAtCQkJZ290byB1bmxvY2s7DQo+Pj4+IC0JCX0NCj4+ Pj4gLQl9DQo+Pj4+IC0NCj4+Pj4gCWxpc3RfYWRkX3RhaWwoJnJlcG9ydGVyLT5saXN0LCAmZGV2 bGluay0+cmVwb3J0ZXJfbGlzdCk7DQo+Pj4+IAltdXRleF9pbml0KCZyZXBvcnRlci0+ZHVtcF9s b2NrKTsNCj4+Pj4gLQltdXRleF9pbml0KCZyZXBvcnRlci0+ZGlhZ25vc2VfbG9jayk7DQo+Pj4+ DQo+Pj4+IAlyZXBvcnRlci0+cHJpdiA9IHByaXY7DQo+Pj4+IAlyZXBvcnRlci0+b3BzID0gb3Bz Ow0KPj4+PiBAQCAtNDY4MCwxMCArNDY1Myw4IEBAIGRldmxpbmtfaGVhbHRoX3JlcG9ydGVyX2Rl c3Ryb3koc3RydWN0IGRldmxpbmtfaGVhbHRoX3JlcG9ydGVyICpyZXBvcnRlcikNCj4+Pj4gew0K Pj4+PiAJbXV0ZXhfbG9jaygmcmVwb3J0ZXItPmRldmxpbmstPmxvY2spOw0KPj4+PiAJbGlzdF9k ZWwoJnJlcG9ydGVyLT5saXN0KTsNCj4+Pj4gLQlkZXZsaW5rX2hlYWx0aF9idWZmZXJzX2Rlc3Ry b3kocmVwb3J0ZXItPmR1bXBfYnVmZmVyc19hcnJheSwNCj4+Pj4gLQkJCQkgICAgICAgREVWTElO S19IRUFMVEhfU0laRV9UT19CVUZGRVJTKHJlcG9ydGVyLT5vcHMtPmR1bXBfc2l6ZSkpOw0KPj4+ PiAtCWRldmxpbmtfaGVhbHRoX2J1ZmZlcnNfZGVzdHJveShyZXBvcnRlci0+ZGlhZ25vc2VfYnVm ZmVyc19hcnJheSwNCj4+Pj4gLQkJCQkgICAgICAgREVWTElOS19IRUFMVEhfU0laRV9UT19CVUZG RVJTKHJlcG9ydGVyLT5vcHMtPmRpYWdub3NlX3NpemUpKTsNCj4+Pj4gKwlpZiAocmVwb3J0ZXIt PmR1bXBfbXNnX2N0eCkNCj4+Pj4gKwkJZGV2bGlua19tc2dfY3R4X2ZyZWUocmVwb3J0ZXItPmR1 bXBfbXNnX2N0eCk7DQo+Pj4+IAlrZnJlZShyZXBvcnRlcik7DQo+Pj4+IAltdXRleF91bmxvY2so JnJlcG9ydGVyLT5kZXZsaW5rLT5sb2NrKTsNCj4+Pj4gfQ0KPj4+PiBAQCAtNDcyMCwxMiArNDY5 MSwxNSBAQCBzdGF0aWMgaW50IGRldmxpbmtfaGVhbHRoX2RvX2R1bXAoc3RydWN0IGRldmxpbmtf aGVhbHRoX3JlcG9ydGVyICpyZXBvcnRlciwNCj4+Pj4gCWlmIChyZXBvcnRlci0+ZHVtcF9hdmFp bCkNCj4+Pj4gCQlyZXR1cm4gMDsNCj4+Pj4NCj4+Pj4gLQlkZXZsaW5rX2hlYWx0aF9idWZmZXJz X3Jlc2V0KHJlcG9ydGVyLT5kdW1wX2J1ZmZlcnNfYXJyYXksDQo+Pj4+IC0JCQkJICAgICBERVZM SU5LX0hFQUxUSF9TSVpFX1RPX0JVRkZFUlMocmVwb3J0ZXItPm9wcy0+ZHVtcF9zaXplKSk7DQo+ Pj4+IC0JZXJyID0gcmVwb3J0ZXItPm9wcy0+ZHVtcChyZXBvcnRlciwgcmVwb3J0ZXItPmR1bXBf YnVmZmVyc19hcnJheSwNCj4+Pj4gLQkJCQkgICAgIERFVkxJTktfSEVBTFRIX0JVRkZFUl9TSVpF LA0KPj4+PiAtCQkJCSAgICAgREVWTElOS19IRUFMVEhfU0laRV9UT19CVUZGRVJTKHJlcG9ydGVy LT5vcHMtPmR1bXBfc2l6ZSksDQo+Pj4+IC0JCQkJICAgICBwcml2X2N0eCk7DQo+Pj4+ICsJcmVw b3J0ZXItPmR1bXBfbXNnX2N0eCA9IGRldmxpbmtfbXNnX2N0eF9hbGxvYygpOw0KPj4+PiArCWlm IChJU19FUlJfT1JfTlVMTChyZXBvcnRlci0+ZHVtcF9tc2dfY3R4KSkgew0KPj4+PiArCQllcnIg PSBQVFJfRVJSKHJlcG9ydGVyLT5kdW1wX21zZ19jdHgpOw0KPj4+PiArCQlyZXBvcnRlci0+ZHVt cF9tc2dfY3R4ID0gTlVMTDsNCj4+Pj4gKwkJcmV0dXJuIGVycjsNCj4+Pj4gKwl9DQo+Pj4+ICsN Cj4+Pj4gKwllcnIgPSByZXBvcnRlci0+b3BzLT5kdW1wKHJlcG9ydGVyLCByZXBvcnRlci0+ZHVt cF9tc2dfY3R4LA0KPj4+PiArCQkJCSAgcHJpdl9jdHgpOw0KPj4+PiAJaWYgKCFlcnIpIHsNCj4+ Pj4gCQlyZXBvcnRlci0+ZHVtcF9hdmFpbCA9IHRydWU7DQo+Pj4+IAkJcmVwb3J0ZXItPmR1bXBf dHMgPSBqaWZmaWVzOw0KPj4+PiBAQCAtNDk2MCw3ICs0OTM0LDcgQEAgc3RhdGljIGludCBkZXZs aW5rX25sX2NtZF9oZWFsdGhfcmVwb3J0ZXJfZGlhZ25vc2VfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAq c2tiLA0KPj4+PiB7DQo+Pj4+IAlzdHJ1Y3QgZGV2bGluayAqZGV2bGluayA9IGluZm8tPnVzZXJf cHRyWzBdOw0KPj4+PiAJc3RydWN0IGRldmxpbmtfaGVhbHRoX3JlcG9ydGVyICpyZXBvcnRlcjsN Cj4+Pj4gLQl1NjQgbnVtX29mX2J1ZmZlcnM7DQo+Pj4+ICsJc3RydWN0IGRldmxpbmtfbXNnX2N0 eCAqbXNnX2N0eDsNCj4+Pj4gCWludCBlcnI7DQo+Pj4+DQo+Pj4+IAlyZXBvcnRlciA9IGRldmxp bmtfaGVhbHRoX3JlcG9ydGVyX2dldF9mcm9tX2luZm8oZGV2bGluaywgaW5mbyk7DQo+Pj4+IEBA IC00OTcwLDMyICs0OTQ0LDE5IEBAIHN0YXRpYyBpbnQgZGV2bGlua19ubF9jbWRfaGVhbHRoX3Jl cG9ydGVyX2RpYWdub3NlX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwNCj4+Pj4gCWlmICghcmVw b3J0ZXItPm9wcy0+ZGlhZ25vc2UpDQo+Pj4+IAkJcmV0dXJuIC1FT1BOT1RTVVBQOw0KPj4+Pg0K Pj4+PiAtCW51bV9vZl9idWZmZXJzID0NCj4+Pj4gLQkJREVWTElOS19IRUFMVEhfU0laRV9UT19C VUZGRVJTKHJlcG9ydGVyLT5vcHMtPmRpYWdub3NlX3NpemUpOw0KPj4+PiArCW1zZ19jdHggPSBk ZXZsaW5rX21zZ19jdHhfYWxsb2MoKTsNCj4+Pj4gKwlpZiAoSVNfRVJSX09SX05VTEwobXNnX2N0 eCkpDQo+Pj4+ICsJCXJldHVybiBQVFJfRVJSKG1zZ19jdHgpOw0KPj4+Pg0KPj4+PiAtCW11dGV4 X2xvY2soJnJlcG9ydGVyLT5kaWFnbm9zZV9sb2NrKTsNCj4+Pj4gLQlkZXZsaW5rX2hlYWx0aF9i dWZmZXJzX3Jlc2V0KHJlcG9ydGVyLT5kaWFnbm9zZV9idWZmZXJzX2FycmF5LA0KPj4+PiAtCQkJ CSAgICAgbnVtX29mX2J1ZmZlcnMpOw0KPj4+PiAtDQo+Pj4+IC0JZXJyID0gcmVwb3J0ZXItPm9w cy0+ZGlhZ25vc2UocmVwb3J0ZXIsDQo+Pj4+IC0JCQkJICAgICAgcmVwb3J0ZXItPmRpYWdub3Nl X2J1ZmZlcnNfYXJyYXksDQo+Pj4+IC0JCQkJICAgICAgREVWTElOS19IRUFMVEhfQlVGRkVSX1NJ WkUsDQo+Pj4+IC0JCQkJICAgICAgbnVtX29mX2J1ZmZlcnMpOw0KPj4+PiArCWVyciA9IHJlcG9y dGVyLT5vcHMtPmRpYWdub3NlKHJlcG9ydGVyLCBtc2dfY3R4KTsNCj4+Pg0KPj4+IFNvIHRoaXMg aXMgbm90IG5lZWRlZCB0byBiZSBpbiByZXBvcnRlciBub3c/IFdoeSBpdCB3YXMgbmVlZGVkIGJl Zm9yZT8NCj4+DQo+PiBzZWUgcmVwbHkgYWJvdmUuDQo+Pg0KPj4+DQo+Pj4NCj4+Pg0KPj4+PiAJ aWYgKGVycikNCj4+Pj4gCQlnb3RvIG91dDsNCj4+Pj4NCj4+Pj4gLQllcnIgPSBkZXZsaW5rX2hl YWx0aF9idWZmZXJfc25kKGluZm8sDQo+Pj4+IC0JCQkJCURFVkxJTktfQ01EX0hFQUxUSF9SRVBP UlRFUl9ESUFHTk9TRSwNCj4+Pj4gLQkJCQkJMCwgcmVwb3J0ZXItPmRpYWdub3NlX2J1ZmZlcnNf YXJyYXksDQo+Pj4+IC0JCQkJCW51bV9vZl9idWZmZXJzKTsNCj4+Pj4gLQlpZiAoZXJyKQ0KPj4+ PiAtCQlnb3RvIG91dDsNCj4+Pj4gLQ0KPj4+PiAtCW11dGV4X3VubG9jaygmcmVwb3J0ZXItPmRp YWdub3NlX2xvY2spOw0KPj4+PiAtCXJldHVybiAwOw0KPj4+PiArCWVyciA9IGRldmxpbmtfbXNn X3NuZChpbmZvLCBERVZMSU5LX0NNRF9IRUFMVEhfUkVQT1JURVJfRElBR05PU0UsDQo+Pj4+ICsJ CQkgICAgICAwLCBtc2dfY3R4KTsNCj4+Pj4NCj4+Pj4gb3V0Og0KPj4+PiAtCW11dGV4X3VubG9j aygmcmVwb3J0ZXItPmRpYWdub3NlX2xvY2spOw0KPj4+PiArCWRldmxpbmtfbXNnX2N0eF9mcmVl KG1zZ19jdHgpOw0KPj4+PiAJcmV0dXJuIGVycjsNCj4+Pj4gfQ0KPj4+Pg0KPj4+PiBAQCAtNTAw NCw4ICs0OTY1LDggQEAgZGV2bGlua19oZWFsdGhfZHVtcF9jbGVhcihzdHJ1Y3QgZGV2bGlua19o ZWFsdGhfcmVwb3J0ZXIgKnJlcG9ydGVyKQ0KPj4+PiB7DQo+Pj4+IAlyZXBvcnRlci0+ZHVtcF9h dmFpbCA9IGZhbHNlOw0KPj4+PiAJcmVwb3J0ZXItPmR1bXBfdHMgPSAwOw0KPj4+PiAtCWRldmxp bmtfaGVhbHRoX2J1ZmZlcnNfcmVzZXQocmVwb3J0ZXItPmR1bXBfYnVmZmVyc19hcnJheSwNCj4+ Pj4gLQkJCQkgICAgIERFVkxJTktfSEVBTFRIX1NJWkVfVE9fQlVGRkVSUyhyZXBvcnRlci0+b3Bz LT5kdW1wX3NpemUpKTsNCj4+Pj4gKwlkZXZsaW5rX21zZ19jdHhfZnJlZShyZXBvcnRlci0+ZHVt cF9tc2dfY3R4KTsNCj4+Pj4gKwlyZXBvcnRlci0+ZHVtcF9tc2dfY3R4ID0gTlVMTDsNCj4+Pj4g fQ0KPj4+Pg0KPj4+PiBzdGF0aWMgaW50IGRldmxpbmtfbmxfY21kX2hlYWx0aF9yZXBvcnRlcl9k dW1wX2dldF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsDQo+Pj4+IEBAIC01MDEzLDcgKzQ5NzQs NiBAQCBzdGF0aWMgaW50IGRldmxpbmtfbmxfY21kX2hlYWx0aF9yZXBvcnRlcl9kdW1wX2dldF9k b2l0KHN0cnVjdCBza19idWZmICpza2IsDQo+Pj4+IHsNCj4+Pj4gCXN0cnVjdCBkZXZsaW5rICpk ZXZsaW5rID0gaW5mby0+dXNlcl9wdHJbMF07DQo+Pj4+IAlzdHJ1Y3QgZGV2bGlua19oZWFsdGhf cmVwb3J0ZXIgKnJlcG9ydGVyOw0KPj4+PiAtCXU2NCBudW1fb2ZfYnVmZmVyczsNCj4+Pj4gCWlu dCBlcnI7DQo+Pj4+DQo+Pj4+IAlyZXBvcnRlciA9IGRldmxpbmtfaGVhbHRoX3JlcG9ydGVyX2dl dF9mcm9tX2luZm8oZGV2bGluaywgaW5mbyk7DQo+Pj4+IEBAIC01MDIzLDE4ICs0OTgzLDEzIEBA IHN0YXRpYyBpbnQgZGV2bGlua19ubF9jbWRfaGVhbHRoX3JlcG9ydGVyX2R1bXBfZ2V0X2RvaXQo c3RydWN0IHNrX2J1ZmYgKnNrYiwNCj4+Pj4gCWlmICghcmVwb3J0ZXItPm9wcy0+ZHVtcCkNCj4+ Pj4gCQlyZXR1cm4gLUVPUE5PVFNVUFA7DQo+Pj4+DQo+Pj4+IC0JbnVtX29mX2J1ZmZlcnMgPQ0K Pj4+PiAtCQlERVZMSU5LX0hFQUxUSF9TSVpFX1RPX0JVRkZFUlMocmVwb3J0ZXItPm9wcy0+ZHVt cF9zaXplKTsNCj4+Pj4gLQ0KPj4+PiAJbXV0ZXhfbG9jaygmcmVwb3J0ZXItPmR1bXBfbG9jayk7 DQo+Pj4+IAllcnIgPSBkZXZsaW5rX2hlYWx0aF9kb19kdW1wKHJlcG9ydGVyLCBOVUxMKTsNCj4+ Pj4gCWlmIChlcnIpDQo+Pj4+IAkJZ290byBvdXQ7DQo+Pj4+DQo+Pj4+IC0JZXJyID0gZGV2bGlu a19oZWFsdGhfYnVmZmVyX3NuZChpbmZvLA0KPj4+PiAtCQkJCQlERVZMSU5LX0NNRF9IRUFMVEhf UkVQT1JURVJfRFVNUF9HRVQsDQo+Pj4+IC0JCQkJCTAsIHJlcG9ydGVyLT5kdW1wX2J1ZmZlcnNf YXJyYXksDQo+Pj4+IC0JCQkJCW51bV9vZl9idWZmZXJzKTsNCj4+Pj4gKwllcnIgPSBkZXZsaW5r X21zZ19zbmQoaW5mbywgREVWTElOS19DTURfSEVBTFRIX1JFUE9SVEVSX0RVTVBfR0VULA0KPj4+ PiArCQkJICAgICAgMCwgcmVwb3J0ZXItPmR1bXBfbXNnX2N0eCk7DQo+Pj4+DQo+Pj4+IG91dDoN Cj4+Pj4gCW11dGV4X3VubG9jaygmcmVwb3J0ZXItPmR1bXBfbG9jayk7DQo+Pj4+IC0tIA0KPj4+ PiAyLjE3LjENCj4+Pj4NCg==