Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp1695912imm; Tue, 22 May 2018 08:00:57 -0700 (PDT) X-Google-Smtp-Source: AB8JxZrUUq7xekHtEn9RSnwvowC5u7sShtK6SD4kfG18631n5R7qiAVwzcpp6SEq1trhOH665nPJ X-Received: by 2002:a65:4903:: with SMTP id p3-v6mr4413274pgs.84.1527001257699; Tue, 22 May 2018 08:00:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527001257; cv=none; d=google.com; s=arc-20160816; b=n/xqr2rraXmP0b1svWlXkHeRilnpFJR+U2+u/9v7VwgxqJmVJ6Zzk5bsW3S25VpS94 LIH/pEeP5Fk/KLb0IL8W+/3GctwlwOnMXiLIzF1hAk2hEw7UV/oOtX7O0vzCvk6xMiCH JURP/LWNQL28yeO4BabyK1nahrsYCMbkt0zpLwYnqpG5te2RaDKmnJ8kQ/rc1r4Aa0eI gswuFJlJpF1EwsKtUHM5gAp/Zeg9lrwwHQuLZKzxUyjwxkXxn8MoXLLASh4TzTLHUYwO iajZP4RPYrVsnJ1KSVoWE8MNSs1LddBCROJifgNrrBRU8X7FEtLEWpExC3vZ0pLOTxRV jg4g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :spamdiagnosticmetadata:spamdiagnosticoutput:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=zm3RU9ZtwFiGs+wFgor/n5Pb9Uc1NGnjR5azMA2QYZY=; b=zEZGa6oI353+BihdPisqwq6nh5kuYxhuD49cbvhGlXhy3zzydkytumqZs6epLu+QEv fy6x8bsxSidyjB6bAeu5zoW/7SyYYdiQock62jm8CqzF1QEu7USjqNVeG8boobvPLIF7 bp6AaKCDz4HeZmpeJwen+6sb7B1Feqmd3LSJ99Myu2UD116Gh95cKxBwz5uBM/Wz1chY wr6QiPSa+1c8nNat00dkbJx+V/B/sF5XqcVqmekS6B5s96+6LSlPE18KKw5C/QvYnPHU q9fV9lcgT2sKk3lyUk9efzpW1ju9dbMsUGaFnqaIVoOMI1T4UuQRDvFruzxGYrykRNaW Lf5g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@Mellanox.com header.s=selector1 header.b=oCcN+FeO; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mellanox.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e68-v6si17155394pfl.132.2018.05.22.08.00.41; Tue, 22 May 2018 08:00:57 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@Mellanox.com header.s=selector1 header.b=oCcN+FeO; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mellanox.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751478AbeEVPAb (ORCPT + 99 others); Tue, 22 May 2018 11:00:31 -0400 Received: from mail-eopbgr30049.outbound.protection.outlook.com ([40.107.3.49]:20992 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751236AbeEVPAW (ORCPT ); Tue, 22 May 2018 11:00:22 -0400 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=zm3RU9ZtwFiGs+wFgor/n5Pb9Uc1NGnjR5azMA2QYZY=; b=oCcN+FeO8ODIwtk2Kf8h+udDebE3PFgEdATtpnN2E2rCPXiZdfvPhUrFIT44w5lvTYCQxblqtZNXxbRvLqmqi/6jkIgmTk3xjI5Kl4vwIYKFV6PZ6JkoTvBQs77DRVZJqrt7r4xeG0LfbTFKG1odqhPx4kWplLCHPVkF8obkWdU= Received: from AM5PR0501MB2449.eurprd05.prod.outlook.com (10.169.149.151) by AM5PR0501MB2436.eurprd05.prod.outlook.com (10.169.149.150) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.776.16; Tue, 22 May 2018 15:00:19 +0000 Received: from AM5PR0501MB2449.eurprd05.prod.outlook.com ([fe80::e878:c2ac:dff3:1d44]) by AM5PR0501MB2449.eurprd05.prod.outlook.com ([fe80::e878:c2ac:dff3:1d44%6]) with mapi id 15.20.0797.011; Tue, 22 May 2018 15:00:19 +0000 From: Oleksandr Shamray To: Andy Shevchenko CC: Greg Kroah-Hartman , Arnd Bergmann , Linux Kernel Mailing List , linux-arm Mailing List , devicetree , "openbmc@lists.ozlabs.org" , Joel Stanley , =?utf-8?B?SmnFmcOtIFDDrXJrbw==?= , Tobias Klauser , "open list:SERIAL DRIVERS" , Vadim Pasternak , system-sw-low-level , Rob Herring , "openocd-devel-owner@lists.sourceforge.net" , "linux-api@vger.kernel.org" , "David S. Miller" , "Mauro Carvalho Chehab" , Jiri Pirko Subject: RE: [patch v21 1/4] drivers: jtag: Add JTAG core driver Thread-Topic: [patch v21 1/4] drivers: jtag: Add JTAG core driver Thread-Index: AQHT7Fg4JVUxm4yS/U6o5SZv4NfOXaQxTLeAgAp9ZqA= Date: Tue, 22 May 2018 15:00:19 +0000 Message-ID: References: <1526394095-5069-1-git-send-email-oleksandrs@mellanox.com> <1526394095-5069-2-git-send-email-oleksandrs@mellanox.com> In-Reply-To: Accept-Language: en-US, uk-UA Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=oleksandrs@mellanox.com; x-originating-ip: [79.135.198.29] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;AM5PR0501MB2436;7:9k7dObWRiNmifnTWUzBkjOq73RfxKkiVInwdGUPMSo2VgNcapAHB+3VCcBdxUsTT0jVDV+DG52XZdcuUEDZ8vcvbRLlHRJWwmUd3ib3fLHxoTPtEv7mQOppAiURXXnKPO3yvJ7E/zfLsPAYX+5jdFDRKAklnv6ycAs2WQYSRPwC5t5zM0Zi98GS5W7jxYOGv73V2mc/U+BOYjaWm80NmO/sU3zwBXh8V6nVdIQ04JtZ0sYrn1eIb62uzU0TV/y0w x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(5600026)(48565401081)(2017052603328)(7153060)(7193020);SRVR:AM5PR0501MB2436; x-ms-traffictypediagnostic: AM5PR0501MB2436: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(143289334528602)(9452136761055)(65623756079841)(85827821059158)(258649278758335)(42262312472803)(157189615257929); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(10201501046)(3231254)(944501410)(52105095)(93006095)(93001095)(3002001)(6055026)(149027)(150027)(6041310)(20161123560045)(20161123562045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(6072148)(201708071742011)(7699016);SRVR:AM5PR0501MB2436;BCL:0;PCL:0;RULEID:;SRVR:AM5PR0501MB2436; x-forefront-prvs: 0680FADD48 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(39860400002)(366004)(396003)(39380400002)(346002)(376002)(13464003)(199004)(189003)(55885003)(2900100001)(5250100002)(6506007)(86362001)(305945005)(54906003)(55016002)(102836004)(7736002)(14454004)(76176011)(74316002)(6246003)(68736007)(66066001)(4326008)(7696005)(8936002)(486006)(25786009)(8676002)(11346002)(97736004)(39060400002)(81156014)(26005)(81166006)(446003)(53546011)(107886003)(476003)(105586002)(106356001)(9686003)(186003)(3660700001)(6916009)(229853002)(316002)(3280700002)(3846002)(33656002)(6116002)(7416002)(2906002)(99286004)(59450400001)(53936002)(5660300001)(6436002)(478600001);DIR:OUT;SFP:1101;SCL:1;SRVR:AM5PR0501MB2436;H:AM5PR0501MB2449.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: jgMShw2ESGRmU3VVw1+QDsQiekxVUGQRunmSRncY+mIy2jiRELDnvOdp4H54/OXfa326J2S1ysF+oZrQ9QHHMvBoGwsnTdqCPuQKnXDvQ0svDcq16oaT3eyZSmGfmb6LjiQLv+r4k/SEYMYhV3tMjDu+3dKIdsspftd0dUr45Vdq+e4jzYqzknuqb6UwZNjk 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: 35411cd7-4d5c-461d-ca0a-08d5bff4bc3d X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 35411cd7-4d5c-461d-ca0a-08d5bff4bc3d X-MS-Exchange-CrossTenant-originalarrivaltime: 22 May 2018 15:00:19.2343 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0501MB2436 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGkgQW5keS4gDQpUaGFua3MgZm9yIHJldmlldy4NCg0KUGxlYXNlIHJlYWQgbXkgYW5zd2VycyBp bmxpbmUuDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQW5keSBTaGV2 Y2hlbmtvIFttYWlsdG86YW5keS5zaGV2Y2hlbmtvQGdtYWlsLmNvbV0NCj4gU2VudDogMTYg0LzQ sNGPIDIwMTgg0LMuIDA6MjINCj4gVG86IE9sZWtzYW5kciBTaGFtcmF5IDxvbGVrc2FuZHJzQG1l bGxhbm94LmNvbT4NCj4gQ2M6IEdyZWcgS3JvYWgtSGFydG1hbiA8Z3JlZ2toQGxpbnV4Zm91bmRh dGlvbi5vcmc+OyBBcm5kIEJlcmdtYW5uIA0KPiA8YXJuZEBhcm5kYi5kZT47IExpbnV4IEtlcm5l bCBNYWlsaW5nIExpc3QgDQo+IDxsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnPjsgbGludXgt YXJtIE1haWxpbmcgTGlzdCANCj4gPGxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9y Zz47IGRldmljZXRyZWUgDQo+IDxkZXZpY2V0cmVlQHZnZXIua2VybmVsLm9yZz47IG9wZW5ibWNA bGlzdHMub3psYWJzLm9yZzsgSm9lbCBTdGFubGV5IA0KPiA8am9lbEBqbXMuaWQuYXU+OyBKacWZ w60gUMOtcmtvIDxqaXJpQHJlc251bGxpLnVzPjsgVG9iaWFzIEtsYXVzZXIgDQo+IDx0a2xhdXNl ckBkaXN0YW56LmNoPjsgb3BlbiBsaXN0OlNFUklBTCBEUklWRVJTIDxsaW51eC0gDQo+IHNlcmlh bEB2Z2VyLmtlcm5lbC5vcmc+OyBWYWRpbSBQYXN0ZXJuYWsgPHZhZGltcEBtZWxsYW5veC5jb20+ OyANCj4gc3lzdGVtLXN3LWxvdy1sZXZlbCA8c3lzdGVtLXN3LWxvdy1sZXZlbEBtZWxsYW5veC5j b20+OyBSb2IgSGVycmluZyANCj4gPHJvYmgrZHRAa2VybmVsLm9yZz47IG9wZW5vY2QtZGV2ZWwt b3duZXJAbGlzdHMuc291cmNlZm9yZ2UubmV0OyANCj4gbGludXgtIGFwaUB2Z2VyLmtlcm5lbC5v cmc7IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD47IA0KPiBNYXVybyBDYXJ2 YWxobyBDaGVoYWIgPG1jaGVoYWJAa2VybmVsLm9yZz47IEppcmkgUGlya28gDQo+IDxqaXJpQG1l bGxhbm94LmNvbT4NCj4gU3ViamVjdDogUmU6IFtwYXRjaCB2MjEgMS80XSBkcml2ZXJzOiBqdGFn OiBBZGQgSlRBRyBjb3JlIGRyaXZlcg0KPiANCj4gT24gVHVlLCBNYXkgMTUsIDIwMTggYXQgNToy MSBQTSwgT2xla3NhbmRyIFNoYW1yYXkgDQo+IDxvbGVrc2FuZHJzQG1lbGxhbm94LmNvbT4gd3Jv dGU6DQo+ID4gSW5pdGlhbCBwYXRjaCBmb3IgSlRBRyBkcml2ZXINCj4gPiBKVEFHIGNsYXNzIGRy aXZlciBwcm92aWRlIGluZnJhc3RydWN0dXJlIHRvIHN1cHBvcnQgDQo+ID4gaGFyZHdhcmUvc29m dHdhcmUgSlRBRyBwbGF0Zm9ybSBkcml2ZXJzLiBJdCBwcm92aWRlIHVzZXIgbGF5ZXIgQVBJIA0K PiA+IGludGVyZmFjZSBmb3IgZmxhc2hpbmcgYW5kIGRlYnVnZ2luZyBleHRlcm5hbCBkZXZpY2Vz IHdoaWNoIGVxdWlwcGVkIA0KPiA+IHdpdGggSlRBRyBpbnRlcmZhY2UgdXNpbmcgc3RhbmRhcmQg dHJhbnNhY3Rpb25zLg0KPiA+DQo+ID4gRHJpdmVyIGV4cG9zZXMgc2V0IG9mIElPQ1RMIHRvIHVz ZXIgc3BhY2UgZm9yOg0KPiA+IC0gWEZFUjoNCj4gPiAtIFNJUiAoU2NhbiBJbnN0cnVjdGlvbiBS ZWdpc3RlciwgSUVFRSAxMTQ5LjEgRGF0YSBSZWdpc3RlciBzY2FuKTsNCj4gPiAtIFNEUiAoU2Nh biBEYXRhIFJlZ2lzdGVyLCBJRUVFIDExNDkuMSBJbnN0cnVjdGlvbiBSZWdpc3RlciBzY2FuKTsN Cj4gPiAtIFJVTlRFU1QgKEZvcmNlcyB0aGUgSUVFRSAxMTQ5LjEgYnVzIHRvIGEgcnVuIHN0YXRl IGZvciBhIHNwZWNpZmllZA0KPiA+ICAgbnVtYmVyIG9mIGNsb2NrcykuDQo+ID4gLSBTSU9DRlJF US9HSU9DRlJFUSBmb3Igc2V0dGluZyBhbmQgcmVhZGluZyBKVEFHIGZyZXF1ZW5jeS4NCj4gPg0K PiA+IERyaXZlciBjb3JlIHByb3ZpZGVzIHNldCBvZiBpbnRlcm5hbCBBUElzIGZvciBhbGxvY2F0 aW9uIGFuZA0KPiA+IHJlZ2lzdHJhdGlvbjoNCj4gPiAtIGp0YWdfcmVnaXN0ZXI7DQo+ID4gLSBq dGFnX3VucmVnaXN0ZXI7DQo+ID4gLSBqdGFnX2FsbG9jOw0KPiA+IC0ganRhZ19mcmVlOw0KPiA+ DQo+ID4gUGxhdGZvcm0gZHJpdmVyIG9uIHJlZ2lzdHJhdGlvbiB3aXRoIGp0YWctY29yZSBjcmVh dGVzIHRoZSBuZXh0IA0KPiA+IGVudHJ5IGluIGRldiBmb2xkZXI6DQo+ID4gL2Rldi9qdGFnWA0K PiANCj4gPiAgMHhCMCAgIGFsbCAgICAgUkFUSU8gZGV2aWNlcyAgICAgICAgICAgaW4gZGV2ZWxv cG1lbnQ6DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYWls dG86dmdvQHJhdGlvLmRlPg0KPiA+ICAweEIxICAgMDAtMUYgICBQUFBvWCAgICAgICAgICAgICAg ICAgICA8bWFpbHRvOm1vc3Ryb3dzQHN0eXgudXdhdGVybG9vLmNhPg0KPiA+ICsweEIyICAgMDAt MGYgICBsaW51eC9qdGFnLmggICAgICAgICAgICBKVEFHIGRyaXZlcg0KPiA+ICsNCj4gPiArPG1h aWx0bzpvbGVrc2FuZHJzQG1lbGxhbm94LmNvbT4NCj4gDQo+IENvbnNpZGVyIHRvIHByZXNlcnZl IHN0eWxlICh1cHBlciB2cy4gbG93ZXIpLg0KDQpKVEFHIGluIGNvZGUgaXMgbG93ZXIgKGp0YWcp IGNhbmUgYnV0IGluIGRlc2NyaXB0aW9ucyBhbmQgbm90ZXMgaXQgIGlzIHVwcGVyIChKVEFHKS4N CkluIGFsbCBwbGFjZXMgd2hpY2ggZG8gbm90IGNvcnJlc3BvbmQgdG8gdGhpcyBJIHdpbGwgZml4 LiANCg0KPiANCj4gPiArICAgICAgICAgVGhpcyBwcm92aWRlcyBiYXNpYyBjb3JlIGZ1bmN0aW9u YWxpdHkgc3VwcG9ydCBmb3IgSlRBRyBjbGFzcyBkZXZpY2VzLg0KPiA+ICsgICAgICAgICBIYXJk d2FyZSB0aGF0IGlzIGVxdWlwcGVkIHdpdGggYSBKVEFHIG1pY3JvY29udHJvbGxlciBjYW4gYmUN Cj4gPiArICAgICAgICAgc3VwcG9ydGVkIGJ5IHVzaW5nIHRoaXMgZHJpdmVyJ3MgaW50ZXJmYWNl cy4NCj4gPiArICAgICAgICAgVGhpcyBkcml2ZXIgZXhwb3NlcyBhIHNldCBvZiBJT0NUTHMgdG8g dGhlIHVzZXIgc3BhY2UgZm9yDQo+ID4gKyAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZHM6 DQo+ID4gKyAgICAgICAgIFNEUjogKFNjYW4gRGF0YSBSZWdpc3RlcikgUGVyZm9ybXMgYW4gSUVF RSAxMTQ5LjEgRGF0YSBSZWdpc3RlciBzY2FuDQo+ID4gKyAgICAgICAgIFNJUjogKFNjYW4gSW5z dHJ1Y3Rpb24gUmVnaXN0ZXIpIFBlcmZvcm1zIGFuIElFRUUgMTE0OS4xIEluc3RydWN0aW9uDQo+ ID4gKyAgICAgICAgIFJlZ2lzdGVyIHNjYW4uDQo+ID4gKyAgICAgICAgIFJVTlRFU1Q6IEZvcmNl cyB0aGUgSUVFRSAxMTQ5LjEgYnVzIHRvIGEgcnVuIHN0YXRlIGZvciBhIHNwZWNpZmllZA0KPiA+ ICsgICAgICAgICBudW1iZXIgb2YgY2xvY2tzIG9yIGEgc3BlY2lmaWVkIHRpbWUgcGVyaW9kLg0K PiANCj4gU29tZXRoaW5nIGZlZWxzIHdyb25nIHdpdGggZm9ybWF0dGluZyBoZXJlLg0KPiANCg0K V2lsbCBmaXgNCg0KPiA+ICsjZGVmaW5lIE1BWF9KVEFHX05BTUVfTEVOIChzaXplb2YoImp0YWci KSArIDUpDQo+IA0KPiBJbnRlcmVzdGluZyBkZWZpbml0aW9uLiBXaHkgbm90IHRvIHNldCB0byAx MCBleHBsaWNpdGx5PyBBbmQgd2h5IDEwPw0KPiAoMTYgc291bmRzIGJldHRlcikNCj4gDQo1IC0g aXMgYSBtYXggbGVuIG9mIEpUQUcgZGV2aWNlIGlkIGluIGRldmljZSBuYW1lLiBJIHdpbGwgYWRk IGRlZmluZSB0byBpdC4NCg0KSW4gZ2VuZXJhbCBJIGRvbid0IHNlZSB0aGUgY2FzZSBmb3IgdGhl IHN5c3RlbSB3aXRoIGh1bmRyZWRzIEpUQUcgaW50ZXJmYWNlcy4NCkkgd2lsbCBsaW1pdCBtYXhp bXVtIGp0YWcgbWFzdGVyIHRvIDI1NSBkZXZpY2VzIGFuZCBjaGFuZ2UgIGlkIGxlbiB0byAzDQoN CiNkZWZpbmUgTUFYX0pUQUdfSURfU1RSX0xFTiA1DQojZGVmaW5lIE1BWF9KVEFHX05BTUVfTEVO IChzaXplb2YoImp0YWciKSArIE1BWF9KVEFHX0lEX1NUUl9MRU4pDQoNCj4gPiArc3RydWN0IGp0 YWcgew0KPiA+ICsgICAgICAgc3RydWN0IG1pc2NkZXZpY2UgbWlzY2RldjsNCj4gDQo+ID4gKyAg ICAgICBzdHJ1Y3QgZGV2aWNlICpkZXY7DQo+IA0KPiBEb2Vzbid0IG1pc2NkZXYgcGFyZW50IGNv bnRhaW4gZXhhY3RseSB0aGlzIG9uZT8NCg0KWWVzLiANCldpbGwgZml4Lg0KDQo+IA0KPiA+ICsg ICAgICAgY29uc3Qgc3RydWN0IGp0YWdfb3BzICpvcHM7DQo+ID4gKyAgICAgICBpbnQgaWQ7DQo+ ID4gKyAgICAgICBib29sIG9wZW5lZDsNCj4gPiArICAgICAgIHN0cnVjdCBtdXRleCBvcGVuX2xv Y2s7DQo+ID4gKyAgICAgICB1bnNpZ25lZCBsb25nIHByaXZbMF07DQo+ID4gK307DQo+IA0KPiA+ ICsgICAgICAgICAgICAgICBlcnIgPSBjb3B5X3RvX3VzZXIodTY0X3RvX3VzZXJfcHRyKHhmZXIu dGRpbyksDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCAqKSh4 ZmVyX2RhdGEpLCBkYXRhX3NpemUpOw0KPiANCj4gUmVkdW5kYW50IHBhcmVucyBpbiBvbmUgY2Fz ZS4gQ2hlY2sgdGhlIHJlc3Qgc2ltaWxhciBwbGFjZXMuDQo+IA0KDQpZZXMuDQoNCj4gPiArc3Rh dGljIGludCBqdGFnX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUp IHsNCj4gDQo+ID4gKyAgICAgICBzdHJ1Y3QganRhZyAqanRhZyA9IGNvbnRhaW5lcl9vZihmaWxl LT5wcml2YXRlX2RhdGEsIHN0cnVjdCBqdGFnLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbWlzY2Rldik7DQo+IA0KPiBJIHdvdWxkIGRvbid0IGNhcmUgYWJv dXQgbGVuZ3RoIGFuZCBwdXQgaXQgb24gb25lIGxpbmUuDQo+IA0KDQpCdXQgZm9sbG93aW5nIHRv IExJTlVYIGtlcm5lbCBzdHlsZSwgaXQgc2hvdWxkIGJlIG5vIGxvbmdlciB0aGFuIDgwIHN5bWJv bHMuIA0KSXQgd2lsbCBub3QgcGFzcyBieSAgLi9zY3JpcHRzL2NoZWNrcGF0Y2gucGwNCg0KV2ls bCBpdCBiZSBPSyB0byBzZW5kIGEgcGF0Y2ggd2hpY2ggZmFpbGVkIDgwIHN5bWJvbHMgbGltaXRh dGlvbiBjaGVjaz8NCg0KPiA+ICsgICAgICAgaWYgKGp0YWctPm9wZW5lZCkgew0KPiA+ICsgICAg ICAganRhZy0+b3BlbmVkID0gdHJ1ZTsNCj4gPiArICAgICAgIGp0YWctPm9wZW5lZCA9IGZhbHNl Ow0KPiANCj4gQ2FuIGl0IGJlIG9wZW5lZCBub24gZXhjbHVzaXZlbHkgc2V2ZXJhbCB0aW1lcz8g SWYgc28sIHRoaXMgbmVlZHMgdG8gDQo+IGJlIGEgcmVmIGNvdW50ZXIgaW5zdGVhZC4NCg0KSXQg Y2FuIGJlIG9wZW5lZCBvbmx5IG9uY2UuDQoNCj4gDQo+ID4gKyAgICAgICBpZiAoIW9wcy0+aWRs ZSB8fCAhb3BzLT5tb2RlX3NldCB8fCAhb3BzLT5zdGF0dXNfZ2V0IHx8ICFvcHMtPnhmZXIpDQo+ ID4gKyAgICAgICAgICAgICAgIHJldHVybiBOVUxMOw0KPiANCj4gQXJlIGFsbCBvZiB0aGVtIG1h bmRhdG9yeT8NCj4gDQoNClllcywgZXhjZXB0ICJtb2RlX3NldCINCldpbGwgcmVtb3ZlIG1vZGVf c2V0IGZyb20gY2hlY2sNCg0KPiA+ICtpbnQganRhZ19yZWdpc3RlcihzdHJ1Y3QganRhZyAqanRh ZykNCj4gDQo+IFBlcmhhcHMgZGV2bV8gdmFyaWFudC4NCg0KSnRhZyBkcml2ZXIgdXNlcyBtaXNj ZGV2aWNlIGFuZCByZWxhdGVkICBtaXNjX3JlZ2lzdGVyIGFuZCBtaXNjX2RlcmVnaXN0ZXIgDQpj YWxscyBmb3IgY3JlYXRpb24gYW5kIGRlc3RydWN0aW9uLiBUaGVyZSBpcyBubyBkZXZpY2Ugb2Jq ZWN0IHByaW9yIHRvIA0KY2FsbCB0byAgbWlzY19yZWdpc3Rlciwgd2hpY2ggY291bGQgYmUgdXNl ZCBpbiBkZXZtX2p0YWdfcmVnaXN0ZXIuDQoNCj4gDQo+ID4gKyNkZWZpbmUganRhZ191NjRfdG9f cHRyKGFyZykgKCh2b2lkICopKHVpbnRwdHJfdClhcmcpDQo+IA0KDQpSZWR1bmRhbnQuIFJlbW92 ZWQuDQoNCj4gV2hlcmUgaXMgdGhpcyB1c2VkIG9yIHN1cHBvc2VkIHRvIGJlIHVzZWQ/DQo+IA0K PiA+ICsjZGVmaW5lIEpUQUdfTUFYX1hGRVJfREFUQV9MRU4gNjU1MzUNCj4gDQo+IElzIHRoaXMg bGltaXRhdGlvbiBmcm9tIHNvbWUgc3BlYz8NCj4gT3RoZXJ3aXNlIHdoeSBub3QgdG8gYWxsb3cg NjRLPw0KPiANCg0KSXQgbm90IGxpbWl0ZWQgYnkgc3BlY2lmaWNhdGlvbi4gIA0KQnV0IHdlIGVu Zm9yY2UgYW4gdXBwZXIgYm91bmQgZm9yIHRoZSBsZW5ndGggaGVyZSwgdG8gcHJldmVudCB1c2Vy cyBmcm9tIGRyYWluaW5nIA0Ka2VybmVsIG1lbW9yeSB3aXRoIGdpYW50IGJ1ZmZlcnMuDQpTbyBp dCB3YXMgbGltaXRlZCBieSAgc2l6ZSBvZiB1bnNpZ25lZCBzaG9ydCBpbnQgKDY1NTM1KQ0KDQo+ ID4gKy8qKg0KPiA+ICsgKiBzdHJ1Y3QganRhZ19vcHMgLSBjYWxsYmFja3MgZm9yIGp0YWcgY29u dHJvbCBmdW5jdGlvbnM6DQo+ID4gKyAqDQo+ID4gKyAqIEBmcmVxX2dldDogZ2V0IGZyZXF1ZW5j eSBmdW5jdGlvbi4gRmlsbGVkIGJ5IGRldmljZSBkcml2ZXINCj4gPiArICogQGZyZXFfc2V0OiBz ZXQgZnJlcXVlbmN5IGZ1bmN0aW9uLiBGaWxsZWQgYnkgZGV2aWNlIGRyaXZlcg0KPiA+ICsgKiBA c3RhdHVzX2dldDogc2V0IHN0YXR1cyBmdW5jdGlvbi4gRmlsbGVkIGJ5IGRldmljZSBkcml2ZXIN Cj4gPiArICogQGlkbGU6IHNldCBKVEFHIHRvIGlkbGUgc3RhdGUgZnVuY3Rpb24uIEZpbGxlZCBi eSBkZXZpY2UgZHJpdmVyDQo+ID4gKyAqIEB4ZmVyOiBzZW5kIEpUQUcgeGZlciBmdW5jdGlvbi4g RmlsbGVkIGJ5IGRldmljZSBkcml2ZXIgICovDQo+IA0KPiBQZXJoYXBzIHlvdSBuZWVkIHRvIGRl c2NyaWJlIHdoaWNoIG9mIHRoZW0gYXJlIF9yZWFsbHlfIG1hbmRhdG9yeSBhbmQgDQo+IHdoaWNo IGFyZSBvcHRpb25hbC4NCj4gDQoNCk9rDQoNCj4gLS0NCj4gV2l0aCBCZXN0IFJlZ2FyZHMsDQo+ IEFuZHkgU2hldmNoZW5rbw0KDQpCZXN0IFJlZ2FyZHMsDQpPbGVrc2FuZHIgU2hhbXJheQ0KDQo=