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=-9.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_HELO_NONE,SPF_PASS,T_DKIMWL_WL_HIGH,USER_AGENT_GIT 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 56A31C04AB3 for ; Mon, 27 May 2019 14:59:34 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 0BB702182B for ; Mon, 27 May 2019 14:59:33 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=microsoft.com header.i=@microsoft.com header.b="TSygfZUB" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726857AbfE0O7d (ORCPT ); Mon, 27 May 2019 10:59:33 -0400 Received: from mail-eopbgr690120.outbound.protection.outlook.com ([40.107.69.120]:52197 "EHLO NAM04-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726704AbfE0O7a (ORCPT ); Mon, 27 May 2019 10:59:30 -0400 ARC-Seal: i=1; a=rsa-sha256; s=testarcselector01; d=microsoft.com; cv=none; b=U6LsRukQqXom6K/eU7xcvcaiS+tQyQJci/JI1/3JW2oo5K9NvGnd3Yo9y6Ob0m9WulT7k3mD9IhhW2X2ZuUwMYOqe4ts0UQ1KJEqbgNZMj13FuxTlqrERmWn6+i9jvXu2LqG1EI3j+7WBZuPRmOxpFiPPM9ZIdS1OZCYw2NJ5dY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=testarcselector01; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KdzFES4fo5RZ/OtVl+/Hkgd+N+ouJx5xK2yGc4UHjWA=; b=DsdBJqSmQndDe5b6XBSIgP2qn4ENxX2sXsYA07DIZGcg5CGHTADuAGuZIAB8Eo6cfEEc3nZC5MoTTFq05rQUxGfUFJ7oUClRLHaM+2G9hzTT1m0Bpe0ooGMHKhSmCLBXZC+kS9u/XGuee29pWT4onJU6LrUddjHMKp+CCIA5voE= ARC-Authentication-Results: i=1; test.office365.com 1;spf=none;dmarc=none action=none header.from=microsoft.com;dkim=none (message not signed);arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KdzFES4fo5RZ/OtVl+/Hkgd+N+ouJx5xK2yGc4UHjWA=; b=TSygfZUBLT4XoYi97ItWRs7j88ljSpGILGWe7LRMzdNkZuoKEkQQsW0Fnrz3O5SRHqF69GRiN/u7xy8gK7OGiAyO9sfvxAm6bx9sWdJW5xuWfSbL4a56GbeinVJW/nXKVWNq4lUibXZAL+zguUaFbPjpfeLkgkDamZiccWO2ams= Received: from DM6PR21MB1340.namprd21.prod.outlook.com (2603:10b6:5:175::19) by DM6PR21MB1339.namprd21.prod.outlook.com (2603:10b6:5:175::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1878.9; Mon, 27 May 2019 14:59:26 +0000 Received: from DM6PR21MB1340.namprd21.prod.outlook.com ([fe80::5057:9e3c:bcc5:9470]) by DM6PR21MB1340.namprd21.prod.outlook.com ([fe80::5057:9e3c:bcc5:9470%3]) with mapi id 15.20.1943.006; Mon, 27 May 2019 14:59:26 +0000 From: Michael Kelley To: "will.deacon@arm.com" , "marc.zyngier@arm.com" , "linux-arm-kernel@lists.infradead.org" , "gregkh@linuxfoundation.org" , "linux-kernel@vger.kernel.org" , "linux-hyperv@vger.kernel.org" , "olaf@aepfle.de" , "apw@canonical.com" , vkuznets , "jasowang@redhat.com" , "marcelo.cerri@canonical.com" , Sunil Muthuswamy , KY Srinivasan CC: Michael Kelley , "catalin.marinas@arm.com" , "mark.rutland@arm.com" Subject: [PATCH v3 2/2] Drivers: hv: Move Hyper-V clocksource code to new clocksource driver Thread-Topic: [PATCH v3 2/2] Drivers: hv: Move Hyper-V clocksource code to new clocksource driver Thread-Index: AQHVFJzHbJqXU3m750yCHgYOOvgygg== Date: Mon, 27 May 2019 14:59:26 +0000 Message-ID: <1558969089-13204-3-git-send-email-mikelley@microsoft.com> References: <1558969089-13204-1-git-send-email-mikelley@microsoft.com> In-Reply-To: <1558969089-13204-1-git-send-email-mikelley@microsoft.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: MWHPR12CA0056.namprd12.prod.outlook.com (2603:10b6:300:103::18) To DM6PR21MB1340.namprd21.prod.outlook.com (2603:10b6:5:175::19) authentication-results: spf=none (sender IP is ) smtp.mailfrom=mikelley@microsoft.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 1.8.3.1 x-originating-ip: [167.220.2.136] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 432caf33-9caa-4b00-d455-08d6e2b3e98b x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600148)(711020)(4605104)(1401327)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020);SRVR:DM6PR21MB1339; x-ms-traffictypediagnostic: DM6PR21MB1339: x-ld-processed: 72f988bf-86f1-41af-91ab-2d7cd011db47,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:5236; x-forefront-prvs: 0050CEFE70 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(366004)(39860400002)(376002)(136003)(346002)(396003)(199004)(189003)(52116002)(7416002)(52396003)(64756008)(81166006)(14454004)(99286004)(6512007)(6436002)(2616005)(6636002)(76176011)(71190400001)(256004)(53936002)(71200400001)(476003)(26005)(73956011)(66476007)(66446008)(6486002)(68736007)(8936002)(4720700003)(478600001)(1511001)(53946003)(7736002)(66946007)(386003)(11346002)(446003)(66066001)(66556008)(2501003)(2201001)(50226002)(54906003)(102836004)(22452003)(81156014)(305945005)(486006)(10090500001)(8676002)(186003)(316002)(25786009)(14444005)(3846002)(36756003)(4326008)(30864003)(10290500003)(5660300002)(86362001)(110136005)(6116002)(86612001)(6506007)(2906002)(921003)(1121003);DIR:OUT;SFP:1102;SCL:1;SRVR:DM6PR21MB1339;H:DM6PR21MB1340.namprd21.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: UfxzRtR/LEIlsYYIXr1qUb7SMAsiTHCWP9Cv3LU9m/rhWurOT8bJNf5MTCTqWPSlwFret/u829lctk4lLpmfaN8dwyinkZHx+p+oixvSIzsp5MYKAbZdqVN7nKIB8EIHS92N/J112Bi0W/0SiHBgbcWBosRRfCSaZvRGrvV3fFINS4U/bs7DodwOCSel3IcOJOqkj6/SD+sbVL6ux6ehR/lH8tIJbthKnRTVNLyA9GCv2KJsuxvfMVQrcZ/DyXpah8zMa6jRxt2v/j9dnZJ7/ciyeUjYrL+W0VIedfWjcr+7IKd7pGbGz9J83uBd3sO2HEHUJe/Da58VFeIPfTxURM7tj4Uc9CSNAGijy4W6FSiKw5NA0juWZEUhqPuti/ivcX/SO4yaxmF2nCwbLgPqAu2f23Uj857ikOl0zGjtpTA= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-Network-Message-Id: 432caf33-9caa-4b00-d455-08d6e2b3e98b X-MS-Exchange-CrossTenant-originalarrivaltime: 27 May 2019 14:59:26.6563 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR21MB1339 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Q29kZSBmb3IgdGhlIEh5cGVyLVYgc3BlY2lmaWMgY2xvY2tzb3VyY2VzIGlzIGN1cnJlbnRseSBt aXhlZA0KaW4gd2l0aCBvdGhlciBIeXBlci1WIGNvZGUuIE1vdmUgdGhlIGNvZGUgdG8gdGhlIEh5 cGVyLVYgc3BlY2lmaWMNCmRyaXZlciBpbiB0aGUgImNsb2Nrc291cmNlIiBkaXJlY3RvcnksIHdo aWxlIHNlcGFyYXRpbmcgb3V0DQpJU0EgZGVwZW5kZW5jaWVzIHNvIHRoYXQgdGhlIGNsb2Nrc291 cmNlIGRyaXZlciByZW1haW5zIElTQQ0KaW5kZXBlbmRlbnQuIFVwZGF0ZSB0aGUgSHlwZXItViBp bml0aWFsaXphdGlvbiBjb2RlIHRvIGNhbGwNCmluaXRpYWxpemF0aW9uIGFuZCBjbGVhbnVwIHJv dXRpbmVzIHNpbmNlIHRoZSBIeXBlci1WIHN5bnRoZXRpYw0KdGltZXJzIGFyZSBub3QgaW5kZXBl bmRlbnRseSBlbnVtZXJhdGVkIGluIEFDUEkuIFVwZGF0ZSBIeXBlci1WDQpjbG9ja3NvdXJjZSB1 c2VycyBLVk0gYW5kIFZEU08gdG8gZ2V0IGRlZmluaXRpb25zIGZyb20gYSBuZXcNCmluY2x1ZGUg ZmlsZS4NCg0KTm8gYmVoYXZpb3IgaXMgY2hhbmdlZCBhbmQgbm8gbmV3IGZ1bmN0aW9uYWxpdHkg aXMgYWRkZWQuDQoNClN1Z2dlc3RlZC1ieTogTWFyYyBaeW5naWVyIDxtYXJjLnp5bmdpZXJAYXJt LmNvbT4NClNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgS2VsbGV5IDxtaWtlbGxleUBtaWNyb3NvZnQu Y29tPg0KLS0tDQogYXJjaC94ODYvZW50cnkvdmRzby92Y2xvY2tfZ2V0dGltZS5jIHwgICAxICsN CiBhcmNoL3g4Ni9lbnRyeS92ZHNvL3ZtYS5jICAgICAgICAgICAgfCAgIDIgKy0NCiBhcmNoL3g4 Ni9oeXBlcnYvaHZfaW5pdC5jICAgICAgICAgICAgfCAgOTEgKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQogYXJjaC94ODYvaW5jbHVkZS9hc20vbXNoeXBlcnYuaCAgICAgIHwgIDgxICsrKy0tLS0t LS0tLS0tLS0tLS0tLS0NCiBhcmNoL3g4Ni9rdm0veDg2LmMgICAgICAgICAgICAgICAgICAgfCAg IDEgKw0KIGRyaXZlcnMvY2xvY2tzb3VyY2UvaHlwZXJ2X3RpbWVyLmMgICB8IDEzMCArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KIGRyaXZlcnMvaHYvaHZfdXRpbC5jICAgICAg ICAgICAgICAgICB8ICAgMSArDQogaW5jbHVkZS9jbG9ja3NvdXJjZS9oeXBlcnZfdGltZXIuaCAg IHwgIDc4ICsrKysrKysrKysrKysrKysrKysrKw0KIDggZmlsZXMgY2hhbmdlZCwgMjI2IGluc2Vy dGlvbnMoKyksIDE1OSBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2VudHJ5 L3Zkc28vdmNsb2NrX2dldHRpbWUuYyBiL2FyY2gveDg2L2VudHJ5L3Zkc28vdmNsb2NrX2dldHRp bWUuYw0KaW5kZXggOThjN2QxMi4uNzk4M2NhMiAxMDA2NDQNCi0tLSBhL2FyY2gveDg2L2VudHJ5 L3Zkc28vdmNsb2NrX2dldHRpbWUuYw0KKysrIGIvYXJjaC94ODYvZW50cnkvdmRzby92Y2xvY2tf Z2V0dGltZS5jDQpAQCAtMjEsNiArMjEsNyBAQA0KICNpbmNsdWRlIDxsaW51eC9tYXRoNjQuaD4N CiAjaW5jbHVkZSA8bGludXgvdGltZS5oPg0KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4NCisj aW5jbHVkZSA8Y2xvY2tzb3VyY2UvaHlwZXJ2X3RpbWVyLmg+DQogDQogI2RlZmluZSBndG9kICgm VlZBUih2c3lzY2FsbF9ndG9kX2RhdGEpKQ0KIA0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2VudHJ5 L3Zkc28vdm1hLmMgYi9hcmNoL3g4Ni9lbnRyeS92ZHNvL3ZtYS5jDQppbmRleCBiYWJjNGU3Li45 OWIzOGU5IDEwMDY0NA0KLS0tIGEvYXJjaC94ODYvZW50cnkvdmRzby92bWEuYw0KKysrIGIvYXJj aC94ODYvZW50cnkvdmRzby92bWEuYw0KQEAgLTIyLDcgKzIyLDcgQEANCiAjaW5jbHVkZSA8YXNt L3BhZ2UuaD4NCiAjaW5jbHVkZSA8YXNtL2Rlc2MuaD4NCiAjaW5jbHVkZSA8YXNtL2NwdWZlYXR1 cmUuaD4NCi0jaW5jbHVkZSA8YXNtL21zaHlwZXJ2Lmg+DQorI2luY2x1ZGUgPGNsb2Nrc291cmNl L2h5cGVydl90aW1lci5oPg0KIA0KICNpZiBkZWZpbmVkKENPTkZJR19YODZfNjQpDQogdW5zaWdu ZWQgaW50IF9fcmVhZF9tb3N0bHkgdmRzbzY0X2VuYWJsZWQgPSAxOw0KZGlmZiAtLWdpdCBhL2Fy Y2gveDg2L2h5cGVydi9odl9pbml0LmMgYi9hcmNoL3g4Ni9oeXBlcnYvaHZfaW5pdC5jDQppbmRl eCBlNGJhNDY3Li43OWY2MjZhIDEwMDY0NA0KLS0tIGEvYXJjaC94ODYvaHlwZXJ2L2h2X2luaXQu Yw0KKysrIGIvYXJjaC94ODYvaHlwZXJ2L2h2X2luaXQuYw0KQEAgLTI3LDY0ICsyNywxMyBAQA0K ICNpbmNsdWRlIDxsaW51eC92ZXJzaW9uLmg+DQogI2luY2x1ZGUgPGxpbnV4L3ZtYWxsb2MuaD4N CiAjaW5jbHVkZSA8bGludXgvbW0uaD4NCi0jaW5jbHVkZSA8bGludXgvY2xvY2tjaGlwcy5oPg0K ICNpbmNsdWRlIDxsaW51eC9oeXBlcnYuaD4NCiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPg0KICNp bmNsdWRlIDxsaW51eC9jcHVob3RwbHVnLmg+DQotDQotI2lmZGVmIENPTkZJR19IWVBFUlZfVFND UEFHRQ0KLQ0KLXN0YXRpYyBzdHJ1Y3QgbXNfaHlwZXJ2X3RzY19wYWdlICp0c2NfcGc7DQotDQot c3RydWN0IG1zX2h5cGVydl90c2NfcGFnZSAqaHZfZ2V0X3RzY19wYWdlKHZvaWQpDQotew0KLQly ZXR1cm4gdHNjX3BnOw0KLX0NCi1FWFBPUlRfU1lNQk9MX0dQTChodl9nZXRfdHNjX3BhZ2UpOw0K LQ0KLXN0YXRpYyB1NjQgcmVhZF9odl9jbG9ja190c2Moc3RydWN0IGNsb2Nrc291cmNlICphcmcp DQotew0KLQl1NjQgY3VycmVudF90aWNrID0gaHZfcmVhZF90c2NfcGFnZSh0c2NfcGcpOw0KLQ0K LQlpZiAoY3VycmVudF90aWNrID09IFU2NF9NQVgpDQotCQlyZG1zcmwoSFZfWDY0X01TUl9USU1F X1JFRl9DT1VOVCwgY3VycmVudF90aWNrKTsNCi0NCi0JcmV0dXJuIGN1cnJlbnRfdGljazsNCi19 DQotDQotc3RhdGljIHN0cnVjdCBjbG9ja3NvdXJjZSBoeXBlcnZfY3NfdHNjID0gew0KLQkJLm5h bWUJCT0gImh5cGVydl9jbG9ja3NvdXJjZV90c2NfcGFnZSIsDQotCQkucmF0aW5nCQk9IDQwMCwN Ci0JCS5yZWFkCQk9IHJlYWRfaHZfY2xvY2tfdHNjLA0KLQkJLm1hc2sJCT0gQ0xPQ0tTT1VSQ0Vf TUFTSyg2NCksDQotCQkuZmxhZ3MJCT0gQ0xPQ0tfU09VUkNFX0lTX0NPTlRJTlVPVVMsDQotfTsN Ci0jZW5kaWYNCi0NCi1zdGF0aWMgdTY0IHJlYWRfaHZfY2xvY2tfbXNyKHN0cnVjdCBjbG9ja3Nv dXJjZSAqYXJnKQ0KLXsNCi0JdTY0IGN1cnJlbnRfdGljazsNCi0JLyoNCi0JICogUmVhZCB0aGUg cGFydGl0aW9uIGNvdW50ZXIgdG8gZ2V0IHRoZSBjdXJyZW50IHRpY2sgY291bnQuIFRoaXMgY291 bnQNCi0JICogaXMgc2V0IHRvIDAgd2hlbiB0aGUgcGFydGl0aW9uIGlzIGNyZWF0ZWQgYW5kIGlz IGluY3JlbWVudGVkIGluDQotCSAqIDEwMCBuYW5vc2Vjb25kIHVuaXRzLg0KLQkgKi8NCi0JcmRt c3JsKEhWX1g2NF9NU1JfVElNRV9SRUZfQ09VTlQsIGN1cnJlbnRfdGljayk7DQotCXJldHVybiBj dXJyZW50X3RpY2s7DQotfQ0KLQ0KLXN0YXRpYyBzdHJ1Y3QgY2xvY2tzb3VyY2UgaHlwZXJ2X2Nz X21zciA9IHsNCi0JLm5hbWUJCT0gImh5cGVydl9jbG9ja3NvdXJjZV9tc3IiLA0KLQkucmF0aW5n CQk9IDQwMCwNCi0JLnJlYWQJCT0gcmVhZF9odl9jbG9ja19tc3IsDQotCS5tYXNrCQk9IENMT0NL U09VUkNFX01BU0soNjQpLA0KLQkuZmxhZ3MJCT0gQ0xPQ0tfU09VUkNFX0lTX0NPTlRJTlVPVVMs DQotfTsNCisjaW5jbHVkZSA8Y2xvY2tzb3VyY2UvaHlwZXJ2X3RpbWVyLmg+DQogDQogdm9pZCAq aHZfaHlwZXJjYWxsX3BnOw0KIEVYUE9SVF9TWU1CT0xfR1BMKGh2X2h5cGVyY2FsbF9wZyk7DQot c3RydWN0IGNsb2Nrc291cmNlICpoeXBlcnZfY3M7DQotRVhQT1JUX1NZTUJPTF9HUEwoaHlwZXJ2 X2NzKTsNCiANCiB1MzIgKmh2X3ZwX2luZGV4Ow0KIEVYUE9SVF9TWU1CT0xfR1BMKGh2X3ZwX2lu ZGV4KTsNCkBAIC0zNTMsNDIgKzMwMiw4IEBAIHZvaWQgX19pbml0IGh5cGVydl9pbml0KHZvaWQp DQogDQogCXg4Nl9pbml0LnBjaS5hcmNoX2luaXQgPSBodl9wY2lfaW5pdDsNCiANCi0JLyoNCi0J ICogUmVnaXN0ZXIgSHlwZXItViBzcGVjaWZpYyBjbG9ja3NvdXJjZS4NCi0JICovDQotI2lmZGVm IENPTkZJR19IWVBFUlZfVFNDUEFHRQ0KLQlpZiAobXNfaHlwZXJ2LmZlYXR1cmVzICYgSFZfTVNS X1JFRkVSRU5DRV9UU0NfQVZBSUxBQkxFKSB7DQotCQl1bmlvbiBodl94NjRfbXNyX2h5cGVyY2Fs bF9jb250ZW50cyB0c2NfbXNyOw0KLQ0KLQkJdHNjX3BnID0gX192bWFsbG9jKFBBR0VfU0laRSwg R0ZQX0tFUk5FTCwgUEFHRV9LRVJORUwpOw0KLQkJaWYgKCF0c2NfcGcpDQotCQkJZ290byByZWdp c3Rlcl9tc3JfY3M7DQotDQotCQloeXBlcnZfY3MgPSAmaHlwZXJ2X2NzX3RzYzsNCi0NCi0JCXJk bXNybChIVl9YNjRfTVNSX1JFRkVSRU5DRV9UU0MsIHRzY19tc3IuYXNfdWludDY0KTsNCi0NCi0J CXRzY19tc3IuZW5hYmxlID0gMTsNCi0JCXRzY19tc3IuZ3Vlc3RfcGh5c2ljYWxfYWRkcmVzcyA9 IHZtYWxsb2NfdG9fcGZuKHRzY19wZyk7DQotDQotCQl3cm1zcmwoSFZfWDY0X01TUl9SRUZFUkVO Q0VfVFNDLCB0c2NfbXNyLmFzX3VpbnQ2NCk7DQotDQotCQloeXBlcnZfY3NfdHNjLmFyY2hkYXRh LnZjbG9ja19tb2RlID0gVkNMT0NLX0hWQ0xPQ0s7DQotDQotCQljbG9ja3NvdXJjZV9yZWdpc3Rl cl9oeigmaHlwZXJ2X2NzX3RzYywgTlNFQ19QRVJfU0VDLzEwMCk7DQotCQlyZXR1cm47DQotCX0N Ci1yZWdpc3Rlcl9tc3JfY3M6DQotI2VuZGlmDQotCS8qDQotCSAqIEZvciAzMiBiaXQgZ3Vlc3Rz IGp1c3QgdXNlIHRoZSBNU1IgYmFzZWQgbWVjaGFuaXNtIGZvciByZWFkaW5nDQotCSAqIHRoZSBw YXJ0aXRpb24gY291bnRlci4NCi0JICovDQotDQotCWh5cGVydl9jcyA9ICZoeXBlcnZfY3NfbXNy Ow0KLQlpZiAobXNfaHlwZXJ2LmZlYXR1cmVzICYgSFZfTVNSX1RJTUVfUkVGX0NPVU5UX0FWQUlM QUJMRSkNCi0JCWNsb2Nrc291cmNlX3JlZ2lzdGVyX2h6KCZoeXBlcnZfY3NfbXNyLCBOU0VDX1BF Ul9TRUMvMTAwKTsNCi0NCisJLyogUmVnaXN0ZXIgSHlwZXItViBzcGVjaWZpYyBjbG9ja3NvdXJj ZSAqLw0KKwlodl9pbml0X2Nsb2Nrc291cmNlKCk7DQogCXJldHVybjsNCiANCiByZW1vdmVfY3B1 aHBfc3RhdGU6DQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vbXNoeXBlcnYuaCBi L2FyY2gveDg2L2luY2x1ZGUvYXNtL21zaHlwZXJ2LmgNCmluZGV4IGNjNjBlNjEuLmY0ZmE4YTkg MTAwNjQ0DQotLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tc2h5cGVydi5oDQorKysgYi9hcmNo L3g4Ni9pbmNsdWRlL2FzbS9tc2h5cGVydi5oDQpAQCAtMTA1LDYgKzEwNSwxNyBAQCBzdGF0aWMg aW5saW5lIHZvaWQgdm1idXNfc2lnbmFsX2VvbShzdHJ1Y3QgaHZfbWVzc2FnZSAqbXNnLCB1MzIg b2xkX21zZ190eXBlKQ0KICNkZWZpbmUgaHZfZ2V0X2NyYXNoX2N0bCh2YWwpIFwNCiAJcmRtc3Js KEhWX1g2NF9NU1JfQ1JBU0hfQ1RMLCB2YWwpDQogDQorI2RlZmluZSBodl9nZXRfdGltZV9yZWZf Y291bnQodmFsKSBcDQorCXJkbXNybChIVl9YNjRfTVNSX1RJTUVfUkVGX0NPVU5ULCB2YWwpDQor DQorI2RlZmluZSBodl9nZXRfcmVmZXJlbmNlX3RzYyh2YWwpIFwNCisJcmRtc3JsKEhWX1g2NF9N U1JfUkVGRVJFTkNFX1RTQywgdmFsKQ0KKyNkZWZpbmUgaHZfc2V0X3JlZmVyZW5jZV90c2ModmFs KSBcDQorCXdybXNybChIVl9YNjRfTVNSX1JFRkVSRU5DRV9UU0MsIHZhbCkNCisjZGVmaW5lIGh2 X3NldF9jbG9ja3NvdXJjZV92ZHNvKHZhbCkgXA0KKwkoKHZhbCkuYXJjaGRhdGEudmNsb2NrX21v ZGUgPSBWQ0xPQ0tfSFZDTE9DSykNCisjZGVmaW5lIGh2X2dldF9yYXdfdGltZXIoKSByZHRzY19v cmRlcmVkKCkNCisNCiB2b2lkIGh5cGVydl9jYWxsYmFja192ZWN0b3Iodm9pZCk7DQogdm9pZCBo eXBlcnZfcmVlbmxpZ2h0ZW5tZW50X3ZlY3Rvcih2b2lkKTsNCiAjaWZkZWYgQ09ORklHX1RSQUNJ TkcNCkBAIC0xMzMsNyArMTQ0LDYgQEAgc3RhdGljIGlubGluZSB2b2lkIGh2X2Rpc2FibGVfc3Rp bWVyMF9wZXJjcHVfaXJxKGludCBpcnEpIHt9DQogDQogDQogI2lmIElTX0VOQUJMRUQoQ09ORklH X0hZUEVSVikNCi1leHRlcm4gc3RydWN0IGNsb2Nrc291cmNlICpoeXBlcnZfY3M7DQogZXh0ZXJu IHZvaWQgKmh2X2h5cGVyY2FsbF9wZzsNCiBleHRlcm4gdm9pZCAgX19wZXJjcHUgICoqaHlwZXJ2 X3BjcHVfaW5wdXRfYXJnOw0KIA0KQEAgLTM4Nyw3MyArMzk3LDQgQEAgc3RhdGljIGlubGluZSBp bnQgaHlwZXJ2X2ZsdXNoX2d1ZXN0X21hcHBpbmdfcmFuZ2UodTY0IGFzLA0KIH0NCiAjZW5kaWYg LyogQ09ORklHX0hZUEVSViAqLw0KIA0KLSNpZmRlZiBDT05GSUdfSFlQRVJWX1RTQ1BBR0UNCi1z dHJ1Y3QgbXNfaHlwZXJ2X3RzY19wYWdlICpodl9nZXRfdHNjX3BhZ2Uodm9pZCk7DQotc3RhdGlj IGlubGluZSB1NjQgaHZfcmVhZF90c2NfcGFnZV90c2MoY29uc3Qgc3RydWN0IG1zX2h5cGVydl90 c2NfcGFnZSAqdHNjX3BnLA0KLQkJCQkgICAgICAgdTY0ICpjdXJfdHNjKQ0KLXsNCi0JdTY0IHNj YWxlLCBvZmZzZXQ7DQotCXUzMiBzZXF1ZW5jZTsNCi0NCi0JLyoNCi0JICogVGhlIHByb3RvY29s IGZvciByZWFkaW5nIEh5cGVyLVYgVFNDIHBhZ2UgaXMgc3BlY2lmaWVkIGluIEh5cGVydmlzb3IN Ci0JICogVG9wLUxldmVsIEZ1bmN0aW9uYWwgU3BlY2lmaWNhdGlvbiB2ZXIuIDMuMCBhbmQgYWJv dmUuIFRvIGdldCB0aGUNCi0JICogcmVmZXJlbmNlIHRpbWUgd2UgbXVzdCBkbyB0aGUgZm9sbG93 aW5nOg0KLQkgKiAtIFJFQUQgUmVmZXJlbmNlVHNjU2VxdWVuY2UNCi0JICogICBBIHNwZWNpYWwg JzAnIHZhbHVlIGluZGljYXRlcyB0aGUgdGltZSBzb3VyY2UgaXMgdW5yZWxpYWJsZSBhbmQgd2UN Ci0JICogICBuZWVkIHRvIHVzZSBzb21ldGhpbmcgZWxzZS4gVGhlIGN1cnJlbnRseSBwdWJsaXNo ZWQgc3BlY2lmaWNhdGlvbg0KLQkgKiAgIHZlcnNpb25zICh1cCB0byA0LjBiKSBjb250YWluIGEg bWlzdGFrZSBhbmQgd3JvbmdseSBjbGFpbSAnLTEnDQotCSAqICAgaW5zdGVhZCBvZiAnMCcgYXMg dGhlIHNwZWNpYWwgdmFsdWUsIHNlZSBjb21taXQgYzM1YjgyZWYwMjk0Lg0KLQkgKiAtIFJlZmVy ZW5jZVRpbWUgPQ0KLQkgKiAgICAgICAgKChSRFRTQygpICogUmVmZXJlbmNlVHNjU2NhbGUpID4+ IDY0KSArIFJlZmVyZW5jZVRzY09mZnNldA0KLQkgKiAtIFJFQUQgUmVmZXJlbmNlVHNjU2VxdWVu Y2UgYWdhaW4uIEluIGNhc2UgaXRzIHZhbHVlIGhhcyBjaGFuZ2VkDQotCSAqICAgc2luY2Ugb3Vy IGZpcnN0IHJlYWRpbmcgd2UgbmVlZCB0byBkaXNjYXJkIFJlZmVyZW5jZVRpbWUgYW5kIHJlcGVh dA0KLQkgKiAgIHRoZSB3aG9sZSBzZXF1ZW5jZSBhcyB0aGUgaHlwZXJ2aXNvciB3YXMgdXBkYXRp bmcgdGhlIHBhZ2UgaW4NCi0JICogICBiZXR3ZWVuLg0KLQkgKi8NCi0JZG8gew0KLQkJc2VxdWVu Y2UgPSBSRUFEX09OQ0UodHNjX3BnLT50c2Nfc2VxdWVuY2UpOw0KLQkJaWYgKCFzZXF1ZW5jZSkN Ci0JCQlyZXR1cm4gVTY0X01BWDsNCi0JCS8qDQotCQkgKiBNYWtlIHN1cmUgd2UgcmVhZCBzZXF1 ZW5jZSBiZWZvcmUgd2UgcmVhZCBvdGhlciB2YWx1ZXMgZnJvbQ0KLQkJICogVFNDIHBhZ2UuDQot CQkgKi8NCi0JCXNtcF9ybWIoKTsNCi0NCi0JCXNjYWxlID0gUkVBRF9PTkNFKHRzY19wZy0+dHNj X3NjYWxlKTsNCi0JCW9mZnNldCA9IFJFQURfT05DRSh0c2NfcGctPnRzY19vZmZzZXQpOw0KLQkJ KmN1cl90c2MgPSByZHRzY19vcmRlcmVkKCk7DQotDQotCQkvKg0KLQkJICogTWFrZSBzdXJlIHdl IHJlYWQgc2VxdWVuY2UgYWZ0ZXIgd2UgcmVhZCBhbGwgb3RoZXIgdmFsdWVzDQotCQkgKiBmcm9t IFRTQyBwYWdlLg0KLQkJICovDQotCQlzbXBfcm1iKCk7DQotDQotCX0gd2hpbGUgKFJFQURfT05D RSh0c2NfcGctPnRzY19zZXF1ZW5jZSkgIT0gc2VxdWVuY2UpOw0KLQ0KLQlyZXR1cm4gbXVsX3U2 NF91NjRfc2hyKCpjdXJfdHNjLCBzY2FsZSwgNjQpICsgb2Zmc2V0Ow0KLX0NCi0NCi1zdGF0aWMg aW5saW5lIHU2NCBodl9yZWFkX3RzY19wYWdlKGNvbnN0IHN0cnVjdCBtc19oeXBlcnZfdHNjX3Bh Z2UgKnRzY19wZykNCi17DQotCXU2NCBjdXJfdHNjOw0KLQ0KLQlyZXR1cm4gaHZfcmVhZF90c2Nf cGFnZV90c2ModHNjX3BnLCAmY3VyX3RzYyk7DQotfQ0KLQ0KLSNlbHNlDQotc3RhdGljIGlubGlu ZSBzdHJ1Y3QgbXNfaHlwZXJ2X3RzY19wYWdlICpodl9nZXRfdHNjX3BhZ2Uodm9pZCkNCi17DQot CXJldHVybiBOVUxMOw0KLX0NCi0NCi1zdGF0aWMgaW5saW5lIHU2NCBodl9yZWFkX3RzY19wYWdl X3RzYyhjb25zdCBzdHJ1Y3QgbXNfaHlwZXJ2X3RzY19wYWdlICp0c2NfcGcsDQotCQkJCSAgICAg ICB1NjQgKmN1cl90c2MpDQotew0KLQlCVUcoKTsNCi0JcmV0dXJuIFU2NF9NQVg7DQotfQ0KLSNl bmRpZg0KICNlbmRpZg0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS94ODYuYyBiL2FyY2gveDg2 L2t2bS94ODYuYw0KaW5kZXggNTM2Yjc4Yy4uM2ZiYWFjMCAxMDA2NDQNCi0tLSBhL2FyY2gveDg2 L2t2bS94ODYuYw0KKysrIGIvYXJjaC94ODYva3ZtL3g4Ni5jDQpAQCAtNzAsNiArNzAsNyBAQA0K ICNpbmNsdWRlIDxhc20vbXNoeXBlcnYuaD4NCiAjaW5jbHVkZSA8YXNtL2h5cGVydmlzb3IuaD4N CiAjaW5jbHVkZSA8YXNtL2ludGVsX3B0Lmg+DQorI2luY2x1ZGUgPGNsb2Nrc291cmNlL2h5cGVy dl90aW1lci5oPg0KIA0KICNkZWZpbmUgQ1JFQVRFX1RSQUNFX1BPSU5UUw0KICNpbmNsdWRlICJ0 cmFjZS5oIg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xvY2tzb3VyY2UvaHlwZXJ2X3RpbWVyLmMg Yi9kcml2ZXJzL2Nsb2Nrc291cmNlL2h5cGVydl90aW1lci5jDQppbmRleCAzMDYxNWYzLi4yNzQ2 MTRkIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9jbG9ja3NvdXJjZS9oeXBlcnZfdGltZXIuYw0KKysr IGIvZHJpdmVycy9jbG9ja3NvdXJjZS9oeXBlcnZfdGltZXIuYw0KQEAgLTE0LDYgKzE0LDggQEAN CiAjaW5jbHVkZSA8bGludXgvcGVyY3B1Lmg+DQogI2luY2x1ZGUgPGxpbnV4L2NwdW1hc2suaD4N CiAjaW5jbHVkZSA8bGludXgvY2xvY2tjaGlwcy5oPg0KKyNpbmNsdWRlIDxsaW51eC9jbG9ja3Nv dXJjZS5oPg0KKyNpbmNsdWRlIDxsaW51eC9zY2hlZF9jbG9jay5oPg0KICNpbmNsdWRlIDxsaW51 eC9tbS5oPg0KICNpbmNsdWRlIDxjbG9ja3NvdXJjZS9oeXBlcnZfdGltZXIuaD4NCiAjaW5jbHVk ZSA8YXNtL2h5cGVydi10bGZzLmg+DQpAQCAtMTg5LDMgKzE5MSwxMzEgQEAgdm9pZCBodl9zdGlt ZXJfZ2xvYmFsX2NsZWFudXAodm9pZCkNCiAJaHZfc3RpbWVyX2ZyZWUoKTsNCiB9DQogRVhQT1JU X1NZTUJPTF9HUEwoaHZfc3RpbWVyX2dsb2JhbF9jbGVhbnVwKTsNCisNCisvKg0KKyAqIENvZGUg YW5kIGRlZmluaXRpb25zIGZvciB0aGUgSHlwZXItViBjbG9ja3NvdXJjZXMuICBUd28NCisgKiBj bG9ja3NvdXJjZXMgYXJlIGRlZmluZWQ6IG9uZSB0aGF0IHJlYWRzIHRoZSBIeXBlci1WIGRlZmlu ZWQgTVNSLCBhbmQNCisgKiB0aGUgb3RoZXIgdGhhdCB1c2VzIHRoZSBUU0MgcmVmZXJlbmNlIHBh Z2UgZmVhdHVyZSBhcyBkZWZpbmVkIGluIHRoZQ0KKyAqIFRMRlMuICBUaGUgTVNSIHZlcnNpb24g aXMgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBvbGQgdmVyc2lvbnMgb2YNCisgKiBIeXBlci1WIGFu ZCAzMi1iaXQgeDg2LiAgVGhlIFRTQyByZWZlcmVuY2UgcGFnZSB2ZXJzaW9uIGlzIHByZWZlcnJl ZC4NCisgKi8NCisNCitzdHJ1Y3QgY2xvY2tzb3VyY2UgKmh5cGVydl9jczsNCitFWFBPUlRfU1lN Qk9MX0dQTChoeXBlcnZfY3MpOw0KKw0KKyNpZmRlZiBDT05GSUdfSFlQRVJWX1RTQ1BBR0UNCisN CitzdGF0aWMgc3RydWN0IG1zX2h5cGVydl90c2NfcGFnZSAqdHNjX3BnOw0KKw0KK3N0cnVjdCBt c19oeXBlcnZfdHNjX3BhZ2UgKmh2X2dldF90c2NfcGFnZSh2b2lkKQ0KK3sNCisJcmV0dXJuIHRz Y19wZzsNCit9DQorRVhQT1JUX1NZTUJPTF9HUEwoaHZfZ2V0X3RzY19wYWdlKTsNCisNCitzdGF0 aWMgdTY0IHJlYWRfaHZfc2NoZWRfY2xvY2tfdHNjKHZvaWQpDQorew0KKwl1NjQgY3VycmVudF90 aWNrID0gaHZfcmVhZF90c2NfcGFnZSh0c2NfcGcpOw0KKw0KKwlpZiAoY3VycmVudF90aWNrID09 IFU2NF9NQVgpDQorCQlodl9nZXRfdGltZV9yZWZfY291bnQoY3VycmVudF90aWNrKTsNCisNCisJ cmV0dXJuIGN1cnJlbnRfdGljazsNCit9DQorDQorc3RhdGljIHU2NCByZWFkX2h2X2Nsb2NrX3Rz YyhzdHJ1Y3QgY2xvY2tzb3VyY2UgKmFyZykNCit7DQorCXJldHVybiByZWFkX2h2X3NjaGVkX2Ns b2NrX3RzYygpOw0KK30NCisNCitzdGF0aWMgc3RydWN0IGNsb2Nrc291cmNlIGh5cGVydl9jc190 c2MgPSB7DQorCQkubmFtZQkJPSAiaHlwZXJ2X2Nsb2Nrc291cmNlX3RzY19wYWdlIiwNCisJCS5y YXRpbmcJCT0gNDAwLA0KKwkJLnJlYWQJCT0gcmVhZF9odl9jbG9ja190c2MsDQorCQkubWFzawkJ PSBDTE9DS1NPVVJDRV9NQVNLKDY0KSwNCisJCS5mbGFncwkJPSBDTE9DS19TT1VSQ0VfSVNfQ09O VElOVU9VUywNCit9Ow0KKyNlbmRpZg0KKw0KK3N0YXRpYyB1NjQgcmVhZF9odl9zY2hlZF9jbG9j a19tc3Iodm9pZCkNCit7DQorCXU2NCBjdXJyZW50X3RpY2s7DQorCS8qDQorCSAqIFJlYWQgdGhl IHBhcnRpdGlvbiBjb3VudGVyIHRvIGdldCB0aGUgY3VycmVudCB0aWNrIGNvdW50LiBUaGlzIGNv dW50DQorCSAqIGlzIHNldCB0byAwIHdoZW4gdGhlIHBhcnRpdGlvbiBpcyBjcmVhdGVkIGFuZCBp cyBpbmNyZW1lbnRlZCBpbg0KKwkgKiAxMDAgbmFub3NlY29uZCB1bml0cy4NCisJICovDQorCWh2 X2dldF90aW1lX3JlZl9jb3VudChjdXJyZW50X3RpY2spOw0KKwlyZXR1cm4gY3VycmVudF90aWNr Ow0KK30NCisNCitzdGF0aWMgdTY0IHJlYWRfaHZfY2xvY2tfbXNyKHN0cnVjdCBjbG9ja3NvdXJj ZSAqYXJnKQ0KK3sNCisJcmV0dXJuIHJlYWRfaHZfc2NoZWRfY2xvY2tfbXNyKCk7DQorfQ0KKw0K K3N0YXRpYyBzdHJ1Y3QgY2xvY2tzb3VyY2UgaHlwZXJ2X2NzX21zciA9IHsNCisJLm5hbWUJCT0g Imh5cGVydl9jbG9ja3NvdXJjZV9tc3IiLA0KKwkucmF0aW5nCQk9IDQwMCwNCisJLnJlYWQJCT0g cmVhZF9odl9jbG9ja19tc3IsDQorCS5tYXNrCQk9IENMT0NLU09VUkNFX01BU0soNjQpLA0KKwku ZmxhZ3MJCT0gQ0xPQ0tfU09VUkNFX0lTX0NPTlRJTlVPVVMsDQorfTsNCisNCit2b2lkIF9faW5p dCBodl9pbml0X2Nsb2Nrc291cmNlKHZvaWQpDQorew0KKyNpZmRlZiBDT05GSUdfSFlQRVJWX1RT Q1BBR0UNCisJaWYgKG1zX2h5cGVydi5mZWF0dXJlcyAmIEhWX01TUl9SRUZFUkVOQ0VfVFNDX0FW QUlMQUJMRSkgew0KKw0KKwkJdTY0CQl0c2NfbXNyOw0KKwkJcGh5c19hZGRyX3QJcGh5c19hZGRy Ow0KKw0KKwkJdHNjX3BnID0gdm1hbGxvYyhQQUdFX1NJWkUpOw0KKwkJaWYgKCF0c2NfcGcpDQor CQkJZ290byByZWdpc3Rlcl9tc3JfY3M7DQorDQorCQloeXBlcnZfY3MgPSAmaHlwZXJ2X2NzX3Rz YzsNCisJCXBoeXNfYWRkciA9IHBhZ2VfdG9fcGh5cyh2bWFsbG9jX3RvX3BhZ2UodHNjX3BnKSk7 DQorDQorCQkvKiBUaGUgSHlwZXItViBUTEZTIHNwZWNpZmllcyB0byBwcmVzZXJ2ZSB0aGUgdmFs dWUgb2YNCisJCSAqIHJlc2VydmVkIGJpdHMgaW4gcmVnaXN0ZXJzLiAgU28gcmVhZCB0aGUgZXhp c3RpbmcNCisJCSAqIHZhbHVlLCBwcmVzZXJ2ZSB0aGUgbG93IG9yZGVyIDEyIGJpdHMsIGFuZCBh ZGQgaW4NCisJCSAqIHRoZSBndWVzdCBwaHlzaWNhbCBhZGRyZXNzICh3aGljaCBhbHJlYWR5IGhh cyBhdA0KKwkJICogbGVhc3QgdGhlIGxvdyAxMiBiaXRzIHNldCB0byB6ZXJvIHNpbmNlIGl0IGlz IHBhZ2UNCisJCSAqIGFsaWduZWQpLiBBbHNvIHNldCB0aGUgImVuYWJsZSIgYml0LCB3aGljaCBp cyBiaXQgMC4NCisJCSAqLw0KKwkJaHZfZ2V0X3JlZmVyZW5jZV90c2ModHNjX21zcik7DQorCQl0 c2NfbXNyICY9IEdFTk1BU0tfVUxMKDExLCAwKTsNCisJCXRzY19tc3IgPSB0c2NfbXNyIHwgMHgx IHwgKHU2NClwaHlzX2FkZHI7DQorCQlodl9zZXRfcmVmZXJlbmNlX3RzYyh0c2NfbXNyKTsNCisN CisJCWh2X3NldF9jbG9ja3NvdXJjZV92ZHNvKGh5cGVydl9jc190c2MpOw0KKwkJY2xvY2tzb3Vy Y2VfcmVnaXN0ZXJfaHooJmh5cGVydl9jc190c2MsIE5TRUNfUEVSX1NFQy8xMDApOw0KKw0KKwkJ LyoNCisJCSAqIHNjaGVkX2Nsb2NrX3JlZ2lzdGVyIGlzIG5lZWRlZCBvbiBBUk02NCBidXQNCisJ CSAqIGlzIGEgbm8tb3Agb24geDg2DQorCQkgKi8NCisJCXNjaGVkX2Nsb2NrX3JlZ2lzdGVyKHJl YWRfaHZfc2NoZWRfY2xvY2tfdHNjLA0KKwkJCQkJCTY0LCBIVl9DTE9DS19IWik7DQorCQlyZXR1 cm47DQorCX0NCityZWdpc3Rlcl9tc3JfY3M6DQorI2VuZGlmDQorCS8qDQorCSAqIEZvciAzMiBi aXQgZ3Vlc3RzIGp1c3QgdXNlIHRoZSBNU1IgYmFzZWQgbWVjaGFuaXNtIGZvciByZWFkaW5nDQor CSAqIHRoZSBwYXJ0aXRpb24gY291bnRlci4NCisJICovDQorCWh5cGVydl9jcyA9ICZoeXBlcnZf Y3NfbXNyOw0KKwlpZiAobXNfaHlwZXJ2LmZlYXR1cmVzICYgSFZfTVNSX1RJTUVfUkVGX0NPVU5U X0FWQUlMQUJMRSkgew0KKwkJY2xvY2tzb3VyY2VfcmVnaXN0ZXJfaHooJmh5cGVydl9jc19tc3Is IE5TRUNfUEVSX1NFQy8xMDApOw0KKw0KKwkJLyoNCisJCSAqIHNjaGVkX2Nsb2NrX3JlZ2lzdGVy IGlzIG5lZWRlZCBvbiBBUk02NCBidXQNCisJCSAqIGlzIGEgbm8tb3Agb24geDg2DQorCQkgKi8N CisJCXNjaGVkX2Nsb2NrX3JlZ2lzdGVyKHJlYWRfaHZfc2NoZWRfY2xvY2tfbXNyLA0KKwkJCQkJ CTY0LCBIVl9DTE9DS19IWik7DQorCX0NCit9DQorRVhQT1JUX1NZTUJPTF9HUEwoaHZfaW5pdF9j bG9ja3NvdXJjZSk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9odi9odl91dGlsLmMgYi9kcml2ZXJz L2h2L2h2X3V0aWwuYw0KaW5kZXggZjEwZWViMS4uOWVmZjg1ZSAxMDA2NDQNCi0tLSBhL2RyaXZl cnMvaHYvaHZfdXRpbC5jDQorKysgYi9kcml2ZXJzL2h2L2h2X3V0aWwuYw0KQEAgLTI5LDYgKzI5 LDcgQEANCiAjaW5jbHVkZSA8bGludXgvaHlwZXJ2Lmg+DQogI2luY2x1ZGUgPGxpbnV4L2Nsb2Nr Y2hpcHMuaD4NCiAjaW5jbHVkZSA8bGludXgvcHRwX2Nsb2NrX2tlcm5lbC5oPg0KKyNpbmNsdWRl IDxjbG9ja3NvdXJjZS9oeXBlcnZfdGltZXIuaD4NCiAjaW5jbHVkZSA8YXNtL21zaHlwZXJ2Lmg+ DQogDQogI2luY2x1ZGUgImh5cGVydl92bWJ1cy5oIg0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY2xv Y2tzb3VyY2UvaHlwZXJ2X3RpbWVyLmggYi9pbmNsdWRlL2Nsb2Nrc291cmNlL2h5cGVydl90aW1l ci5oDQppbmRleCBiYTVkYzE3Li5lMTdlOGEyIDEwMDY0NA0KLS0tIGEvaW5jbHVkZS9jbG9ja3Nv dXJjZS9oeXBlcnZfdGltZXIuaA0KKysrIGIvaW5jbHVkZS9jbG9ja3NvdXJjZS9oeXBlcnZfdGlt ZXIuaA0KQEAgLTEzLDYgKzEzLDEwIEBADQogI2lmbmRlZiBfX0NMS1NPVVJDRV9IWVBFUlZfVElN RVJfSA0KICNkZWZpbmUgX19DTEtTT1VSQ0VfSFlQRVJWX1RJTUVSX0gNCiANCisjaW5jbHVkZSA8 bGludXgvY2xvY2tzb3VyY2UuaD4NCisjaW5jbHVkZSA8bGludXgvbWF0aDY0Lmg+DQorI2luY2x1 ZGUgPGFzbS9tc2h5cGVydi5oPg0KKw0KICNkZWZpbmUgSFZfTUFYX01BWF9ERUxUQV9USUNLUyAw eGZmZmZmZmZmDQogI2RlZmluZSBIVl9NSU5fREVMVEFfVElDS1MgMQ0KIA0KQEAgLTI0LDQgKzI4 LDc4IEBADQogZXh0ZXJuIHZvaWQgaHZfc3RpbWVyX2dsb2JhbF9jbGVhbnVwKHZvaWQpOw0KIGV4 dGVybiB2b2lkIGh2X3N0aW1lcjBfaXNyKHZvaWQpOw0KIA0KKyNpZiBJU19FTkFCTEVEKENPTkZJ R19IWVBFUlYpDQorZXh0ZXJuIHN0cnVjdCBjbG9ja3NvdXJjZSAqaHlwZXJ2X2NzOw0KK2V4dGVy biB2b2lkIGh2X2luaXRfY2xvY2tzb3VyY2Uodm9pZCk7DQorI2VuZGlmIC8qIENPTkZJR19IWVBF UlYgKi8NCisNCisjaWZkZWYgQ09ORklHX0hZUEVSVl9UU0NQQUdFDQorZXh0ZXJuIHN0cnVjdCBt c19oeXBlcnZfdHNjX3BhZ2UgKmh2X2dldF90c2NfcGFnZSh2b2lkKTsNCitzdGF0aWMgaW5saW5l IHU2NCBodl9yZWFkX3RzY19wYWdlX3RzYyhjb25zdCBzdHJ1Y3QgbXNfaHlwZXJ2X3RzY19wYWdl ICp0c2NfcGcsDQorCQkJCSAgICAgICB1NjQgKmN1cl90c2MpDQorew0KKwl1NjQgc2NhbGUsIG9m ZnNldDsNCisJdTMyIHNlcXVlbmNlOw0KKw0KKwkvKg0KKwkgKiBUaGUgcHJvdG9jb2wgZm9yIHJl YWRpbmcgSHlwZXItViBUU0MgcGFnZSBpcyBzcGVjaWZpZWQgaW4gSHlwZXJ2aXNvcg0KKwkgKiBU b3AtTGV2ZWwgRnVuY3Rpb25hbCBTcGVjaWZpY2F0aW9uIHZlci4gMy4wIGFuZCBhYm92ZS4gVG8g Z2V0IHRoZQ0KKwkgKiByZWZlcmVuY2UgdGltZSB3ZSBtdXN0IGRvIHRoZSBmb2xsb3dpbmc6DQor CSAqIC0gUkVBRCBSZWZlcmVuY2VUc2NTZXF1ZW5jZQ0KKwkgKiAgIEEgc3BlY2lhbCAnMCcgdmFs dWUgaW5kaWNhdGVzIHRoZSB0aW1lIHNvdXJjZSBpcyB1bnJlbGlhYmxlIGFuZCB3ZQ0KKwkgKiAg IG5lZWQgdG8gdXNlIHNvbWV0aGluZyBlbHNlLiBUaGUgY3VycmVudGx5IHB1Ymxpc2hlZCBzcGVj aWZpY2F0aW9uDQorCSAqICAgdmVyc2lvbnMgKHVwIHRvIDQuMGIpIGNvbnRhaW4gYSBtaXN0YWtl IGFuZCB3cm9uZ2x5IGNsYWltICctMScNCisJICogICBpbnN0ZWFkIG9mICcwJyBhcyB0aGUgc3Bl Y2lhbCB2YWx1ZSwgc2VlIGNvbW1pdCBjMzViODJlZjAyOTQuDQorCSAqIC0gUmVmZXJlbmNlVGlt ZSA9DQorCSAqICAgICAgICAoKFJEVFNDKCkgKiBSZWZlcmVuY2VUc2NTY2FsZSkgPj4gNjQpICsg UmVmZXJlbmNlVHNjT2Zmc2V0DQorCSAqIC0gUkVBRCBSZWZlcmVuY2VUc2NTZXF1ZW5jZSBhZ2Fp bi4gSW4gY2FzZSBpdHMgdmFsdWUgaGFzIGNoYW5nZWQNCisJICogICBzaW5jZSBvdXIgZmlyc3Qg cmVhZGluZyB3ZSBuZWVkIHRvIGRpc2NhcmQgUmVmZXJlbmNlVGltZSBhbmQgcmVwZWF0DQorCSAq ICAgdGhlIHdob2xlIHNlcXVlbmNlIGFzIHRoZSBoeXBlcnZpc29yIHdhcyB1cGRhdGluZyB0aGUg cGFnZSBpbg0KKwkgKiAgIGJldHdlZW4uDQorCSAqLw0KKwlkbyB7DQorCQlzZXF1ZW5jZSA9IFJF QURfT05DRSh0c2NfcGctPnRzY19zZXF1ZW5jZSk7DQorCQlpZiAoIXNlcXVlbmNlKQ0KKwkJCXJl dHVybiBVNjRfTUFYOw0KKwkJLyoNCisJCSAqIE1ha2Ugc3VyZSB3ZSByZWFkIHNlcXVlbmNlIGJl Zm9yZSB3ZSByZWFkIG90aGVyIHZhbHVlcyBmcm9tDQorCQkgKiBUU0MgcGFnZS4NCisJCSAqLw0K KwkJc21wX3JtYigpOw0KKw0KKwkJc2NhbGUgPSBSRUFEX09OQ0UodHNjX3BnLT50c2Nfc2NhbGUp Ow0KKwkJb2Zmc2V0ID0gUkVBRF9PTkNFKHRzY19wZy0+dHNjX29mZnNldCk7DQorCQkqY3VyX3Rz YyA9IGh2X2dldF9yYXdfdGltZXIoKTsNCisNCisJCS8qDQorCQkgKiBNYWtlIHN1cmUgd2UgcmVh ZCBzZXF1ZW5jZSBhZnRlciB3ZSByZWFkIGFsbCBvdGhlciB2YWx1ZXMNCisJCSAqIGZyb20gVFND IHBhZ2UuDQorCQkgKi8NCisJCXNtcF9ybWIoKTsNCisNCisJfSB3aGlsZSAoUkVBRF9PTkNFKHRz Y19wZy0+dHNjX3NlcXVlbmNlKSAhPSBzZXF1ZW5jZSk7DQorDQorCXJldHVybiBtdWxfdTY0X3U2 NF9zaHIoKmN1cl90c2MsIHNjYWxlLCA2NCkgKyBvZmZzZXQ7DQorfQ0KKw0KK3N0YXRpYyBpbmxp bmUgdTY0IGh2X3JlYWRfdHNjX3BhZ2UoY29uc3Qgc3RydWN0IG1zX2h5cGVydl90c2NfcGFnZSAq dHNjX3BnKQ0KK3sNCisJdTY0IGN1cl90c2M7DQorDQorCXJldHVybiBodl9yZWFkX3RzY19wYWdl X3RzYyh0c2NfcGcsICZjdXJfdHNjKTsNCit9DQorDQorI2Vsc2UgLyogQ09ORklHX0hZUEVSVl9U U0NfUEFHRSAqLw0KK3N0YXRpYyBpbmxpbmUgc3RydWN0IG1zX2h5cGVydl90c2NfcGFnZSAqaHZf Z2V0X3RzY19wYWdlKHZvaWQpDQorew0KKwlyZXR1cm4gTlVMTDsNCit9DQorDQorc3RhdGljIGlu bGluZSB1NjQgaHZfcmVhZF90c2NfcGFnZV90c2MoY29uc3Qgc3RydWN0IG1zX2h5cGVydl90c2Nf cGFnZSAqdHNjX3BnLA0KKwkJCQkgICAgICAgdTY0ICpjdXJfdHNjKQ0KK3sNCisJcmV0dXJuIFU2 NF9NQVg7DQorfQ0KKyNlbmRpZiAvKiBDT05GSUdfSFlQRVJWX1RTQ1BBR0UgKi8NCisNCiAjZW5k aWYNCi0tIA0KMS44LjMuMQ0KDQo=