From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.openvz.org (unknown [69.168.225.77]) by lore.virtuozzo.com (Postfix) with ESMTPS id E582A802A5 for ; Fri, 9 Oct 2026 14:01:02 +0000 (UTC) Received: from mail.openvz.org (localhost [127.0.0.1]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 699DxlBB008292; Fri, 9 Oct 2026 16:59:48 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 699DxlBB008292 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="g8hL7uW+" Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 699DxaC7008264 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Fri, 9 Oct 2026 16:59:36 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 699DxaC7008264 Received: by mail-wr1-f72.google.com with SMTP id ffacd0b85a97d-486f9d150c3so3683242f8f.3 for ; Fri, 09 Oct 2026 06:59:36 -0700 (PDT) X-Gm-Message-State: AFq9FYLX6+IJVqD6rGfamGay3yEYEyg7oTqc4+X9bYhKR6OG3YAEPZsB XEosJVbCvvhOS5UCeKGGcoeKfNBHn4VEC/xZYBN+7w+VxQeCTY+6agncmI9h7EdVi4ovH8bBd1L 3rseVVEOVLdkSb2ok1RetsnnmA2XW5NEFzFRnAeLPIsSFHyEjj/hx9Q== X-Gm-Gg: AYBFou1SNmZRS117b259Cu75kYIvVugwfteU/tJQ0LBxhjVwojzXm4VSnv5mqu+SldO rgohWuXoAwdcjl7pzWL8177EpdtGGu7qiwIsyFKzg9F87a2B/Xj7xgvI7wMiZUsm8GUTabdQeL9 Rbm+Hy8EYU645zDdKVHrJOfcdsl1Sz12cotLZBZOpWpPse2NySv0YQCQQKXBZK9e7DY3ZEIC9df OrHNNap5b/Mjr3wmgo8r4y4wa1fTTOFZ1OGpY8y823jU4Aeg4qWUFT/SFQRFf2opgb00XcnV+Z+ pZtr0Zt8qx1UqAGfr7/xNc3E5lko8vMsbOx56bFh4p/lEdeU9L45ZaEpK96ntJ5ITlCUvWGKFMa VcFZ1h4TZCB+t8CZxl3cOmHJIxQ== X-Received: by 2002:a05:6000:2212:b0:48c:5cf9:88d6 with SMTP id ffacd0b85a97d-48dba7bea17mr4066975f8f.2.1791554376092; Fri, 09 Oct 2026 06:59:36 -0700 (PDT) X-Received: by 2002:a05:6000:2212:b0:48c:5cf9:88d6 with SMTP id ffacd0b85a97d-48dba7bea17mr4066915f8f.2.1791554375409; Fri, 09 Oct 2026 06:59:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1791554375; cv=none; d=google.com; s=arc-20260327; b=TBF7dzQlPCc2EmsxhFkRt9UxDmjNXTODl0qeYj+4aKtz923PzLaF/v+tF50+f8CiPp DyqkJBWtf4QFqQcrrn+VYsukXt/TVSCD5BAirkiKiAc+6AGwCWY0XcARHmS0KAf6PFH/ mn9D3p96hVxTmvCYiFSYkf00IVlnxwcT5/ixORGyGaHRn6IuOhPevJ3u8HBJpEiw53Nb 88Snv39NKiZNkYVhcd2y4rclT0awLuIcKb4dkhI1pid8jD60BhAIlDyByH/VvrVxvNQk KyYBOcyZ2lrXQoXUzSMpmK/mUEBG1S9gb1KV+jeMNBi2GZXF0MEhB62WyCzqG/n3FSWU NRKg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=1yggavE33n2JrtyMA/fpBomiHBo/tyegkRc5x2lKnsE=; fh=WpT6aB7RBAGHZeWZzqAr71yzRFbPTYkPWKsRagLn48Q=; b=IJ4+jyYHhQieKyfvBfmo/9UW0btLaS7Ywt5IVLDDk5w5WCGyiHAyzKMGojcdm+eBVp 5ZfWeJA9TDcObHY/yE8vJ9IUhy2dEsm/+FXxEhAZejZVmvfRSuVW+oJa/X9Zs7/8UJDu t57xf5oDpuHMs1uhv3nSXvhitA0jdMb/TOIerbBDNQcyLapkTgQd2PODYPw1hOF50JTj wF+CZMEc0cvcb9cBfRdnLSo/8vPcObLOwfwrbVc5YPMV87uwxcvYs1YFd8Y+F75JPm0+ b4XXJUN0L6xUWxClcuHoyax8xJk3/TwEYuH9SzkdWSzNTWogy8GIgvfbazej9O22/S19 eyZw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=g8hL7uW+; spf=pass (google.com: domain of eva.kurchatova@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=eva.kurchatova@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from relay.virtuozzo.com (relay.virtuozzo.com. [130.117.225.111]) by mx.google.com with ESMTPS id ffacd0b85a97d-48dc1b02fadsi372105f8f.158.2026.10.09.06.59.35 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 09 Oct 2026 06:59:35 -0700 (PDT) Received-SPF: pass (google.com: domain of eva.kurchatova@virtuozzo.com designates 130.117.225.111 as permitted sender) client-ip=130.117.225.111; Authentication-Results: mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=g8hL7uW+; spf=pass (google.com: domain of eva.kurchatova@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=eva.kurchatova@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=virtuozzo.com; s=relay; h=Content-Type:MIME-Version:Message-ID:Date:Subject :From; bh=1yggavE33n2JrtyMA/fpBomiHBo/tyegkRc5x2lKnsE=; b=g8hL7uW+G6P7uV2SiXN bRBD5kNPvbPhtKKR3h1wH7TQWJV2XkRnk/Nc3UAVTTwPCFoNj5R//DN+hNtFexrnRRD84Ulqm/T8D PP9csxuPTdrPf3u9J/leRY0Gb588w/MZ3FaowHAh2TM5S6DA5kzlcpPGfZkyr7QBwth+q/uGd0JuQ W/pN9uELZGxz2lTTfnIaW57RYK1ws466CZh/w1WYbx3mbo8U52ckDeXvbJtKoBSKgNfYeZPm9KBki OqJCQzr+aiFVczpF73r7tUTwlJbnnu6QQ/8jkxB8jZEkgzaduDHWo4ymbcoOPZ6Ub3KnI7foqRDTh hacXeN49Hld1Wrw==; Received: from ch-vpn.virtuozzo.com ([130.117.225.6] helo=LekKit-T14) by relay.virtuozzo.com with esmtp (Exim 4.96) (envelope-from ) id 1xFB4z-007VMS-1a; Fri, 09 Oct 2026 15:59:31 +0200 From: Eva Kurchatova To: khorenko@virtuozzo.com Date: Fri, 9 Oct 2026 16:58:35 +0300 Message-ID: <20261009135929.3274885-3-eva.kurchatova@virtuozzo.com> X-Mailer: git-send-email 2.56.0 In-Reply-To: <20261009135929.3274885-1-eva.kurchatova@virtuozzo.com> References: <20261009135929.3274885-1-eva.kurchatova@virtuozzo.com> MIME-Version: 1.0 X-OZ-Fwd: true Cc: devel@openvz.org Subject: [Devel] [PATCH hci-8.1 2/4] ms/vdso/timens: Move functions to new file X-BeenThere: devel@openvz.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: OpenVZ development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: devel-bounces@openvz.org Errors-To: devel-bounces@openvz.org QXMgYSBwcmVwYXJhdGlvbiBvZiB0aGUgdW50YW5nbGluZyBvZiB0aW1lIG5hbWVzcGFjZXMgYW5k IHRoZSB2RFNPLCBtb3ZlCnRoZSBnbHVlIGZ1bmN0aW9ucyBiZXR3ZWVuIHRob3NlIHN1YnN5c3Rl bXMgaW50byBhIG5ldyBmaWxlLgoKV2hpbGUgYXQgaXQsIHN3aXRjaCB0aGUgbXV0ZXggbG9jayBh bmQgbW1hcF9yZWFkX2xvY2soKSBpbiB0aGUgdkRTTwpuYW1lc3BhY2UgY29kZSB0byBndWFyZCgp LgoKU2lnbmVkLW9mZi1ieTogVGhvbWFzIFdlacOfc2NodWggPHRob21hcy53ZWlzc3NjaHVoQGxp bnV0cm9uaXguZGU+ClNpZ25lZC1vZmYtYnk6IFRob21hcyBHbGVpeG5lciA8dGdseEBrZXJuZWwu b3JnPgpMaW5rOiBodHRwczovL3BhdGNoLm1zZ2lkLmxpbmsvMjAyNjAzMjYtdmRzby10aW1lbnMt ZGVjb3VwbGluZy12Mi0xLWM4MjY5M2E3Nzc1ZkBsaW51dHJvbml4LmRlCihjaGVycnkgcGlja2Vk IGZyb20gY29tbWl0IDVkYzljZjgzNWFiYTczYzg4MjM0OGFhNGY5OWJlODNiNmU0NWFkOWIpCgpS ZWJhc2Ugbm90ZTogdGhpcyBrZXJuZWwgaGFzIG5vIGF1eGlsaWFyeSBjbG9ja3MsIHNvIHRoZSB2 ZHNvIGRhdGEgaGFzCm5vIGF1eF9jbG9ja19kYXRhIHRvIHNldCB1cC4gVGhlIG9mZnNldCBsb2Nr IHdhcyBtYWRlIHZpc2libGUgYXMKb2Zmc2V0X2xvY2sgYnkgNTFhMjI4YjAyMWEwICgidmU6IEFk ZCBpbnRlcmZhY2UgZm9yCnZlOjpjbG9ja19bbW9ub3RvbmljfGJvb3RiYXNlZF0gYWRqdXN0bWVu dCIpIGFuZCBub3RoaW5nIHVzZXMgaXQKb3V0c2lkZSBuYW1lc3BhY2UuYywgc28gaXQgdGFrZXMg aXRzIG1haW5saW5lIG5hbWUgYW5kIGhvbWUgaW4KbmFtZXNwYWNlX2ludGVybmFsLmguCgpodHRw czovL3ZpcnR1b3p6by5hdGxhc3NpYW4ubmV0L2Jyb3dzZS9WU1RPUi0xNDgxMTIKRmVhdHVyZTog Zml4IG1zL3RpbWVucwoKU2lnbmVkLW9mZi1ieTogRXZhIEt1cmNoYXRvdmEgPGV2YS5rdXJjaGF0 b3ZhQHZpcnR1b3p6by5jb20+Ci0tLQogTUFJTlRBSU5FUlMgICAgICAgICAgICAgICAgICAgICAg fCAgIDIgKwogaW5jbHVkZS9saW51eC90aW1lX25hbWVzcGFjZS5oICAgfCAgMTAgLS0tCiBrZXJu ZWwvdGltZS9NYWtlZmlsZSAgICAgICAgICAgICB8ICAgMiArLQoga2VybmVsL3RpbWUvbmFtZXNw YWNlLmMgICAgICAgICAgfCAxMTkgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGtlcm5lbC90 aW1lL25hbWVzcGFjZV9pbnRlcm5hbC5oIHwgIDEzICsrKwoga2VybmVsL3RpbWUvbmFtZXNwYWNl X3Zkc28uYyAgICAgfCAxNDEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogbGliL3Zk c28vZGF0YXN0b3JlLmMgICAgICAgICAgICAgfCAgMjUgLS0tLS0tCiA3IGZpbGVzIGNoYW5nZWQs IDE2MSBpbnNlcnRpb25zKCspLCAxNTEgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQg a2VybmVsL3RpbWUvbmFtZXNwYWNlX2ludGVybmFsLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBrZXJu ZWwvdGltZS9uYW1lc3BhY2VfdmRzby5jCgpkaWZmIC0tZ2l0IGEvTUFJTlRBSU5FUlMgYi9NQUlO VEFJTkVSUwppbmRleCA5NTIzZGEzYzc2N2MuLmFjNjQ5ZWUwYzQzYyAxMDA2NDQKLS0tIGEvTUFJ TlRBSU5FUlMKKysrIGIvTUFJTlRBSU5FUlMKQEAgLTk2ODMsNiArOTY4Myw3IEBAIFM6CU1haW50 YWluZWQKIFQ6CWdpdCBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9n aXQvdGlwL3RpcC5naXQgdGltZXJzL3Zkc28KIEY6CWluY2x1ZGUvYXNtLWdlbmVyaWMvdmRzby92 c3lzY2FsbC5oCiBGOglpbmNsdWRlL3Zkc28vCitGOglrZXJuZWwvdGltZS9uYW1lc3BhY2VfdmRz by5jCiBGOglrZXJuZWwvdGltZS92c3lzY2FsbC5jCiBGOglsaWIvdmRzby8KIEY6CXRvb2xzL3Rl c3Rpbmcvc2VsZnRlc3RzL3ZEU08vCkBAIC0xODU3Niw2ICsxODU3Nyw3IEBAIEY6CWluY2x1ZGUv dHJhY2UvZXZlbnRzL3RpbWVyKgogRjoJa2VybmVsL3RpbWUvaXRpbWVyLmMKIEY6CWtlcm5lbC90 aW1lL3Bvc2l4LSoKIEY6CWtlcm5lbC90aW1lL25hbWVzcGFjZS5jCitGOglrZXJuZWwvdGltZS9u YW1lc3BhY2VfdmRzby5jCiAKIFBPV0VSIE1BTkFHRU1FTlQgQ09SRQogTToJIlJhZmFlbCBKLiBX eXNvY2tpIiA8cmFmYWVsQGtlcm5lbC5vcmc+CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3Rp bWVfbmFtZXNwYWNlLmggYi9pbmNsdWRlL2xpbnV4L3RpbWVfbmFtZXNwYWNlLmgKaW5kZXggM2Qz YjUyOWM1YTk4Li42M2QwMDUxOTI3ZjEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvdGltZV9u YW1lc3BhY2UuaAorKysgYi9pbmNsdWRlL2xpbnV4L3RpbWVfbmFtZXNwYWNlLmgKQEAgLTMyLDEx ICszMiw3IEBAIHN0cnVjdCB0aW1lX25hbWVzcGFjZSB7CiAKIGV4dGVybiBzdHJ1Y3QgdGltZV9u YW1lc3BhY2UgaW5pdF90aW1lX25zOwogCi1leHRlcm4gc3RydWN0IG11dGV4IG9mZnNldF9sb2Nr OwotCiAjaWZkZWYgQ09ORklHX1RJTUVfTlMKLWV4dGVybiBpbnQgdmRzb19qb2luX3RpbWVucyhz dHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssCi0JCQkgICAgc3RydWN0IHRpbWVfbmFtZXNwYWNlICpu cyk7CiBleHRlcm4gdm9pZCB0aW1lbnNfY29tbWl0KHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBz dHJ1Y3QgdGltZV9uYW1lc3BhY2UgKm5zKTsKIAogc3RhdGljIGlubGluZSBzdHJ1Y3QgdGltZV9u YW1lc3BhY2UgKmdldF90aW1lX25zKHN0cnVjdCB0aW1lX25hbWVzcGFjZSAqbnMpCkBAIC0xMTAs MTIgKzEwNiw2IEBAIHN0YXRpYyBpbmxpbmUga3RpbWVfdCB0aW1lbnNfa3RpbWVfdG9faG9zdChj bG9ja2lkX3QgY2xvY2tpZCwga3RpbWVfdCB0aW0pCiB9CiAKICNlbHNlCi1zdGF0aWMgaW5saW5l IGludCB2ZHNvX2pvaW5fdGltZW5zKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywKLQkJCQkgICBz dHJ1Y3QgdGltZV9uYW1lc3BhY2UgKm5zKQotewotCXJldHVybiAwOwotfQotCiBzdGF0aWMgaW5s aW5lIHZvaWQgdGltZW5zX2NvbW1pdChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywKIAkJCQkgc3Ry dWN0IHRpbWVfbmFtZXNwYWNlICpucykKIHsKZGlmZiAtLWdpdCBhL2tlcm5lbC90aW1lL01ha2Vm aWxlIGIva2VybmVsL3RpbWUvTWFrZWZpbGUKaW5kZXggZmUwYWU4MjEyNGZlLi40OTRiZDRlNDE3 ODEgMTAwNjQ0Ci0tLSBhL2tlcm5lbC90aW1lL01ha2VmaWxlCisrKyBiL2tlcm5lbC90aW1lL01h a2VmaWxlCkBAIC0yMyw2ICsyMyw2IEBAIGVuZGlmCiBvYmotJChDT05GSUdfSEFWRV9HRU5FUklD X1ZEU08pCQkJKz0gdnN5c2NhbGwubwogb2JqLSQoQ09ORklHX0RFQlVHX0ZTKQkJCQkrPSB0aW1l a2VlcGluZ19kZWJ1Zy5vCiBvYmotJChDT05GSUdfVEVTVF9VREVMQVkpCQkJKz0gdGVzdF91ZGVs YXkubwotb2JqLSQoQ09ORklHX1RJTUVfTlMpCQkJCSs9IG5hbWVzcGFjZS5vCitvYmotJChDT05G SUdfVElNRV9OUykJCQkJKz0gbmFtZXNwYWNlLm8gbmFtZXNwYWNlX3Zkc28ubwogb2JqLSQoQ09O RklHX1RFU1RfQ0xPQ0tTT1VSQ0VfV0FUQ0hET0cpCQkrPSBjbG9ja3NvdXJjZS13ZHRlc3Qubwog b2JqLSQoQ09ORklHX1RJTUVfS1VOSVRfVEVTVCkJCQkrPSB0aW1lX3Rlc3QubwpkaWZmIC0tZ2l0 IGEva2VybmVsL3RpbWUvbmFtZXNwYWNlLmMgYi9rZXJuZWwvdGltZS9uYW1lc3BhY2UuYwppbmRl eCBlODVmOTQ3ZDQwNjMuLmM4MmRjOWE1ZDFkZSAxMDA2NDQKLS0tIGEva2VybmVsL3RpbWUvbmFt ZXNwYWNlLmMKKysrIGIva2VybmVsL3RpbWUvbmFtZXNwYWNlLmMKQEAgLTE4LDcgKzE4LDcgQEAK ICNpbmNsdWRlIDxsaW51eC9lcnIuaD4KICNpbmNsdWRlIDxsaW51eC9tbS5oPgogCi0jaW5jbHVk ZSA8dmRzby9kYXRhcGFnZS5oPgorI2luY2x1ZGUgIm5hbWVzcGFjZV9pbnRlcm5hbC5oIgogCiBr dGltZV90IGRvX3RpbWVuc19rdGltZV90b19ob3N0KGNsb2NraWRfdCBjbG9ja2lkLCBrdGltZV90 IHRpbSwKIAkJCQlzdHJ1Y3QgdGltZW5zX29mZnNldHMgKm5zX29mZnNldHMpCkBAIC0xMzksMTEy ICsxMzksNyBAQCBzdHJ1Y3QgdGltZV9uYW1lc3BhY2UgKmNvcHlfdGltZV9ucyh1bnNpZ25lZCBs b25nIGZsYWdzLAogCXJldHVybiBjbG9uZV90aW1lX25zKHVzZXJfbnMsIG9sZF9ucyk7CiB9CiAK LXN0YXRpYyBzdHJ1Y3QgdGltZW5zX29mZnNldCBvZmZzZXRfZnJvbV90cyhzdHJ1Y3QgdGltZXNw ZWM2NCBvZmYpCi17Ci0Jc3RydWN0IHRpbWVuc19vZmZzZXQgcmV0OwotCi0JcmV0LnNlYyA9IG9m Zi50dl9zZWM7Ci0JcmV0Lm5zZWMgPSBvZmYudHZfbnNlYzsKLQotCXJldHVybiByZXQ7Ci19Ci0K LS8qCi0gKiBBIHRpbWUgbmFtZXNwYWNlIFZWQVIgcGFnZSBoYXMgdGhlIHNhbWUgbGF5b3V0IGFz IHRoZSBWVkFSIHBhZ2Ugd2hpY2gKLSAqIGNvbnRhaW5zIHRoZSBzeXN0ZW0gd2lkZSBWRFNPIGRh dGEuCi0gKgotICogRm9yIGEgbm9ybWFsIHRhc2sgdGhlIFZWQVIgcGFnZXMgYXJlIGluc3RhbGxl ZCBpbiB0aGUgbm9ybWFsIG9yZGVyaW5nOgotICogICAgIFZWQVIKLSAqICAgICBQVkNMT0NLCi0g KiAgICAgSFZDTE9DSwotICogICAgIFRJTUVOUyAgIDwtIE5vdCByZWFsbHkgcmVxdWlyZWQKLSAq Ci0gKiBOb3cgZm9yIGEgdGltZW5zIHRhc2sgdGhlIHBhZ2VzIGFyZSBpbnN0YWxsZWQgaW4gdGhl IGZvbGxvd2luZyBvcmRlcjoKLSAqICAgICBUSU1FTlMKLSAqICAgICBQVkNMT0NLCi0gKiAgICAg SFZDTE9DSwotICogICAgIFZWQVIKLSAqCi0gKiBUaGUgY2hlY2sgZm9yIHZkc29fY2xvY2stPmNs b2NrX21vZGUgaXMgaW4gdGhlIHVubGlrZWx5IHBhdGggb2YKLSAqIHRoZSBzZXEgYmVnaW4gbWFn aWMuIFNvIGZvciB0aGUgbm9uLXRpbWVucyBjYXNlIG1vc3Qgb2YgdGhlIHRpbWUKLSAqICdzZXEn IGlzIGV2ZW4sIHNvIHRoZSBicmFuY2ggaXMgbm90IHRha2VuLgotICoKLSAqIElmICdzZXEnIGlz IG9kZCwgaS5lLiBhIGNvbmN1cnJlbnQgdXBkYXRlIGlzIGluIHByb2dyZXNzLCB0aGUgZXh0cmEg Y2hlY2sKLSAqIGZvciB2ZHNvX2Nsb2NrLT5jbG9ja19tb2RlIGlzIGEgbm9uLWlzc3VlLiBUaGUg dGFzayBpcyBzcGluIHdhaXRpbmcgZm9yIHRoZQotICogdXBkYXRlIHRvIGZpbmlzaCBhbmQgZm9y ICdzZXEnIHRvIGJlY29tZSBldmVuIGFueXdheS4KLSAqCi0gKiBUaW1lbnMgcGFnZSBoYXMgdmRz b19jbG9jay0+Y2xvY2tfbW9kZSBzZXQgdG8gVkRTT19DTE9DS01PREVfVElNRU5TIHdoaWNoCi0g KiBlbmZvcmNlcyB0aGUgdGltZSBuYW1lc3BhY2UgaGFuZGxpbmcgcGF0aC4KLSAqLwotc3RhdGlj IHZvaWQgdGltZW5zX3NldHVwX3Zkc29fY2xvY2tfZGF0YShzdHJ1Y3QgdmRzb19jbG9jayAqdmMs Ci0JCQkJCSBzdHJ1Y3QgdGltZV9uYW1lc3BhY2UgKm5zKQotewotCXN0cnVjdCB0aW1lbnNfb2Zm c2V0ICpvZmZzZXQgPSB2Yy0+b2Zmc2V0OwotCXN0cnVjdCB0aW1lbnNfb2Zmc2V0IG1vbm90b25p YyA9IG9mZnNldF9mcm9tX3RzKG5zLT5vZmZzZXRzLm1vbm90b25pYyk7Ci0Jc3RydWN0IHRpbWVu c19vZmZzZXQgYm9vdHRpbWUgPSBvZmZzZXRfZnJvbV90cyhucy0+b2Zmc2V0cy5ib290dGltZSk7 Ci0KLQl2Yy0+c2VxCQkJCT0gMTsKLQl2Yy0+Y2xvY2tfbW9kZQkJCT0gVkRTT19DTE9DS01PREVf VElNRU5TOwotCW9mZnNldFtDTE9DS19NT05PVE9OSUNdCQk9IG1vbm90b25pYzsKLQlvZmZzZXRb Q0xPQ0tfTU9OT1RPTklDX1JBV10JPSBtb25vdG9uaWM7Ci0Jb2Zmc2V0W0NMT0NLX01PTk9UT05J Q19DT0FSU0VdCT0gbW9ub3RvbmljOwotCW9mZnNldFtDTE9DS19CT09UVElNRV0JCT0gYm9vdHRp bWU7Ci0Jb2Zmc2V0W0NMT0NLX0JPT1RUSU1FX0FMQVJNXQk9IGJvb3R0aW1lOwotfQotCi1zdHJ1 Y3QgcGFnZSAqZmluZF90aW1lbnNfdnZhcl9wYWdlKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1h KQotewotCWlmIChsaWtlbHkodm1hLT52bV9tbSA9PSBjdXJyZW50LT5tbSkpCi0JCXJldHVybiBj dXJyZW50LT5uc3Byb3h5LT50aW1lX25zLT52dmFyX3BhZ2U7Ci0KLQkvKgotCSAqIFZNX1BGTk1B UCB8IFZNX0lPIHByb3RlY3QgLmZhdWx0KCkgaGFuZGxlciBmcm9tIGJlaW5nIGNhbGxlZAotCSAq IHRocm91Z2ggaW50ZXJmYWNlcyBsaWtlIC9wcm9jLyRwaWQvbWVtIG9yCi0JICogcHJvY2Vzc192 bV97cmVhZHYsd3JpdGV2fSgpIGFzIGxvbmcgYXMgdGhlcmUncyBubyAuYWNjZXNzKCkKLQkgKiBp biBzcGVjaWFsX21hcHBpbmdfdm1vcHMoKS4KLQkgKiBGb3IgbW9yZSBkZXRhaWxzIGNoZWNrX3Zt YV9mbGFncygpIGFuZCBfX2FjY2Vzc19yZW1vdGVfdm0oKQotCSAqLwotCi0JV0FSTigxLCAidnZh cl9wYWdlIGFjY2Vzc2VkIHJlbW90ZWx5Iik7Ci0KLQlyZXR1cm4gTlVMTDsKLX0KLQotLyoKLSAq IFByb3RlY3RzIHBvc3NpYmx5IG11bHRpcGxlIG9mZnNldHMgd3JpdGVycyByYWNpbmcgZWFjaCBv dGhlcgotICogYW5kIHRhc2tzIGVudGVyaW5nIHRoZSBuYW1lc3BhY2UuCi0gKi8KLURFRklORV9N VVRFWChvZmZzZXRfbG9jayk7Ci0KLXN0YXRpYyB2b2lkIHRpbWVuc19zZXRfdnZhcl9wYWdlKHN0 cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywKLQkJCQlzdHJ1Y3QgdGltZV9uYW1lc3BhY2UgKm5zKQot ewotCXN0cnVjdCB2ZHNvX3RpbWVfZGF0YSAqdmRhdGE7Ci0Jc3RydWN0IHZkc29fY2xvY2sgKnZj OwotCXVuc2lnbmVkIGludCBpOwotCi0JaWYgKG5zID09ICZpbml0X3RpbWVfbnMpCi0JCXJldHVy bjsKLQotCS8qIEZhc3QtcGF0aCwgdGFrZW4gYnkgZXZlcnkgdGFzayBpbiBuYW1lc3BhY2UgZXhj ZXB0IHRoZSBmaXJzdC4gKi8KLQlpZiAobGlrZWx5KG5zLT5mcm96ZW5fb2Zmc2V0cykpCi0JCXJl dHVybjsKLQotCW11dGV4X2xvY2soJm9mZnNldF9sb2NrKTsKLQkvKiBOb3RoaW5nIHRvLWRvOiB2 dmFyX3BhZ2UgaGFzIGJlZW4gYWxyZWFkeSBpbml0aWFsaXplZC4gKi8KLQlpZiAobnMtPmZyb3pl bl9vZmZzZXRzKQotCQlnb3RvIG91dDsKLQotCW5zLT5mcm96ZW5fb2Zmc2V0cyA9IHRydWU7Ci0J dmRhdGEgPSBwYWdlX2FkZHJlc3MobnMtPnZ2YXJfcGFnZSk7Ci0JdmMgPSB2ZGF0YS0+Y2xvY2tf ZGF0YTsKLQotCWZvciAoaSA9IDA7IGkgPCBDU19CQVNFUzsgaSsrKQotCQl0aW1lbnNfc2V0dXBf dmRzb19jbG9ja19kYXRhKCZ2Y1tpXSwgbnMpOwotCi1vdXQ6Ci0JbXV0ZXhfdW5sb2NrKCZvZmZz ZXRfbG9jayk7Ci19CitERUZJTkVfTVVURVgodGltZW5zX29mZnNldF9sb2NrKTsKIAogdm9pZCBm cmVlX3RpbWVfbnMoc3RydWN0IHRpbWVfbmFtZXNwYWNlICpucykKIHsKQEAgLTI5NywxMiArMTky LDYgQEAgc3RhdGljIHZvaWQgdGltZW5zX3B1dChzdHJ1Y3QgbnNfY29tbW9uICpucykKIAlwdXRf dGltZV9ucyh0b190aW1lX25zKG5zKSk7CiB9CiAKLXZvaWQgdGltZW5zX2NvbW1pdChzdHJ1Y3Qg dGFza19zdHJ1Y3QgKnRzaywgc3RydWN0IHRpbWVfbmFtZXNwYWNlICpucykKLXsKLQl0aW1lbnNf c2V0X3Z2YXJfcGFnZSh0c2ssIG5zKTsKLQl2ZHNvX2pvaW5fdGltZW5zKHRzaywgbnMpOwotfQot CiBzdGF0aWMgaW50IHRpbWVuc19pbnN0YWxsKHN0cnVjdCBuc3NldCAqbnNzZXQsIHN0cnVjdCBu c19jb21tb24gKm5ldykKIHsKIAlzdHJ1Y3QgbnNwcm94eSAqbnNwcm94eSA9IG5zc2V0LT5uc3By b3h5OwpAQCAtNDI3LDcgKzMxNiw3IEBAIGludCBwcm9jX3RpbWVuc19zZXRfb2Zmc2V0KHN0cnVj dCBmaWxlICpmaWxlLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsCiAJCQlnb3RvIG91dDsKIAl9CiAK LQltdXRleF9sb2NrKCZvZmZzZXRfbG9jayk7CisJbXV0ZXhfbG9jaygmdGltZW5zX29mZnNldF9s b2NrKTsKIAlpZiAodGltZV9ucy0+ZnJvemVuX29mZnNldHMpIHsKIAkJZXJyID0gLUVBQ0NFUzsK IAkJZ290byBvdXRfdW5sb2NrOwpAQCAtNDUyLDcgKzM0MSw3IEBAIGludCBwcm9jX3RpbWVuc19z ZXRfb2Zmc2V0KHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsCiAJfQog CiBvdXRfdW5sb2NrOgotCW11dGV4X3VubG9jaygmb2Zmc2V0X2xvY2spOworCW11dGV4X3VubG9j aygmdGltZW5zX29mZnNldF9sb2NrKTsKIG91dDoKIAlwdXRfdGltZV9ucyh0aW1lX25zKTsKIApk aWZmIC0tZ2l0IGEva2VybmVsL3RpbWUvbmFtZXNwYWNlX2ludGVybmFsLmggYi9rZXJuZWwvdGlt ZS9uYW1lc3BhY2VfaW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAuLmU4NWRhMTFhYmI0ZAotLS0gL2Rldi9udWxsCisrKyBiL2tlcm5lbC90aW1lL25hbWVz cGFjZV9pbnRlcm5hbC5oCkBAIC0wLDAgKzEsMTMgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBHUEwtMi4wICovCisjaWZuZGVmIF9USU1FX05BTUVTUEFDRV9JTlRFUk5BTF9ICisjZGVm aW5lIF9USU1FX05BTUVTUEFDRV9JTlRFUk5BTF9ICisKKyNpbmNsdWRlIDxsaW51eC9tdXRleC5o PgorCisvKgorICogUHJvdGVjdHMgcG9zc2libHkgbXVsdGlwbGUgb2Zmc2V0cyB3cml0ZXJzIHJh Y2luZyBlYWNoIG90aGVyCisgKiBhbmQgdGFza3MgZW50ZXJpbmcgdGhlIG5hbWVzcGFjZS4KKyAq LworZXh0ZXJuIHN0cnVjdCBtdXRleCB0aW1lbnNfb2Zmc2V0X2xvY2s7CisKKyNlbmRpZiAvKiBf VElNRV9OQU1FU1BBQ0VfSU5URVJOQUxfSCAqLwpkaWZmIC0tZ2l0IGEva2VybmVsL3RpbWUvbmFt ZXNwYWNlX3Zkc28uYyBiL2tlcm5lbC90aW1lL25hbWVzcGFjZV92ZHNvLmMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41NThiZjUyMDg1ODgKLS0tIC9kZXYvbnVsbAor KysgYi9rZXJuZWwvdGltZS9uYW1lc3BhY2VfdmRzby5jCkBAIC0wLDAgKzEsMTQxIEBACisvLyBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorLyoKKyAqIEF1dGhvcjogQW5kcmVpIFZh Z2luIDxhdmFnaW5Ab3BlbnZ6Lm9yZz4KKyAqIEF1dGhvcjogRG1pdHJ5IFNhZm9ub3YgPGRpbWFA YXJpc3RhLmNvbT4KKyAqLworCisjaW5jbHVkZSA8bGludXgvY2xlYW51cC5oPgorI2luY2x1ZGUg PGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvdGltZV9uYW1lc3BhY2UuaD4KKyNpbmNsdWRl IDxsaW51eC90aW1lLmg+CisjaW5jbHVkZSA8bGludXgvdmRzb19kYXRhc3RvcmUuaD4KKworI2lu Y2x1ZGUgPHZkc28vY2xvY2tzb3VyY2UuaD4KKyNpbmNsdWRlIDx2ZHNvL2RhdGFwYWdlLmg+CisK KyNpbmNsdWRlICJuYW1lc3BhY2VfaW50ZXJuYWwuaCIKKworc3RhdGljIHN0cnVjdCB0aW1lbnNf b2Zmc2V0IG9mZnNldF9mcm9tX3RzKHN0cnVjdCB0aW1lc3BlYzY0IG9mZikKK3sKKwlzdHJ1Y3Qg dGltZW5zX29mZnNldCByZXQ7CisKKwlyZXQuc2VjID0gb2ZmLnR2X3NlYzsKKwlyZXQubnNlYyA9 IG9mZi50dl9uc2VjOworCisJcmV0dXJuIHJldDsKK30KKworLyoKKyAqIEEgdGltZSBuYW1lc3Bh Y2UgVlZBUiBwYWdlIGhhcyB0aGUgc2FtZSBsYXlvdXQgYXMgdGhlIFZWQVIgcGFnZSB3aGljaAor ICogY29udGFpbnMgdGhlIHN5c3RlbSB3aWRlIFZEU08gZGF0YS4KKyAqCisgKiBGb3IgYSBub3Jt YWwgdGFzayB0aGUgVlZBUiBwYWdlcyBhcmUgaW5zdGFsbGVkIGluIHRoZSBub3JtYWwgb3JkZXJp bmc6CisgKiAgICAgVlZBUgorICogICAgIFBWQ0xPQ0sKKyAqICAgICBIVkNMT0NLCisgKiAgICAg VElNRU5TICAgPC0gTm90IHJlYWxseSByZXF1aXJlZAorICoKKyAqIE5vdyBmb3IgYSB0aW1lbnMg dGFzayB0aGUgcGFnZXMgYXJlIGluc3RhbGxlZCBpbiB0aGUgZm9sbG93aW5nIG9yZGVyOgorICog ICAgIFRJTUVOUworICogICAgIFBWQ0xPQ0sKKyAqICAgICBIVkNMT0NLCisgKiAgICAgVlZBUgor ICoKKyAqIFRoZSBjaGVjayBmb3IgdmRzb19jbG9jay0+Y2xvY2tfbW9kZSBpcyBpbiB0aGUgdW5s aWtlbHkgcGF0aCBvZgorICogdGhlIHNlcSBiZWdpbiBtYWdpYy4gU28gZm9yIHRoZSBub24tdGlt ZW5zIGNhc2UgbW9zdCBvZiB0aGUgdGltZQorICogJ3NlcScgaXMgZXZlbiwgc28gdGhlIGJyYW5j aCBpcyBub3QgdGFrZW4uCisgKgorICogSWYgJ3NlcScgaXMgb2RkLCBpLmUuIGEgY29uY3VycmVu dCB1cGRhdGUgaXMgaW4gcHJvZ3Jlc3MsIHRoZSBleHRyYSBjaGVjaworICogZm9yIHZkc29fY2xv Y2stPmNsb2NrX21vZGUgaXMgYSBub24taXNzdWUuIFRoZSB0YXNrIGlzIHNwaW4gd2FpdGluZyBm b3IgdGhlCisgKiB1cGRhdGUgdG8gZmluaXNoIGFuZCBmb3IgJ3NlcScgdG8gYmVjb21lIGV2ZW4g YW55d2F5LgorICoKKyAqIFRpbWVucyBwYWdlIGhhcyB2ZHNvX2Nsb2NrLT5jbG9ja19tb2RlIHNl dCB0byBWRFNPX0NMT0NLTU9ERV9USU1FTlMgd2hpY2gKKyAqIGVuZm9yY2VzIHRoZSB0aW1lIG5h bWVzcGFjZSBoYW5kbGluZyBwYXRoLgorICovCitzdGF0aWMgdm9pZCB0aW1lbnNfc2V0dXBfdmRz b19jbG9ja19kYXRhKHN0cnVjdCB2ZHNvX2Nsb2NrICp2YywKKwkJCQkJIHN0cnVjdCB0aW1lX25h bWVzcGFjZSAqbnMpCit7CisJc3RydWN0IHRpbWVuc19vZmZzZXQgKm9mZnNldCA9IHZjLT5vZmZz ZXQ7CisJc3RydWN0IHRpbWVuc19vZmZzZXQgbW9ub3RvbmljID0gb2Zmc2V0X2Zyb21fdHMobnMt Pm9mZnNldHMubW9ub3RvbmljKTsKKwlzdHJ1Y3QgdGltZW5zX29mZnNldCBib290dGltZSA9IG9m ZnNldF9mcm9tX3RzKG5zLT5vZmZzZXRzLmJvb3R0aW1lKTsKKworCXZjLT5zZXEJCQkJPSAxOwor CXZjLT5jbG9ja19tb2RlCQkJPSBWRFNPX0NMT0NLTU9ERV9USU1FTlM7CisJb2Zmc2V0W0NMT0NL X01PTk9UT05JQ10JCT0gbW9ub3RvbmljOworCW9mZnNldFtDTE9DS19NT05PVE9OSUNfUkFXXQk9 IG1vbm90b25pYzsKKwlvZmZzZXRbQ0xPQ0tfTU9OT1RPTklDX0NPQVJTRV0JPSBtb25vdG9uaWM7 CisJb2Zmc2V0W0NMT0NLX0JPT1RUSU1FXQkJPSBib290dGltZTsKKwlvZmZzZXRbQ0xPQ0tfQk9P VFRJTUVfQUxBUk1dCT0gYm9vdHRpbWU7Cit9CisKK3N0cnVjdCBwYWdlICpmaW5kX3RpbWVuc192 dmFyX3BhZ2Uoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCit7CisJaWYgKGxpa2VseSh2bWEt PnZtX21tID09IGN1cnJlbnQtPm1tKSkKKwkJcmV0dXJuIGN1cnJlbnQtPm5zcHJveHktPnRpbWVf bnMtPnZ2YXJfcGFnZTsKKworCS8qCisJICogVk1fUEZOTUFQIHwgVk1fSU8gcHJvdGVjdCAuZmF1 bHQoKSBoYW5kbGVyIGZyb20gYmVpbmcgY2FsbGVkCisJICogdGhyb3VnaCBpbnRlcmZhY2VzIGxp a2UgL3Byb2MvJHBpZC9tZW0gb3IKKwkgKiBwcm9jZXNzX3ZtX3tyZWFkdix3cml0ZXZ9KCkgYXMg bG9uZyBhcyB0aGVyZSdzIG5vIC5hY2Nlc3MoKQorCSAqIGluIHNwZWNpYWxfbWFwcGluZ192bW9w cygpLgorCSAqIEZvciBtb3JlIGRldGFpbHMgY2hlY2tfdm1hX2ZsYWdzKCkgYW5kIF9fYWNjZXNz X3JlbW90ZV92bSgpCisJICovCisKKwlXQVJOKDEsICJ2dmFyX3BhZ2UgYWNjZXNzZWQgcmVtb3Rl bHkiKTsKKworCXJldHVybiBOVUxMOworfQorCitzdGF0aWMgdm9pZCB0aW1lbnNfc2V0X3Z2YXJf cGFnZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssCisJCQkJc3RydWN0IHRpbWVfbmFtZXNwYWNl ICpucykKK3sKKwlzdHJ1Y3QgdmRzb190aW1lX2RhdGEgKnZkYXRhOworCXN0cnVjdCB2ZHNvX2Ns b2NrICp2YzsKKwl1bnNpZ25lZCBpbnQgaTsKKworCWlmIChucyA9PSAmaW5pdF90aW1lX25zKQor CQlyZXR1cm47CisKKwkvKiBGYXN0LXBhdGgsIHRha2VuIGJ5IGV2ZXJ5IHRhc2sgaW4gbmFtZXNw YWNlIGV4Y2VwdCB0aGUgZmlyc3QuICovCisJaWYgKGxpa2VseShucy0+ZnJvemVuX29mZnNldHMp KQorCQlyZXR1cm47CisKKwlndWFyZChtdXRleCkoJnRpbWVuc19vZmZzZXRfbG9jayk7CisJLyog Tm90aGluZyB0by1kbzogdnZhcl9wYWdlIGhhcyBiZWVuIGFscmVhZHkgaW5pdGlhbGl6ZWQuICov CisJaWYgKG5zLT5mcm96ZW5fb2Zmc2V0cykKKwkJcmV0dXJuOworCisJbnMtPmZyb3plbl9vZmZz ZXRzID0gdHJ1ZTsKKwl2ZGF0YSA9IHBhZ2VfYWRkcmVzcyhucy0+dnZhcl9wYWdlKTsKKwl2YyA9 IHZkYXRhLT5jbG9ja19kYXRhOworCisJZm9yIChpID0gMDsgaSA8IENTX0JBU0VTOyBpKyspCisJ CXRpbWVuc19zZXR1cF92ZHNvX2Nsb2NrX2RhdGEoJnZjW2ldLCBucyk7Cit9CisKKy8qCisgKiBU aGUgdnZhciBwYWdlIGxheW91dCBkZXBlbmRzIG9uIHdoZXRoZXIgYSB0YXNrIGJlbG9uZ3MgdG8g dGhlIHJvb3Qgb3IKKyAqIG5vbi1yb290IHRpbWUgbmFtZXNwYWNlLiBXaGVuZXZlciBhIHRhc2sg Y2hhbmdlcyBpdHMgbmFtZXNwYWNlLCB0aGUgVlZBUgorICogcGFnZSB0YWJsZXMgYXJlIGNsZWFy ZWQgYW5kIHRoZW4gdGhleSB3aWxsIGJlIHJlLWZhdWx0ZWQgd2l0aCBhCisgKiBjb3JyZXNwb25k aW5nIGxheW91dC4KKyAqIFNlZSBhbHNvIHRoZSBjb21tZW50IG5lYXIgdGltZW5zX3NldHVwX3Zk c29fY2xvY2tfZGF0YSgpIGZvciBkZXRhaWxzLgorICovCitzdGF0aWMgaW50IHZkc29fam9pbl90 aW1lbnMoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLCBzdHJ1Y3QgdGltZV9uYW1lc3BhY2UgKm5z KQoreworCXN0cnVjdCBtbV9zdHJ1Y3QgKm1tID0gdGFzay0+bW07CisJc3RydWN0IHZtX2FyZWFf c3RydWN0ICp2bWE7CisJVk1BX0lURVJBVE9SKHZtaSwgbW0sIDApOworCisJZ3VhcmQobW1hcF9y ZWFkX2xvY2spKG1tKTsKKwlmb3JfZWFjaF92bWEodm1pLCB2bWEpIHsKKwkJaWYgKHZtYV9pc19z cGVjaWFsX21hcHBpbmcodm1hLCAmdmRzb192dmFyX21hcHBpbmcpKQorCQkJemFwX3ZtYV9wYWdl cyh2bWEpOworCX0KKwlyZXR1cm4gMDsKK30KKwordm9pZCB0aW1lbnNfY29tbWl0KHN0cnVjdCB0 YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3QgdGltZV9uYW1lc3BhY2UgKm5zKQoreworCXRpbWVuc19z ZXRfdnZhcl9wYWdlKHRzaywgbnMpOworCXZkc29fam9pbl90aW1lbnModHNrLCBucyk7Cit9CmRp ZmYgLS1naXQgYS9saWIvdmRzby9kYXRhc3RvcmUuYyBiL2xpYi92ZHNvL2RhdGFzdG9yZS5jCmlu ZGV4IDQ2MTkyYzFkODU0Mi4uNzcxM2ZkMzkyZGQwIDEwMDY0NAotLS0gYS9saWIvdmRzby9kYXRh c3RvcmUuYworKysgYi9saWIvdmRzby9kYXRhc3RvcmUuYwpAQCAtMTAyLDI4ICsxMDIsMyBAQCBz dHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZkc29faW5zdGFsbF92dmFyX21hcHBpbmcoc3RydWN0IG1t X3N0cnVjdCAqbW0sIHVuc2lnbmVkCiAJCQkJCVZNX1JFQUQgfCBWTV9NQVlSRUFEIHwgVk1fSU8g fCBWTV9ET05URFVNUCB8IFZNX1BGTk1BUCwKIAkJCQkJJnZkc29fdnZhcl9tYXBwaW5nKTsKIH0K LQotI2lmZGVmIENPTkZJR19USU1FX05TCi0vKgotICogVGhlIHZ2YXIgcGFnZSBsYXlvdXQgZGVw ZW5kcyBvbiB3aGV0aGVyIGEgdGFzayBiZWxvbmdzIHRvIHRoZSByb290IG9yCi0gKiBub24tcm9v dCB0aW1lIG5hbWVzcGFjZS4gV2hlbmV2ZXIgYSB0YXNrIGNoYW5nZXMgaXRzIG5hbWVzcGFjZSwg dGhlIFZWQVIKLSAqIHBhZ2UgdGFibGVzIGFyZSBjbGVhcmVkIGFuZCB0aGVuIHRoZXkgd2lsbCBi ZSByZS1mYXVsdGVkIHdpdGggYQotICogY29ycmVzcG9uZGluZyBsYXlvdXQuCi0gKiBTZWUgYWxz byB0aGUgY29tbWVudCBuZWFyIHRpbWVuc19zZXR1cF92ZHNvX2Nsb2NrX2RhdGEoKSBmb3IgZGV0 YWlscy4KLSAqLwotaW50IHZkc29fam9pbl90aW1lbnMoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNr LCBzdHJ1Y3QgdGltZV9uYW1lc3BhY2UgKm5zKQotewotCXN0cnVjdCBtbV9zdHJ1Y3QgKm1tID0g dGFzay0+bW07Ci0Jc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWE7Ci0JVk1BX0lURVJBVE9SKHZt aSwgbW0sIDApOwotCi0JbW1hcF9yZWFkX2xvY2sobW0pOwotCWZvcl9lYWNoX3ZtYSh2bWksIHZt YSkgewotCQlpZiAodm1hX2lzX3NwZWNpYWxfbWFwcGluZyh2bWEsICZ2ZHNvX3Z2YXJfbWFwcGlu ZykpCi0JCQl6YXBfdm1hX3BhZ2VzKHZtYSk7Ci0JfQotCW1tYXBfcmVhZF91bmxvY2sobW0pOwot Ci0JcmV0dXJuIDA7Ci19Ci0jZW5kaWYKLS0gCjIuNTYuMAoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KRGV2ZWwgbWFpbGluZyBsaXN0CkRldmVsQG9wZW52 ei5vcmcKaHR0cHM6Ly9saXN0cy5vcGVudnoub3JnL21haWxtYW4vbGlzdGluZm8vZGV2ZWwK