Received: by 2002:a25:7ec1:0:0:0:0:0 with SMTP id z184csp3976789ybc; Thu, 14 Nov 2019 18:39:31 -0800 (PST) X-Google-Smtp-Source: APXvYqxBkWxohKlbfw8bnutAm0fHkNKHqmVlcJ8TG0NFZQJljyHGBMPyuHWN8NK4a3wZbvcdrXYJ X-Received: by 2002:a17:906:4697:: with SMTP id a23mr10093092ejr.322.1573785571149; Thu, 14 Nov 2019 18:39:31 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1573785571; cv=pass; d=google.com; s=arc-20160816; b=SqhkRorfpoaTzfDKt2WWFRxoIDC50HhKEIqiP8YaK+aGejM5hRUypL/AcYSVvN/hh9 D4gqwimvPoLP/Zn2SeAR1ym0Lea70q9K3kVHX/M4ITQiGR3z2L0Dlb9LTf26lnHUK3kw hGY52b5qezCl6XVQTdDbDwB9mTzDC/X6MPIjnQ2WRnjNaEUcEacEIFtCnaJXmdrI6xmQ clyS3Xq4s8bVpKCOSfnYHasdVLGwlD6iYIO1wPmEnTA9G2HCAjjwavo0IakGS8e6wTWU Scx/ZR7tx8dW6vp1PJFvRPeLPIOrzA7duYjl0yStNlGk67ZZOD5WJZTX6/REcfKGuH7o ty8A== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=2aW9lIxRESwQOQU6wJcUfVFCFd5COl/g/DpOWJyscO4=; b=dema72bB+lguQfHXjMzmzASqlVAGZvmfTXyasQDFvLUusfDGVTSbcLVIrc2u5UcJZO kJ3N0LIdCQ+Rb/ScAzUsJidv0iUSZqxxFVLWb6DNAusdGQz5Fbfw+YpmFRoLMib1pY13 +8yovIsyw3fTeTde5mteBUrb43VlLkiCrA3a8/zig5vFt9wcCZnv+97Ul0CoHwnm9dQy Iq/rTj+6W9HV9cyMjAgTKFbuDPdoW/Ffag8sglK7xPOYa9WMJVkHpjvPFf6WCq8H9N7a 1SKkA3MuEoh0v4rDIPDMlNDcHOlZZ3t8oAuhUwyRPIIUTxYsy/RedBfS0PZMlJDiTYkw fYtQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=YJ64W0x4; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); 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=nxp.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t52si5626796edd.3.2019.11.14.18.39.05; Thu, 14 Nov 2019 18:39:31 -0800 (PST) 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=@nxp.com header.s=selector2 header.b=YJ64W0x4; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); 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=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727041AbfKOCiI (ORCPT + 99 others); Thu, 14 Nov 2019 21:38:08 -0500 Received: from mail-eopbgr30067.outbound.protection.outlook.com ([40.107.3.67]:34005 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726949AbfKOCiH (ORCPT ); Thu, 14 Nov 2019 21:38:07 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BAjauVDXdTKKwyaV69imrOhUX7IQMzDud9xZYAfFlI+cWlRzhdwjvITJyMkOTGPWc5scvLcGUWxhCzdxA4G/qMQcMJ641zwaVACwWzVoVdWDvybrVPwS+DnrWhwl2X1Ww8cZiJBvtDpdmKisvQAwblA9Vpjcd/vWhsNEJ3MaIxeqyLGnmgHGcSPlWl+pN2bML3LQ48jz2+wr3koskwqlYNd4u+6qNIVmdMGYl3np6Vv44zypGu/k/pzc9Gmkz9DRgorTp2GhalUACTGkMxmIlJEd7ZksiB3lWtMrlIPjaadFzQrxHApXNd5grz2BV56ockp7BX2rtirdFV3ilX5cFQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2aW9lIxRESwQOQU6wJcUfVFCFd5COl/g/DpOWJyscO4=; b=gVtIGklagGBleujs9fEmIkJm2VGQeqFcOzzwNtPhvis2RFtuS7QoHpI14uc6q1pmicq6iFnGyTL+Am89FmunVfKEeAnjEuiqEh3JUSOdjF+TD7nnG16XTG76Aj8IFxtP3ToVg5b0Ffg0IFDxP+5dhm/7PWY5r+ZDQLgzdghJmXgghixjKxFULxtW1pLW0403enUQjmF80UfyigaKD28xAFgYhTrbNJiKcRzSSTHzPzU8tyc57h986zk1tQdyrQkpZ2RVgl3NAA/SoM4VXl4J7dPESNp1QF1gLslkO/W/39aakSAty0A1sKJFcYqbGYkiq8c+IPMbfn1RdRUMkZS+5w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2aW9lIxRESwQOQU6wJcUfVFCFd5COl/g/DpOWJyscO4=; b=YJ64W0x4L79NYg1hXFJYhhqMpuB4vRoSy25NY924Xn2oocfAwd2vRhOFaggaHX1uSv6kxVezs/phbZg8anjiIUF/3NV3Ns6/hHVRYqhh2fF5DgatWnCPt0uSoUVh6OqTTWJQO4nfZMGFbSXNwZtsM3g+mL7TooufdtxN9Da2DHg= Received: from VE1PR04MB6496.eurprd04.prod.outlook.com (20.179.232.221) by VE1PR04MB6496.eurprd04.prod.outlook.com (20.179.232.221) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2451.27; Fri, 15 Nov 2019 02:37:58 +0000 Received: from VE1PR04MB6496.eurprd04.prod.outlook.com ([fe80::7c6e:3d38:6630:5515]) by VE1PR04MB6496.eurprd04.prod.outlook.com ([fe80::7c6e:3d38:6630:5515%4]) with mapi id 15.20.2451.027; Fri, 15 Nov 2019 02:37:58 +0000 From: Po Liu To: Ivan Khoronzhuk CC: Claudiu Manoil , "davem@davemloft.net" , "linux-kernel@vger.kernel.org" , "netdev@vger.kernel.org" , "vinicius.gomes@intel.com" , Vladimir Oltean , Alexandru Marginean , Xiaoliang Yang , Roy Zang , Mingkai Hu , Jerry Huang , Leo Li Subject: RE: [EXT] Re: [v3,net-next, 1/2] enetc: Configure the Time-Aware Scheduler via tc-taprio offload Thread-Topic: [EXT] Re: [v3,net-next, 1/2] enetc: Configure the Time-Aware Scheduler via tc-taprio offload Thread-Index: AQHVmqodI6VvPNZtW0WlYIXrm4gE3KeLA7QAgACBQYA= Date: Fri, 15 Nov 2019 02:37:58 +0000 Message-ID: References: <20191112082823.28998-2-Po.Liu@nxp.com> <20191114045833.18064-1-Po.Liu@nxp.com> <20191114185125.GA2261@khorivan> In-Reply-To: <20191114185125.GA2261@khorivan> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=po.liu@nxp.com; x-originating-ip: [119.31.174.73] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 20d223f2-4b1e-4a3f-d4c6-08d76974d3f8 x-ms-traffictypediagnostic: VE1PR04MB6496:|VE1PR04MB6496: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7691; x-forefront-prvs: 02229A4115 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(4636009)(39860400002)(136003)(366004)(396003)(376002)(346002)(199004)(13464003)(189003)(5660300002)(186003)(52536014)(33656002)(7696005)(76176011)(6916009)(30864003)(102836004)(66066001)(76116006)(53546011)(6506007)(6246003)(8676002)(99286004)(26005)(8936002)(6436002)(9686003)(86362001)(55016002)(316002)(229853002)(476003)(54906003)(486006)(11346002)(4326008)(44832011)(81166006)(81156014)(446003)(3846002)(478600001)(6116002)(14444005)(14454004)(7736002)(71190400001)(71200400001)(25786009)(305945005)(66946007)(256004)(66446008)(64756008)(66556008)(66476007)(74316002)(2906002);DIR:OUT;SFP:1101;SCL:1;SRVR:VE1PR04MB6496;H:VE1PR04MB6496.eurprd04.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: smxoDKmua/Zyxp4ADQWpQBo3/3LtETI67J3OXV1/GPh4RRzPtMK1+Z/8Usq6oMeTzNfykPpfJ1tBQ44sd1xatYTm5IbTFGliuC8N0wonldEjJxfo/iyvrEehwVYUr2y7F74flWTqAUGEIN3Diq8z7TYKA1LXbUyfkX/IWumtw8q8JZ1HJAEBcVLRmcRsdyMhFR7CjJMMrMbvlq+GlleURRITAU5bdOcVa4ghA0ilMPg/XeteCTk1i6v3GNYNPOGHKX56QoDFhiOPdaGoj1XFmEYo0fJbP/WTNuFkFctIuR2yq60UWNBs1FZU6sOX0V0H9flW0DdOSITW7cY7mYkOLCsB2cpxEKbukl8UFnEQnURqLoqLGNZdXbDCxkkcr/zDyV+PGhjAvJfunhm/99cfHQLfcWwdrF3xVo0jPzOO4CNkHuEzKBDXG9zfe7DYE/tC Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 20d223f2-4b1e-4a3f-d4c6-08d76974d3f8 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Nov 2019 02:37:58.7658 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: CWtSFJw1zN4ySCU3DSeQsQYK645by8m4ICuTqCA3rWuQJJLb0hSIKzZwFqJrOM5+ X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6496 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org DQoNCg0KQnIsDQpQbyBMaXUNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9t OiBJdmFuIEtob3JvbnpodWsgPGl2YW4ua2hvcm9uemh1a0BsaW5hcm8ub3JnPg0KPiBTZW50OiAy MDE5xOoxMdTCMTXI1SAyOjUxDQo+IFRvOiBQbyBMaXUgPHBvLmxpdUBueHAuY29tPg0KPiBDYzog Q2xhdWRpdSBNYW5vaWwgPGNsYXVkaXUubWFub2lsQG54cC5jb20+OyBkYXZlbUBkYXZlbWxvZnQu bmV0OyBsaW51eC0NCj4ga2VybmVsQHZnZXIua2VybmVsLm9yZzsgbmV0ZGV2QHZnZXIua2VybmVs Lm9yZzsgdmluaWNpdXMuZ29tZXNAaW50ZWwuY29tOw0KPiBWbGFkaW1pciBPbHRlYW4gPHZsYWRp bWlyLm9sdGVhbkBueHAuY29tPjsgQWxleGFuZHJ1IE1hcmdpbmVhbg0KPiA8YWxleGFuZHJ1Lm1h cmdpbmVhbkBueHAuY29tPjsgWGlhb2xpYW5nIFlhbmcNCj4gPHhpYW9saWFuZy55YW5nXzFAbnhw LmNvbT47IFJveSBaYW5nIDxyb3kuemFuZ0BueHAuY29tPjsgTWluZ2thaSBIdQ0KPiA8bWluZ2th aS5odUBueHAuY29tPjsgSmVycnkgSHVhbmcgPGplcnJ5Lmh1YW5nQG54cC5jb20+OyBMZW8gTGkN Cj4gPGxlb3lhbmcubGlAbnhwLmNvbT4NCj4gU3ViamVjdDogW0VYVF0gUmU6IFt2MyxuZXQtbmV4 dCwgMS8yXSBlbmV0YzogQ29uZmlndXJlIHRoZSBUaW1lLUF3YXJlIFNjaGVkdWxlcg0KPiB2aWEg dGMtdGFwcmlvIG9mZmxvYWQNCj4gDQo+IENhdXRpb246IEVYVCBFbWFpbA0KPiANCj4gT24gVGh1 LCBOb3YgMTQsIDIwMTkgYXQgMDU6MTI6MzBBTSArMDAwMCwgUG8gTGl1IHdyb3RlOg0KPiA+RU5F VEMgc3VwcG9ydHMgaW4gaGFyZHdhcmUgZm9yIHRpbWUtYmFzZWQgZWdyZXNzIHNoYXBpbmcgYWNj b3JkaW5nIHRvDQo+ID5JRUVFIDgwMi4xUWJ2LiBUaGlzIHBhdGNoIGltcGxlbWVudCB0aGUgUWJ2 IGVuYWJsZW1lbnQgYnkgdGhlIGhhcmR3YXJlDQo+ID5vZmZsb2FkIG1ldGhvZCBxZGlzYyB0Yy10 YXByaW8gbWV0aG9kLg0KPiA+QWxzbyB1cGRhdGUgY2JkciB3cml0ZWJhY2sgdG8gdXAgbGV2ZWwg c2luY2UgY29udHJvbCBiZCByaW5nIG1heQ0KPiA+d3JpdGViYWNrIGRhdGEgdG8gY29udHJvbCBi ZCByaW5nLg0KPiA+DQo+ID5TaWduZWQtb2ZmLWJ5OiBQbyBMaXUgPFBvLkxpdUBueHAuY29tPg0K PiA+U2lnbmVkLW9mZi1ieTogVmxhZGltaXIgT2x0ZWFuIDx2bGFkaW1pci5vbHRlYW5AbnhwLmNv bT4NCj4gPlNpZ25lZC1vZmYtYnk6IENsYXVkaXUgTWFub2lsIDxjbGF1ZGl1Lm1hbm9pbEBueHAu Y29tPg0KPiA+LS0tDQo+ID5jaGFuZ2VzOg0KPiA+djI6DQo+ID4tIGludHJvZHVjZSBhIGxvY2Fs IGRlZmluZSBDT05GSUdfRlNMX0VORVRDX1FPUyB0byBmaXggdGhlIHZhcmlvdXMNCj4gPiAgY29u ZmlndXJhdGlvbnMgd2lsbCByZXN1bHQgaW4gbGluayBlcnJvcnMuDQo+ID4gIFNpbmNlIHRoZSBD T05GSUdfTkVUX1NDSF9UQVBSSU8gZGVwZW5kcyBvbiBtYW55IFFvcyBjb25maWdzLiBOb3QNCj4g PiAgdG8gdXNlIGl0IGRpcmVjdGx5IGluIGRyaXZlci4gQWRkIGl0IHRvIENPTkZJR19GU0xfRU5F VENfUU9TIGRlcGVuZHMNCj4gPiAgb24gbGlzdCwgc28gb25seSBDT05GSUdfTkVUX1NDSF9UQVBS SU8gZW5hYmxlZCwgdXNlciBjYW4gZW5hYmxlIHRoaXMNCj4gPiAgdHNuIGZlYXR1cmUsIG9yIGVs c2UsIHJldHVybiBub3Qgc3VwcG9ydC4NCj4gPnYzOg0KPiA+LSBmaXggdGhlIGNvbXBpbGluZyB2 ZiBtb2R1bGUgZmFpbHVyZSBpc3N1ZToNCj4gPiAgRVJST1I6ICJlbmV0Y19zY2hlZF9zcGVlZF9z ZXQiIFtkcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvZnNsLQ0KPiBlbmV0Yy12 Zi5rb10gdW5kZWZpbmVkIQ0KPiA+ICBFUlJPUjogImVuZXRjX3NldHVwX3RjX3RhcHJpbyIgW2Ry aXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9mc2wtDQo+IGVuZXRjLXZmLmtvXSB1 bmRlZmluZWQhDQo+ID4tIHJlbW92ZSBkZWZpbmVzIG5vdCB1c2VkIGluIHRoaXMgcGF0Y2gNCj4g Pi0gZml4IGhhcmR3YXJlIGVuZGlhbiBpc3N1ZQ0KPiA+LSBtYWtlIHRoZSBxYnYgc2V0IGNvZGUg bW9yZSBydWJ1c3Qgd2l0aCBzb21lIGVycm9yIGNvbmRpdGlvbiBtYXkgb2NjdXIuDQo+ID4NCj4g PiBkcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvS2NvbmZpZyAgfCAgMTAgKysN Cj4gPiBkcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvTWFrZWZpbGUgfCAgIDIg Kw0KPiA+IGRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9lbmV0Yy5jICB8ICAx OSArKy0NCj4gPiBkcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvZW5ldGMuaCAg fCAgIDcgKw0KPiA+IC4uLi9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX2NiZHIu YyB8ICAgNSArLQ0KPiA+IC4uLi9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX2h3 LmggICB8ICA4NCArKysrKysrKy0tLQ0KPiA+IC4uLi9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2Vu ZXRjL2VuZXRjX3Fvcy5jICB8IDEzNCArKysrKysrKysrKysrKysrKysNCj4gPiA3IGZpbGVzIGNo YW5nZWQsIDIzOSBpbnNlcnRpb25zKCspLCAyMiBkZWxldGlvbnMoLSkgY3JlYXRlIG1vZGUgMTAw NjQ0DQo+ID4gZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX3Fvcy5j DQo+ID4NCj4gPmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5l dGMvS2NvbmZpZw0KPiA+Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvS2Nv bmZpZw0KPiA+aW5kZXggYzIxOTU4N2JkMzM0Li40OTE2NTlmZTNlMzUgMTAwNjQ0DQo+ID4tLS0g YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvS2NvbmZpZw0KPiA+KysrIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL0tjb25maWcNCj4gPkBAIC01MCwz ICs1MCwxMyBAQCBjb25maWcgRlNMX0VORVRDX0hXX1RJTUVTVEFNUElORw0KPiA+ICAgICAgICAg YWxsb2NhdGlvbiBoYXMgbm90IGJlZW4gc3VwcG9ydGVkIGFuZCBpdCBpcyB0b28gZXhwZW5zaXZl IHRvIHVzZQ0KPiA+ICAgICAgICAgZXh0ZW5kZWQgUlggQkRzIGlmIHRpbWVzdGFtcGluZyBpcyBu b3QgdXNlZCwgdGhpcyBvcHRpb24gZW5hYmxlcw0KPiA+ICAgICAgICAgZXh0ZW5kZWQgUlggQkRz IGluIG9yZGVyIHRvIHN1cHBvcnQgaGFyZHdhcmUgdGltZXN0YW1waW5nLg0KPiA+Kw0KPiA+K2Nv bmZpZyBGU0xfRU5FVENfUU9TDQo+ID4rICAgICAgYm9vbCAiRU5FVEMgaGFyZHdhcmUgVGltZS1z ZW5zaXRpdmUgTmV0d29yayBzdXBwb3J0Ig0KPiA+KyAgICAgIGRlcGVuZHMgb24gKEZTTF9FTkVU QyB8fCBGU0xfRU5FVENfVkYpICYmIE5FVF9TQ0hfVEFQUklPDQo+ID4rICAgICAgaGVscA0KPiA+ KyAgICAgICAgVGhlcmUgYXJlIFRpbWUtU2Vuc2l0aXZlIE5ldHdvcmsoVFNOKSBjYXBhYmlsaXRp ZXMoODAyLjFRYnYvODAyLjFRY2kNCj4gPisgICAgICAgIC84MDIuMVFidSBldGMuKSBzdXBwb3J0 ZWQgYnkgRU5FVEMuIFRoZXNlIFRTTiBjYXBhYmlsaXRpZXMgY2FuIGJlIHNldA0KPiA+KyAgICAg ICAgZW5hYmxlL2Rpc2FibGUgZnJvbSB1c2VyIHNwYWNlIHZpYSBRb3MgY29tbWFuZHModGMpLiBJ biB0aGUga2VybmVsDQo+ID4rICAgICAgICBzaWRlLCBpdCBjYW4gYmUgbG9hZGVkIGJ5IFFvcyBk cml2ZXIuIEN1cnJlbnRseSwgaXQgaXMgb25seSBzdXBwb3J0DQo+ID4rICAgICAgICB0YXByaW8o ODAyLjFRYnYpLg0KPiA+ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2Fs ZS9lbmV0Yy9NYWtlZmlsZQ0KPiA+Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5l dGMvTWFrZWZpbGUNCj4gPmluZGV4IGQyMDBjMjdjM2JmNi4uZDBkYjMzZTViNmI3IDEwMDY0NA0K PiA+LS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL01ha2VmaWxlDQo+ ID4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvTWFrZWZpbGUNCj4g PkBAIC01LDkgKzUsMTEgQEAgY29tbW9uLW9ianMgOj0gZW5ldGMubyBlbmV0Y19jYmRyLm8gZW5l dGNfZXRodG9vbC5vDQo+ID4gb2JqLSQoQ09ORklHX0ZTTF9FTkVUQykgKz0gZnNsLWVuZXRjLm8g IGZzbC1lbmV0Yy15IDo9IGVuZXRjX3BmLm8NCj4gPmVuZXRjX21kaW8ubyAkKGNvbW1vbi1vYmpz KQ0KPiA+IGZzbC1lbmV0Yy0kKENPTkZJR19QQ0lfSU9WKSArPSBlbmV0Y19tc2cubw0KPiA+K2Zz bC1lbmV0Yy0kKENPTkZJR19GU0xfRU5FVENfUU9TKSArPSBlbmV0Y19xb3Mubw0KPiA+DQo+ID4g b2JqLSQoQ09ORklHX0ZTTF9FTkVUQ19WRikgKz0gZnNsLWVuZXRjLXZmLm8gZnNsLWVuZXRjLXZm LXkgOj0NCj4gPiBlbmV0Y192Zi5vICQoY29tbW9uLW9ianMpDQo+ID4rZnNsLWVuZXRjLXZmLSQo Q09ORklHX0ZTTF9FTkVUQ19RT1MpICs9IGVuZXRjX3Fvcy5vDQo+ID4NCj4gPiBvYmotJChDT05G SUdfRlNMX0VORVRDX01ESU8pICs9IGZzbC1lbmV0Yy1tZGlvLm8gIGZzbC1lbmV0Yy1tZGlvLXkg Oj0NCj4gPmVuZXRjX3BjaV9tZGlvLm8gZW5ldGNfbWRpby5vIGRpZmYgLS1naXQNCj4gPmEvZHJp dmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjLmMNCj4gPmIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjLmMNCj4gPmluZGV4IDNlOGY5ODE5ZjA4 Yy4uZDU4ZGJjMmM0MjcwIDEwMDY0NA0KPiA+LS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJl ZXNjYWxlL2VuZXRjL2VuZXRjLmMNCj4gPisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVz Y2FsZS9lbmV0Yy9lbmV0Yy5jDQo+ID5AQCAtMTQyNyw4ICsxNDI3LDcgQEAgaW50IGVuZXRjX2Ns b3NlKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KQ0KPiA+ICAgICAgIHJldHVybiAwOw0KPiA+IH0N Cj4gPg0KPiA+LWludCBlbmV0Y19zZXR1cF90YyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgZW51 bSB0Y19zZXR1cF90eXBlIHR5cGUsDQo+ID4tICAgICAgICAgICAgICAgICB2b2lkICp0eXBlX2Rh dGEpDQo+ID4raW50IGVuZXRjX3NldHVwX3RjX21xcHJpbyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRl diwgdm9pZCAqdHlwZV9kYXRhKQ0KPiA+IHsNCj4gPiAgICAgICBzdHJ1Y3QgZW5ldGNfbmRldl9w cml2ICpwcml2ID0gbmV0ZGV2X3ByaXYobmRldik7DQo+ID4gICAgICAgc3RydWN0IHRjX21xcHJp b19xb3B0ICptcXByaW8gPSB0eXBlX2RhdGE7IEBAIC0xNDM2LDkgKzE0MzUsNiBAQA0KPiA+aW50 IGVuZXRjX3NldHVwX3RjKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCBlbnVtIHRjX3NldHVwX3R5 cGUgdHlwZSwNCj4gPiAgICAgICB1OCBudW1fdGM7DQo+ID4gICAgICAgaW50IGk7DQo+ID4NCj4g Pi0gICAgICBpZiAodHlwZSAhPSBUQ19TRVRVUF9RRElTQ19NUVBSSU8pDQo+ID4tICAgICAgICAg ICAgICByZXR1cm4gLUVPUE5PVFNVUFA7DQo+ID4tDQo+ID4gICAgICAgbXFwcmlvLT5odyA9IFRD X01RUFJJT19IV19PRkZMT0FEX1RDUzsNCj4gPiAgICAgICBudW1fdGMgPSBtcXByaW8tPm51bV90 YzsNCj4gPg0KPiA+QEAgLTE0ODMsNiArMTQ3OSwxOSBAQCBpbnQgZW5ldGNfc2V0dXBfdGMoc3Ry dWN0IG5ldF9kZXZpY2UgKm5kZXYsIGVudW0NCj4gdGNfc2V0dXBfdHlwZSB0eXBlLA0KPiA+ICAg ICAgIHJldHVybiAwOw0KPiA+IH0NCj4gPg0KPiA+K2ludCBlbmV0Y19zZXR1cF90YyhzdHJ1Y3Qg bmV0X2RldmljZSAqbmRldiwgZW51bSB0Y19zZXR1cF90eXBlIHR5cGUsDQo+ID4rICAgICAgICAg ICAgICAgICB2b2lkICp0eXBlX2RhdGEpDQo+ID4rew0KPiA+KyAgICAgIHN3aXRjaCAodHlwZSkg ew0KPiA+KyAgICAgIGNhc2UgVENfU0VUVVBfUURJU0NfTVFQUklPOg0KPiA+KyAgICAgICAgICAg ICAgcmV0dXJuIGVuZXRjX3NldHVwX3RjX21xcHJpbyhuZGV2LCB0eXBlX2RhdGEpOw0KPiA+KyAg ICAgIGNhc2UgVENfU0VUVVBfUURJU0NfVEFQUklPOg0KPiA+KyAgICAgICAgICAgICAgcmV0dXJu IGVuZXRjX3NldHVwX3RjX3RhcHJpbyhuZGV2LCB0eXBlX2RhdGEpOw0KPiA+KyAgICAgIGRlZmF1 bHQ6DQo+ID4rICAgICAgICAgICAgICByZXR1cm4gLUVPUE5PVFNVUFA7DQo+ID4rICAgICAgfQ0K PiA+K30NCj4gPisNCj4gPiBzdHJ1Y3QgbmV0X2RldmljZV9zdGF0cyAqZW5ldGNfZ2V0X3N0YXRz KHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KSAgew0KPiA+ICAgICAgIHN0cnVjdCBlbmV0Y19uZGV2 X3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihuZGV2KTsgZGlmZiAtLWdpdA0KPiA+YS9kcml2ZXJz L25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvZW5ldGMuaA0KPiA+Yi9kcml2ZXJzL25ldC9l dGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvZW5ldGMuaA0KPiA+aW5kZXggNTQxYjRlMjA3M2ZlLi44 Y2EyZjk3MDUwYzggMTAwNjQ0DQo+ID4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2Nh bGUvZW5ldGMvZW5ldGMuaA0KPiA+KysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxl L2VuZXRjL2VuZXRjLmgNCj4gPkBAIC0yNDQsMyArMjQ0LDEwIEBAIGludCBlbmV0Y19zZXRfZnNf ZW50cnkoc3RydWN0IGVuZXRjX3NpICpzaSwgc3RydWN0DQo+ID5lbmV0Y19jbWRfcmZzZSAqcmZz ZSwgIHZvaWQgZW5ldGNfc2V0X3Jzc19rZXkoc3RydWN0IGVuZXRjX2h3ICpodywNCj4gPmNvbnN0 IHU4ICpieXRlcyk7ICBpbnQgZW5ldGNfZ2V0X3Jzc190YWJsZShzdHJ1Y3QgZW5ldGNfc2kgKnNp LCB1MzINCj4gPip0YWJsZSwgaW50IGNvdW50KTsgIGludCBlbmV0Y19zZXRfcnNzX3RhYmxlKHN0 cnVjdCBlbmV0Y19zaSAqc2ksIGNvbnN0DQo+ID51MzIgKnRhYmxlLCBpbnQgY291bnQpOw0KPiA+ K2ludCBlbmV0Y19zZW5kX2NtZChzdHJ1Y3QgZW5ldGNfc2kgKnNpLCBzdHJ1Y3QgZW5ldGNfY2Jk ICpjYmQpOw0KPiA+Kw0KPiA+KyNpZmRlZiBDT05GSUdfRlNMX0VORVRDX1FPUw0KPiA+K2ludCBl bmV0Y19zZXR1cF90Y190YXByaW8oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHZvaWQgKnR5cGVf ZGF0YSk7DQo+ID4rI2Vsc2UgI2RlZmluZSBlbmV0Y19zZXR1cF90Y190YXByaW8obmRldiwgdHlw ZV9kYXRhKSAtRU9QTk9UU1VQUA0KPiA+KyNlbmRpZg0KPiA+ZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9lbmV0Y19jYmRyLmMNCj4gPmIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX2NiZHIuYw0KPiA+aW5kZXggZGU0NjZi NzFiZjhmLi4yMDFjYmMzNjJlMzMgMTAwNjQ0DQo+ID4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9mcmVlc2NhbGUvZW5ldGMvZW5ldGNfY2Jkci5jDQo+ID4rKysgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9mcmVlc2NhbGUvZW5ldGMvZW5ldGNfY2Jkci5jDQo+ID5AQCAtMzIsNyArMzIsNyBAQCBz dGF0aWMgaW50IGVuZXRjX2NiZF91bnVzZWQoc3RydWN0IGVuZXRjX2NiZHIgKnIpDQo+ID4gICAg ICAgICAgICAgICByLT5iZF9jb3VudDsNCj4gPiB9DQo+ID4NCj4gPi1zdGF0aWMgaW50IGVuZXRj X3NlbmRfY21kKHN0cnVjdCBlbmV0Y19zaSAqc2ksIHN0cnVjdCBlbmV0Y19jYmQgKmNiZCkNCj4g PitpbnQgZW5ldGNfc2VuZF9jbWQoc3RydWN0IGVuZXRjX3NpICpzaSwgc3RydWN0IGVuZXRjX2Ni ZCAqY2JkKQ0KPiA+IHsNCj4gPiAgICAgICBzdHJ1Y3QgZW5ldGNfY2JkciAqcmluZyA9ICZzaS0+ Y2JkX3Jpbmc7DQo+ID4gICAgICAgaW50IHRpbWVvdXQgPSBFTkVUQ19DQkRSX1RJTUVPVVQ7IEBA IC02Niw2ICs2Niw5IEBAIHN0YXRpYyBpbnQNCj4gPmVuZXRjX3NlbmRfY21kKHN0cnVjdCBlbmV0 Y19zaSAqc2ksIHN0cnVjdCBlbmV0Y19jYmQgKmNiZCkNCj4gPiAgICAgICBpZiAoIXRpbWVvdXQp DQo+ID4gICAgICAgICAgICAgICByZXR1cm4gLUVCVVNZOw0KPiA+DQo+ID4rICAgICAgLyogQ0JE IG1heSB3cml0ZWJhY2sgZGF0YSwgZmVlZGJhY2sgdXAgbGV2ZWwgKi8NCj4gPisgICAgICAqY2Jk ID0gKmRlc3RfY2JkOw0KPiA+Kw0KPiA+ICAgICAgIGVuZXRjX2NsZWFuX2NiZHIoc2kpOw0KPiA+ DQo+ID4gICAgICAgcmV0dXJuIDA7DQo+ID5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX2h3LmgNCj4gPmIvZHJpdmVycy9uZXQvZXRoZXJuZXQv ZnJlZXNjYWxlL2VuZXRjL2VuZXRjX2h3LmgNCj4gPmluZGV4IDg4Mjc2Mjk5ZjQ0Ny4uZGY2YjM1 ZGMzNTM0IDEwMDY0NA0KPiA+LS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2Vu ZXRjL2VuZXRjX2h3LmgNCj4gPisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9l bmV0Yy9lbmV0Y19ody5oDQo+ID5AQCAtMTgsNiArMTgsNyBAQA0KPiA+ICNkZWZpbmUgRU5FVENf U0lDVFIwICAweDE4DQo+ID4gI2RlZmluZSBFTkVUQ19TSUNUUjEgIDB4MWMNCj4gPiAjZGVmaW5l IEVORVRDX1NJUENBUFIwICAgICAgICAweDIwDQo+ID4rI2RlZmluZSBFTkVUQ19TSVBDQVBSMF9R QlYgICAgQklUKDQpDQo+ID4gI2RlZmluZSBFTkVUQ19TSVBDQVBSMF9SU1MgICAgQklUKDgpDQo+ ID4gI2RlZmluZSBFTkVUQ19TSVBDQVBSMSAgICAgICAgMHgyNA0KPiA+ICNkZWZpbmUgRU5FVENf U0lUR1RHUiAweDMwDQo+ID5AQCAtNDQwLDIyICs0NDEsNiBAQCB1bmlvbiBlbmV0Y19yeF9iZCB7 DQo+ID4gI2RlZmluZSBFTUVUQ19NQUNfQUREUl9GSUxUX1JFUyAgICAgICAzIC8qICMgb2YgcmVz ZXJ2ZWQgZW50cmllcyBhdCB0aGUNCj4gYmVnaW5uaW5nICovDQo+ID4gI2RlZmluZSBFTkVUQ19N QVhfTlVNX1ZGUyAgICAgMg0KPiA+DQo+ID4tc3RydWN0IGVuZXRjX2NiZCB7DQo+ID4tICAgICAg dW5pb24gew0KPiA+LSAgICAgICAgICAgICAgc3RydWN0IHsNCj4gPi0gICAgICAgICAgICAgICAg ICAgICAgX19sZTMyIGFkZHJbMl07DQo+ID4tICAgICAgICAgICAgICAgICAgICAgIF9fbGUzMiBv cHRbNF07DQo+ID4tICAgICAgICAgICAgICB9Ow0KPiA+LSAgICAgICAgICAgICAgX19sZTMyIGRh dGFbNl07DQo+ID4tICAgICAgfTsNCj4gPi0gICAgICBfX2xlMTYgaW5kZXg7DQo+ID4tICAgICAg X19sZTE2IGxlbmd0aDsNCj4gPi0gICAgICB1OCBjbWQ7DQo+ID4tICAgICAgdTggY2xzOw0KPiA+ LSAgICAgIHU4IF9yZXM7DQo+ID4tICAgICAgdTggc3RhdHVzX2ZsYWdzOw0KPiA+LX07DQo+ID4t DQo+ID4gI2RlZmluZSBFTkVUQ19DQkRfRkxBR1NfU0YgICAgQklUKDcpIC8qIHNob3J0IGZvcm1h dCAqLw0KPiA+ICNkZWZpbmUgRU5FVENfQ0JEX1NUQVRVU19NQVNLIDB4Zg0KPiA+DQo+ID5AQCAt NTU0LDMgKzUzOSw3MCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZW5ldGNfc2V0X2Jkcl9wcmlvKHN0 cnVjdA0KPiBlbmV0Y19odyAqaHcsIGludCBiZHJfaWR4LA0KPiA+ICAgICAgIHZhbCB8PSBFTkVU Q19UQk1SX1NFVF9QUklPKHByaW8pOw0KPiA+ICAgICAgIGVuZXRjX3R4YmRyX3dyKGh3LCBiZHJf aWR4LCBFTkVUQ19UQk1SLCB2YWwpOyAgfQ0KPiA+Kw0KPiA+K2VudW0gYmRjcl9jbWRfY2xhc3Mg ew0KPiA+KyAgICAgIEJEQ1JfQ01EX1VOU1BFQyA9IDAsDQo+ID4rICAgICAgQkRDUl9DTURfTUFD X0ZJTFRFUiwNCj4gPisgICAgICBCRENSX0NNRF9WTEFOX0ZJTFRFUiwNCj4gPisgICAgICBCRENS X0NNRF9SU1MsDQo+ID4rICAgICAgQkRDUl9DTURfUkZTLA0KPiA+KyAgICAgIEJEQ1JfQ01EX1BP UlRfR0NMLA0KPiA+KyAgICAgIEJEQ1JfQ01EX1JFQ1ZfQ0xBU1NJRklFUiwNCj4gPisgICAgICBf X0JEQ1JfQ01EX01BWF9MRU4sDQo+ID4rICAgICAgQkRDUl9DTURfTUFYX0xFTiA9IF9fQkRDUl9D TURfTUFYX0xFTiAtIDEsIH07DQo+ID4rDQo+ID4rLyogY2xhc3MgNSwgY29tbWFuZCAwICovDQo+ ID4rc3RydWN0IHRnc19nY2xfY29uZiB7DQo+ID4rICAgICAgdTggICAgICBhdGM7ICAgIC8qIGlu aXQgZ2F0ZSB2YWx1ZSAqLw0KPiA+KyAgICAgIHU4ICAgICAgcmVzWzddOw0KPiA+KyAgICAgIHN0 cnVjdCB7DQo+ID4rICAgICAgICAgICAgICB1OCAgICAgIHJlczFbNF07DQo+ID4rICAgICAgICAg ICAgICBfX2xlMTYgIGFjbF9sZW47DQo+ID4rICAgICAgICAgICAgICB1OCAgICAgIHJlczJbMl07 DQo+ID4rICAgICAgfTsNCj4gPit9Ow0KPiA+Kw0KPiA+Ky8qIGdhdGUgY29udHJvbCBsaXN0IGVu dHJ5ICovDQo+ID4rc3RydWN0IGdjZSB7DQo+ID4rICAgICAgX19sZTMyICBwZXJpb2Q7DQo+ID4r ICAgICAgdTggICAgICBnYXRlOw0KPiA+KyAgICAgIHU4ICAgICAgcmVzWzNdOw0KPiA+K307DQo+ ID4rDQo+ID4rLyogdGdzX2djbF9jb25mIGFkZHJlc3MgcG9pbnQgdG8gdGhpcyBkYXRhIHNwYWNl ICovIHN0cnVjdA0KPiA+K3Rnc19nY2xfZGF0YSB7DQo+ID4rICAgICAgX19sZTMyICAgICAgICAg IGJ0bDsNCj4gPisgICAgICBfX2xlMzIgICAgICAgICAgYnRoOw0KPiA+KyAgICAgIF9fbGUzMiAg ICAgICAgICBjdDsNCj4gPisgICAgICBfX2xlMzIgICAgICAgICAgY3RlOw0KPiA+KyAgICAgIHN0 cnVjdCBnY2UgICAgICBlbnRyeVswXTsNCj4gPit9Ow0KPiA+Kw0KPiA+K3N0cnVjdCBlbmV0Y19j YmQgew0KPiA+KyAgICAgIHVuaW9uew0KPiA+KyAgICAgICAgICAgICAgc3RydWN0IHsNCj4gPisg ICAgICAgICAgICAgICAgICAgICAgX19sZTMyICBhZGRyWzJdOw0KPiA+KyAgICAgICAgICAgICAg ICAgICAgICB1bmlvbiB7DQo+ID4rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19sZTMy ICBvcHRbNF07DQo+ID4rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHRnc19n Y2xfY29uZiAgICAgZ2NsX2NvbmY7DQo+ID4rICAgICAgICAgICAgICAgICAgICAgIH07DQo+ID4r ICAgICAgICAgICAgICB9OyAgICAgIC8qIExvbmcgZm9ybWF0ICovDQo+ID4rICAgICAgICAgICAg ICBfX2xlMzIgZGF0YVs2XTsNCj4gPisgICAgICB9Ow0KPiA+KyAgICAgIF9fbGUxNiBpbmRleDsN Cj4gPisgICAgICBfX2xlMTYgbGVuZ3RoOw0KPiA+KyAgICAgIHU4IGNtZDsNCj4gPisgICAgICB1 OCBjbHM7DQo+ID4rICAgICAgdTggX3JlczsNCj4gPisgICAgICB1OCBzdGF0dXNfZmxhZ3M7DQo+ ID4rfTsNCj4gPisNCj4gPisvKiBwb3J0IHRpbWUgZ2F0aW5nIGNvbnRyb2wgcmVnaXN0ZXIgKi8N Cj4gPisjZGVmaW5lIEVORVRDX1FCVl9QVEdDUl9PRkZTRVQgICAgICAgICAgICAgICAgMHgxMWEw MA0KPiA+KyNkZWZpbmUgRU5FVENfUUJWX1RHRSAgICAgICAgICAgICAgICAgQklUKDMxKQ0KPiA+ KyNkZWZpbmUgRU5FVENfUUJWX1RHUEUgICAgICAgICAgICAgICAgICAgICAgICBCSVQoMzApDQo+ ID4rDQo+ID4rLyogUG9ydCB0aW1lIGdhdGluZyBjYXBhYmlsaXR5IHJlZ2lzdGVyICovDQo+ID4r I2RlZmluZSBFTkVUQ19RQlZfUFRHQ0FQUl9PRkZTRVQgICAgICAweDExYTA4DQo+ID4rI2RlZmlu ZSBFTkVUQ19RQlZfTUFYX0dDTF9MRU5fTUFTSyAgICBHRU5NQVNLKDE1LCAwKQ0KPiA+ZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9lbmV0Y19xb3MuYw0K PiA+Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvZW5ldGNfcW9zLmMNCj4g Pm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID5pbmRleCAwMDAwMDAwMDAwMDAuLjljZTk4M2MwMDIw MQ0KPiA+LS0tIC9kZXYvbnVsbA0KPiA+KysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNj YWxlL2VuZXRjL2VuZXRjX3Fvcy5jDQo+ID5AQCAtMCwwICsxLDEzNCBAQA0KPiA+Ky8vIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiAoR1BMLTIuMCsgT1IgQlNELTMtQ2xhdXNlKQ0KPiA+Ky8qIENv cHlyaWdodCAyMDE5IE5YUCAqLw0KPiA+Kw0KPiA+KyNpbmNsdWRlICJlbmV0Yy5oIg0KPiA+Kw0K PiA+KyNpbmNsdWRlIDxuZXQvcGt0X3NjaGVkLmg+DQo+ID4rDQo+ID4rc3RhdGljIHUxNiBlbmV0 Y19nZXRfbWF4X2djbF9sZW4oc3RydWN0IGVuZXRjX2h3ICpodykgew0KPiA+KyAgICAgIHJldHVy biBlbmV0Y19yZChodywgRU5FVENfUUJWX1BUR0NBUFJfT0ZGU0VUKQ0KPiA+KyAgICAgICAgICAg ICAgJiBFTkVUQ19RQlZfTUFYX0dDTF9MRU5fTUFTSzsgfQ0KPiA+Kw0KPiA+K3N0YXRpYyBpbnQg ZW5ldGNfc2V0dXBfdGFwcmlvKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LA0KPiA+KyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdGNfdGFwcmlvX3FvcHRfb2ZmbG9hZCAqYWRtaW5f Y29uZikNCj4gPit7DQo+ID4rICAgICAgc3RydWN0IGVuZXRjX25kZXZfcHJpdiAqcHJpdiA9IG5l dGRldl9wcml2KG5kZXYpOw0KPiA+KyAgICAgIHN0cnVjdCBlbmV0Y19jYmQgY2JkID0gey5jbWQg PSAwfTsNCj4gPisgICAgICBzdHJ1Y3QgdGdzX2djbF9jb25mICpnY2xfY29uZmlnOw0KPiA+KyAg ICAgIHN0cnVjdCB0Z3NfZ2NsX2RhdGEgKmdjbF9kYXRhOw0KPiA+KyAgICAgIHN0cnVjdCBnY2Ug KmdjZTsNCj4gPisgICAgICBkbWFfYWRkcl90IGRtYTsNCj4gPisgICAgICB1MTYgZGF0YV9zaXpl Ow0KPiA+KyAgICAgIHUxNiBnY2xfbGVuOw0KPiA+KyAgICAgIHUzMiB0Z2U7DQo+ID4rICAgICAg aW50IGVycjsNCj4gPisgICAgICBpbnQgaTsNCj4gPisNCj4gPisgICAgICBpZiAoYWRtaW5fY29u Zi0+bnVtX2VudHJpZXMgPiBlbmV0Y19nZXRfbWF4X2djbF9sZW4oJnByaXYtPnNpLT5odykpDQo+ ID4rICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4gPisgICAgICBnY2xfbGVuID0gYWRt aW5fY29uZi0+bnVtX2VudHJpZXM7DQo+ID4rDQo+ID4rICAgICAgdGdlID0gZW5ldGNfcmQoJnBy aXYtPnNpLT5odywgRU5FVENfUUJWX1BUR0NSX09GRlNFVCk7DQo+ID4rICAgICAgaWYgKCFhZG1p bl9jb25mLT5lbmFibGUpIHsNCj4gPisgICAgICAgICAgICAgIGVuZXRjX3dyKCZwcml2LT5zaS0+ aHcsDQo+ID4rICAgICAgICAgICAgICAgICAgICAgICBFTkVUQ19RQlZfUFRHQ1JfT0ZGU0VULA0K PiA+KyAgICAgICAgICAgICAgICAgICAgICAgdGdlICYgKH5FTkVUQ19RQlZfVEdFKSk7DQo+ID4r ICAgICAgICAgICAgICByZXR1cm4gMDsNCj4gPisgICAgICB9DQo+ID4rDQo+ID4rICAgICAgaWYg KGFkbWluX2NvbmYtPmN5Y2xlX3RpbWUgPiAodTMyKX4wIHx8DQo+ID4rICAgICAgICAgIGFkbWlu X2NvbmYtPmN5Y2xlX3RpbWVfZXh0ZW5zaW9uID4gKHUzMil+MCkNCj4gPisgICAgICAgICAgICAg IHJldHVybiAtRUlOVkFMOw0KPiANCj4gVTMyX01BWD8NCj4gDQo+ID4rDQo+ID4rICAgICAgLyog Q29uZmlndXJlIHRoZSAoYWRtaW5pc3RyYXRpdmUpIGdhdGUgY29udHJvbCBsaXN0IHVzaW5nIHRo ZQ0KPiA+KyAgICAgICAqIGNvbnRyb2wgQkQgZGVzY3JpcHRvci4NCj4gPisgICAgICAgKi8NCj4g PisgICAgICBnY2xfY29uZmlnID0gJmNiZC5nY2xfY29uZjsNCj4gPisNCj4gPisgICAgICBkYXRh X3NpemUgPSBzdHJ1Y3Rfc2l6ZShnY2xfZGF0YSwgZW50cnksIGdjbF9sZW4pOw0KPiA+KyAgICAg IGdjbF9kYXRhID0ga3phbGxvYyhkYXRhX3NpemUsIF9fR0ZQX0RNQSB8IEdGUF9LRVJORUwpOw0K PiA+KyAgICAgIGlmICghZ2NsX2RhdGEpDQo+ID4rICAgICAgICAgICAgICByZXR1cm4gLUVOT01F TTsNCj4gPisNCj4gPisgICAgICBnY2UgPSAoc3RydWN0IGdjZSAqKShnY2xfZGF0YSArIDEpOw0K PiA+Kw0KPiA+KyAgICAgIC8qIFNldCBhbGwgZ2F0ZXMgb3BlbiBhcyBkZWZhdWx0ICovDQo+ID4r ICAgICAgZ2NsX2NvbmZpZy0+YXRjID0gMHhmZjsNCj4gPisgICAgICBnY2xfY29uZmlnLT5hY2xf bGVuID0gY3B1X3RvX2xlMTYoZ2NsX2xlbik7DQo+ID4rDQo+ID4rICAgICAgaWYgKCFhZG1pbl9j b25mLT5iYXNlX3RpbWUpIHsNCj4gPisgICAgICAgICAgICAgIGdjbF9kYXRhLT5idGwgPQ0KPiA+ KyAgICAgICAgICAgICAgICAgICAgICBjcHVfdG9fbGUzMihlbmV0Y19yZCgmcHJpdi0+c2ktPmh3 LCBFTkVUQ19TSUNUUjApKTsNCj4gPisgICAgICAgICAgICAgIGdjbF9kYXRhLT5idGggPQ0KPiA+ KyAgICAgICAgICAgICAgICAgICAgICBjcHVfdG9fbGUzMihlbmV0Y19yZCgmcHJpdi0+c2ktPmh3 LCBFTkVUQ19TSUNUUjEpKTsNCj4gPisgICAgICB9IGVsc2Ugew0KPiA+KyAgICAgICAgICAgICAg Z2NsX2RhdGEtPmJ0bCA9DQo+ID4rICAgICAgICAgICAgICAgICAgICAgIGNwdV90b19sZTMyKGxv d2VyXzMyX2JpdHMoYWRtaW5fY29uZi0+YmFzZV90aW1lKSk7DQo+ID4rICAgICAgICAgICAgICBn Y2xfZGF0YS0+YnRoID0NCj4gPisgICAgICAgICAgICAgICAgICAgICAgY3B1X3RvX2xlMzIodXBw ZXJfMzJfYml0cyhhZG1pbl9jb25mLT5iYXNlX3RpbWUpKTsNCj4gPisgICAgICB9DQo+ID4rDQo+ ID4rICAgICAgZ2NsX2RhdGEtPmN0ID0gY3B1X3RvX2xlMzIoYWRtaW5fY29uZi0+Y3ljbGVfdGlt ZSk7DQo+ID4rICAgICAgZ2NsX2RhdGEtPmN0ZSA9IGNwdV90b19sZTMyKGFkbWluX2NvbmYtPmN5 Y2xlX3RpbWVfZXh0ZW5zaW9uKTsNCj4gPisNCj4gPisgICAgICBmb3IgKGkgPSAwOyBpIDwgZ2Ns X2xlbjsgaSsrKSB7DQo+ID4rICAgICAgICAgICAgICBzdHJ1Y3QgdGNfdGFwcmlvX3NjaGVkX2Vu dHJ5ICp0ZW1wX2VudHJ5Ow0KPiA+KyAgICAgICAgICAgICAgc3RydWN0IGdjZSAqdGVtcF9nY2Ug PSBnY2UgKyBpOw0KPiA+Kw0KPiA+KyAgICAgICAgICAgICAgdGVtcF9lbnRyeSA9ICZhZG1pbl9j b25mLT5lbnRyaWVzW2ldOw0KPiA+Kw0KPiA+KyAgICAgICAgICAgICAgdGVtcF9nY2UtPmdhdGUg PSAodTgpdGVtcF9lbnRyeS0+Z2F0ZV9tYXNrOw0KPiA+KyAgICAgICAgICAgICAgdGVtcF9nY2Ut PnBlcmlvZCA9IGNwdV90b19sZTMyKHRlbXBfZW50cnktPmludGVydmFsKTsNCj4gPisgICAgICB9 DQo+ID4rDQo+ID4rICAgICAgY2JkLmxlbmd0aCA9IGNwdV90b19sZTE2KGRhdGFfc2l6ZSk7DQo+ ID4rICAgICAgY2JkLnN0YXR1c19mbGFncyA9IDA7DQo+ID4rDQo+ID4rICAgICAgZG1hID0gZG1h X21hcF9zaW5nbGUoJnByaXYtPnNpLT5wZGV2LT5kZXYsIGdjbF9kYXRhLA0KPiA+KyAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRhdGFfc2l6ZSwgRE1BX1RPX0RFVklDRSk7DQo+ID4rICAgICAg aWYgKGRtYV9tYXBwaW5nX2Vycm9yKCZwcml2LT5zaS0+cGRldi0+ZGV2LCBkbWEpKSB7DQo+ID4r ICAgICAgICAgICAgICBuZXRkZXZfZXJyKHByaXYtPnNpLT5uZGV2LCAiRE1BIG1hcHBpbmcgZmFp bGVkIVxuIik7DQo+ID4rICAgICAgICAgICAgICBrZnJlZShnY2xfZGF0YSk7DQo+ID4rICAgICAg ICAgICAgICByZXR1cm4gLUVOT01FTTsNCj4gPisgICAgICB9DQo+ID4rDQo+ID4rICAgICAgY2Jk LmFkZHJbMF0gPSBsb3dlcl8zMl9iaXRzKGRtYSk7DQo+ID4rICAgICAgY2JkLmFkZHJbMV0gPSB1 cHBlcl8zMl9iaXRzKGRtYSk7DQo+ID4rICAgICAgY2JkLmNscyA9IEJEQ1JfQ01EX1BPUlRfR0NM Ow0KPiA+KyAgICAgIGNiZC5zdGF0dXNfZmxhZ3MgPSAwOw0KPiA+Kw0KPiA+KyAgICAgIGVuZXRj X3dyKCZwcml2LT5zaS0+aHcsIEVORVRDX1FCVl9QVEdDUl9PRkZTRVQsDQo+ID4rICAgICAgICAg ICAgICAgdGdlICYgKH5FTkVUQ19RQlZfVEdFKSk7DQo+IA0KPiBTb3JyeSwgYnV0LCBwbGVhc2Us IGJlZm9yZSBzZW5kaW5nIG5ldyB2ZXJzaW9uLCBiZSBzdXJlIHlvdSB1bmRlcnN0YW5kIHdoYXQN Cj4gc2hvdWxkIGJlIGNoYW5nZWQuDQo+IA0KPiBMZXQncyBiYWNrIHRvIElFRUUgU3RkIDgwMi4x UQ0KPiANCj4gRG8geW91IGtub3cgd2hhdCBtZWFucyBjeWNsZSB0aW1lIGV4dGVuc2lvbiB0aGF0 IGlzIHByb2dyYW1tZWQgaGVyZS4NCj4gQW5kIHdoeSBuZWVkZWQgYWRtaW4gYW5kIG9wZXIgY29u ZmlndXJhdGlvbnMsIGFuZCB0aGVpciBiYXNlIHRpbWVzPw0KPiANCj4gSXQncyBuZWVkZWQgdG8g bm90IHN0b3AgYWN0aXZlIG9wZXIgY29uZmlndXJhdGlvbiAodGhhdCBhY3R1YWxseSB0aGlzIGZ1 bmN0aW9uIGRvKSwNCj4gc28gdGhhdCBpdCdzIGFjdGl2ZSB0aWxsIG5ldyBvbmUsIHRoYXQgaXMg YWRtaW4sIHdpbGwgYmUgYWJsZSB0byByZXBsYWNlIGl0Lg0KPiANCj4gSWYgdXNlciB3YW50cyB0 byBzdG9wIGl0LCBhbmQgdGhlbiBsb2FkIG5ldyBvbmUsIGhlIGhhcyB0byBkbyBpdCBoaW1zZWxm LiBCdXQsDQo+IHdoZW4gc29tZSBjb25maWd1cmF0aW9uIGlzIGFjdGl2ZSAtIHRoYXQgaXMgT1BF UiBhdCB0aGUgbW9tZW50IC0gYW5kIHVzZXINCj4gcmVxdWVzdHMgdy9vIHN0b3BwaW5nIGl0IG5l dyBjb25maWd1cmF0aW9uIGluIHNvbWUgbmV3IGFkbWluIGJhc2UgdGltZSwgdGhlDQo+IG9wZXIg c3RheSBhY3RpdmUgdGlsbCB0aGlzIGFkbWluIGJhc2UgdGltZSwgdGhlbiBkcm9wcGVkIGluIGh3 Lg0KPiANCj4gV2hhdCB0aGlzIGNvZGUgZG8sIGl0J3MgaW4gaGlkZGVuIHdheSwgc3RvcCBvcGVy IGNvbmZpZ3VyYXRpb24gYXQgdGhlIHRpbWUgb2YNCj4gY29uZmlndXJhdGlvbiBhbmQgbm8gbWF0 dGVyIHdoaWNoIGFkbWl0IGJhc2UgdGltZSBpcy4NCg0KSSBhbSBkZWZpbml0ZWx5IGtub3cgdGhl IHNwZWMgaW4gdGhlIFFidi4gSGVyZSBpcyBoYXJkd2FyZSBlcnJhdGEgd2hpY2ggSSBoYXZlIG1l bnRpb25lZCBpbiBwcmV2aW91cyBmZWVkYmFjayBpbiB2Mi4NCiANCj4gDQo+IFRoYXQncyBkZWZp bml0ZWx5IHdyb25nLiBKdXN0IGxvb2sgaG93IHN3IHZlcnNpb24gd29ya3MuDQo+IEFuZCB3aHkg YWxsIHRoaXMgYWRtaW4vb3BlciBoZWFkYWNoZSBleGlzdHMgaW4gSUVFRSBTdGQgODAyLjFRIGV4 YWN0bHkgZm9yIHRoaXMNCj4gcmVhc29uLg0KPiANCj4gU28sIGlmIG9wZXIgY29uZmlndXJhdGlv biBleGlzdHMgYXQgdGhlIG1vbWVudCBvZiBjYWxsaW5nIHRhcHJpbyBjb25maWd1cmF0aW9uDQo+ IGFuZCBubyB3YXkgdG8gYXBwbHkgbmV3IG9uIGluIHNvbWUgZnV0dXJlIHRpbWUgKGFkbWluIGJh c2UgdGltZSksIHRoZSBjb2RlDQo+IHNob3VsZCBzYXkgdG8gdXNlcjoNCj4gDQo+IFBsZWFzZSwg c3RvcCBwcmV2LiBvcGVyIGNvbmZpZ3VyYXRpb24gLSB0aGVuIHByb2cgbmV3IG9uZS4NCj4gDQo+ IFRoZSB0YXByaW8gaW50ZXJmYWNlIGlzIGNvbW1vbiBhbmQgY2FuJ3QgYmUgdHJlYXRlZCBkaWZm ZXJlbnRseSBkZXBlbmRpbmcgb24NCj4gaHcuDQo+IA0KPiBIb3BlIGl0J3MgY2xlYW4uDQo+IA0K PiA+Kw0KPiA+KyAgICAgIHVzbGVlcF9yYW5nZSgxMCwgMjApOw0KPiA+Kw0KPiA+KyAgICAgIGVu ZXRjX3dyKCZwcml2LT5zaS0+aHcsIEVORVRDX1FCVl9QVEdDUl9PRkZTRVQsDQo+ID4rICAgICAg ICAgICAgICAgdGdlIHwgRU5FVENfUUJWX1RHRSk7DQo+ID4rDQo+ID4rICAgICAgZXJyID0gZW5l dGNfc2VuZF9jbWQocHJpdi0+c2ksICZjYmQpOw0KPiA+KyAgICAgIGlmIChlcnIpDQo+ID4rICAg ICAgICAgICAgICBlbmV0Y193cigmcHJpdi0+c2ktPmh3LA0KPiA+KyAgICAgICAgICAgICAgICAg ICAgICAgRU5FVENfUUJWX1BUR0NSX09GRlNFVCwNCj4gPisgICAgICAgICAgICAgICAgICAgICAg IHRnZSAmICh+RU5FVENfUUJWX1RHRSkpOw0KPiA+Kw0KPiA+KyAgICAgIGRtYV91bm1hcF9zaW5n bGUoJnByaXYtPnNpLT5wZGV2LT5kZXYsIGRtYSwgZGF0YV9zaXplLA0KPiBETUFfVE9fREVWSUNF KTsNCj4gPisgICAgICBrZnJlZShnY2xfZGF0YSk7DQo+ID4rDQo+ID4rICAgICAgcmV0dXJuIGVy cjsNCj4gPit9DQo+ID4rDQo+ID4raW50IGVuZXRjX3NldHVwX3RjX3RhcHJpbyhzdHJ1Y3QgbmV0 X2RldmljZSAqbmRldiwgdm9pZCAqdHlwZV9kYXRhKSB7DQo+ID4rICAgICAgc3RydWN0IHRjX3Rh cHJpb19xb3B0X29mZmxvYWQgKnRhcHJpbyA9IHR5cGVfZGF0YTsNCj4gPisgICAgICBzdHJ1Y3Qg ZW5ldGNfbmRldl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYobmRldik7DQo+ID4rICAgICAgaW50 IGk7DQo+ID4rDQo+ID4rICAgICAgZm9yIChpID0gMDsgaSA8IHByaXYtPm51bV90eF9yaW5nczsg aSsrKQ0KPiA+KyAgICAgICAgICAgICAgZW5ldGNfc2V0X2Jkcl9wcmlvKCZwcml2LT5zaS0+aHcs DQo+ID4rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpdi0+dHhfcmluZ1tpXS0+ aW5kZXgsDQo+ID4rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFwcmlvLT5lbmFi bGUgPyBpIDogMCk7DQo+IA0KPiBBZ2FpbiwgeW91IHNob3VsZCByZXN0b3JlICBlbmV0Y19zZXRf YmRyX3ByaW8gaWYgYmVsb3cgZW5ldGNfc2V0dXBfdGFwcmlvKCkNCj4gZmFpbHMuDQo+IA0KPiA+ Kw0KPiA+KyAgICAgIHJldHVybiBlbmV0Y19zZXR1cF90YXByaW8obmRldiwgdGFwcmlvKTsgfQ0K PiA+LS0NCj4gPjIuMTcuMQ0KPiA+DQo+IA0KPiAtLQ0KPiBSZWdhcmRzLA0KPiBJdmFuIEtob3Jv bnpodWsNCg==