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 34CA08017D for ; Mon, 19 Oct 2026 00:08:22 +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 69J073UC015397; Mon, 19 Oct 2026 03:07:04 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69J073UC015397 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="GJeMNKtv" Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 69J06sIN015361 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Mon, 19 Oct 2026 03:06:54 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69J06sIN015361 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-4a16dc2323cso13326895e9.3 for ; Sun, 18 Oct 2026 17:06:54 -0700 (PDT) X-Gm-Message-State: AFq9FYJhEsfYmEZrrQLLJy0c5yIiGSqFHeRGs4XZ9YB+2MX8Q9x+8tZd zWC8Xrqet3zODhWTMWjcDKJXvFV7R+QZ14BAgvd8TQB8CSpWRtPlMXAAtanf9MHrbTQQbp7l8eL n2jrPT3Qb2OyBxcufDE++CPVMtGFSuIoyrZIzq3OZDp1o9sd7ks1+dQ== X-Gm-Gg: AYBFou1IPcHcCulSNV/AbOdvT3WEWmWgV2V+uA5O/essvCBgz/2zEs7x1lcAkF3dX1V 7iRqW6c/xOrlgrmtBhL4Q/XQpVvyc7OonOET6SXWGPrpw0NYGYzscKqOhlpcXhBIgIcogUcgQxl HATB9E/vaM1nsde7OtyvL9GVQO6cvrQ5UHKWK6O2eNYPeYefw8/tns2SBAQBz6wQ2kzgd/H+yPU eGUHQYHJAxlbDdtWSWZgT3EZ7+uOF2MUyD42DUCZ0Qh/NenCxe9tGjRHk9bYsYSeNYZ+7ILCOlT WsmM3927mc93pmXZ5un266/yDXLSdfmIyKvdAbscaht2AMJSD8CPnrRKTWdGVJXxBuwgLrXP3FE lZTD6me2EPBXS72mFq1dWkjox X-Received: by 2002:a05:600c:c084:b0:49f:d6f0:6f24 with SMTP id 5b1f17b1804b1-4a1d75af414mr103227645e9.2.1792368414119; Sun, 18 Oct 2026 17:06:54 -0700 (PDT) X-Received: by 2002:a05:600c:c084:b0:49f:d6f0:6f24 with SMTP id 5b1f17b1804b1-4a1d75af414mr103227335e9.2.1792368413555; Sun, 18 Oct 2026 17:06:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1792368413; cv=none; d=google.com; s=arc-20260327; b=P6Vj6jsPPKUttdmQqKR+Sd9ozcnLPlJDMglJW3Qk5GvtYwqJS0lbtTewdWyInOIim2 1tm89qqy99OZNLmoD/jOQN1wqT7i4/ec8lx4oeevf9lniOKd4AwH4skRPwhxfbTfNXI1 +8eBxCxVHbd58ki1zhKTivAO7u6MLyWTq0HY3VR/+UUQ6Puc+qmwftEo/EuG7GH+P6BO hUR32c5f+U6zGaqHT2L5PmyTyZoww+LF6fQR9OJnKBDdTT21sqGYKqkzh+lN/dvBNsIp n5sKB8TBETTEll/7v1DMUcqRb2nY0j1QyYcOE/zDRXbBA7NaKI1INTIUXWBpEdEKPXwu n5wA== 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=HDDKesRPIGCVXbwR9aUexUSJG3fkJieAGXsx24urlYA=; fh=WpT6aB7RBAGHZeWZzqAr71yzRFbPTYkPWKsRagLn48Q=; b=ATRHHN+GQd7EdR8kqhRlCdy7w8YL0FcmOHT0edH5HQl6b7BQIewCTZP8PhXMi7D2Xi rl/eBKjzTxUm01KlnEDqa5YgAd+iuBiIc8oB1uxOkS92fX6YQDyg5AKo12hzsK7HlWFP qpyT9rawzDa6ESvS4xyALtf8V7paS5B3pjDOHkmTBVv4MY8J9HyXUp4P2sZKnEGgMcPf jLztT23d4xrwnE3p/9QV6nv+Lp+2Y0ECvNezHkXjYOvMxaoIjX78pcTmYV8SlzKjHkIc BZZLMH9UrJ9rE4AddGzheAZiF50DcgTQcU+Q9X/j5z1k1qoPpadA/y+qRt20/358mP5b uIKw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=GJeMNKtv; 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-48dfd4f353esi16787763f8f.114.2026.10.18.17.06.53 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 18 Oct 2026 17:06:53 -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=GJeMNKtv; 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=HDDKesRPIGCVXbwR9aUexUSJG3fkJieAGXsx24urlYA=; b=GJeMNKtviTD+EBrYxJB VQG1yrUEq9MZoUGCGMjK/p7HSyrPVt3e34t1/XEv40+wpc55yLFL0BdHjj/ZR9amGIHQH5N2bK87h Z+8UzXZTkhKBVWaoC9I7xEKyvx7gWY0/yH82f0DDYY9QgUmCOLjWm2mz5Y03v+kEUteucCwVtJ7vu 8+98S6/9+r+UZXvFtC+EBNDs7e8Yag58BJMduS5iseEKV55PQw+736ezAYdHPqU5gok4mJPUEM3hq 9hvaaeAUKN7zR3/hgxM5+mzAQps6hl7fHdxu6Tx8KtiOcunHCGBHMr+VEceKPU1gWM08OOsGrKtUx 1we/PKlVTLT0p9g==; 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 1xIaqP-004bGD-1e; Mon, 19 Oct 2026 02:06:45 +0200 From: Eva Kurchatova To: khorenko@virtuozzo.com Date: Mon, 19 Oct 2026 03:05:54 +0300 Message-ID: <20261019000649.1371025-3-eva.kurchatova@virtuozzo.com> X-Mailer: git-send-email 2.56.0 In-Reply-To: <20261019000649.1371025-1-eva.kurchatova@virtuozzo.com> References: <20261019000649.1371025-1-eva.kurchatova@virtuozzo.com> MIME-Version: 1.0 X-OZ-Fwd: true Cc: devel@openvz.org Subject: [Devel] [PATCH hci-8.1 v2 2/6] 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 IGZyb20gY29tbWl0IDVkYzljZjgzNWFiYTczYzg4MjM0OGFhNGY5OWJlODNiNmU0NWFkOWIpCgpo dHRwczovL3ZpcnR1b3p6by5hdGxhc3NpYW4ubmV0L2Jyb3dzZS9WU1RPUi0xNDgxMTIKRmVhdHVy ZTogZml4IG1zL3RpbWVucwoKU2lnbmVkLW9mZi1ieTogRXZhIEt1cmNoYXRvdmEgPGV2YS5rdXJj aGF0b3ZhQHZpcnR1b3p6by5jb20+Ci0tLQogTUFJTlRBSU5FUlMgICAgICAgICAgICAgICAgICAg ICAgfCAgIDIgKwogaW5jbHVkZS9saW51eC90aW1lX25hbWVzcGFjZS5oICAgfCAgIDggLS0KIGtl cm5lbC90aW1lL01ha2VmaWxlICAgICAgICAgICAgIHwgICAyICstCiBrZXJuZWwvdGltZS9uYW1l c3BhY2UuYyAgICAgICAgICB8IDExOSArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoga2VybmVs L3RpbWUvbmFtZXNwYWNlX2ludGVybmFsLmggfCAgMTMgKysrCiBrZXJuZWwvdGltZS9uYW1lc3Bh Y2VfdmRzby5jICAgICB8IDE0MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBsaWIv dmRzby9kYXRhc3RvcmUuYyAgICAgICAgICAgICB8ICAyNSAtLS0tLS0KIDcgZmlsZXMgY2hhbmdl ZCwgMTYxIGluc2VydGlvbnMoKyksIDE0OSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBrZXJuZWwvdGltZS9uYW1lc3BhY2VfaW50ZXJuYWwuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGtl cm5lbC90aW1lL25hbWVzcGFjZV92ZHNvLmMKCmRpZmYgLS1naXQgYS9NQUlOVEFJTkVSUyBiL01B SU5UQUlORVJTCmluZGV4IDk1MjNkYTNjNzY3Yy4uYWM2NDllZTBjNDNjIDEwMDY0NAotLS0gYS9N QUlOVEFJTkVSUworKysgYi9NQUlOVEFJTkVSUwpAQCAtOTY4Myw2ICs5NjgzLDcgQEAgUzoJTWFp bnRhaW5lZAogVDoJZ2l0IGdpdDovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVs L2dpdC90aXAvdGlwLmdpdCB0aW1lcnMvdmRzbwogRjoJaW5jbHVkZS9hc20tZ2VuZXJpYy92ZHNv L3ZzeXNjYWxsLmgKIEY6CWluY2x1ZGUvdmRzby8KK0Y6CWtlcm5lbC90aW1lL25hbWVzcGFjZV92 ZHNvLmMKIEY6CWtlcm5lbC90aW1lL3ZzeXNjYWxsLmMKIEY6CWxpYi92ZHNvLwogRjoJdG9vbHMv dGVzdGluZy9zZWxmdGVzdHMvdkRTTy8KQEAgLTE4NTc2LDYgKzE4NTc3LDcgQEAgRjoJaW5jbHVk ZS90cmFjZS9ldmVudHMvdGltZXIqCiBGOglrZXJuZWwvdGltZS9pdGltZXIuYwogRjoJa2VybmVs L3RpbWUvcG9zaXgtKgogRjoJa2VybmVsL3RpbWUvbmFtZXNwYWNlLmMKK0Y6CWtlcm5lbC90aW1l L25hbWVzcGFjZV92ZHNvLmMKIAogUE9XRVIgTUFOQUdFTUVOVCBDT1JFCiBNOgkiUmFmYWVsIEou IFd5c29ja2kiIDxyYWZhZWxAa2VybmVsLm9yZz4KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgv dGltZV9uYW1lc3BhY2UuaCBiL2luY2x1ZGUvbGludXgvdGltZV9uYW1lc3BhY2UuaAppbmRleCAz ZDNiNTI5YzVhOTguLjIzMzg0ZWFmZWJmYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC90aW1l X25hbWVzcGFjZS5oCisrKyBiL2luY2x1ZGUvbGludXgvdGltZV9uYW1lc3BhY2UuaApAQCAtMzUs OCArMzUsNiBAQCBleHRlcm4gc3RydWN0IHRpbWVfbmFtZXNwYWNlIGluaXRfdGltZV9uczsKIGV4 dGVybiBzdHJ1Y3QgbXV0ZXggb2Zmc2V0X2xvY2s7CiAKICNpZmRlZiBDT05GSUdfVElNRV9OUwot ZXh0ZXJuIGludCB2ZHNvX2pvaW5fdGltZW5zKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywKLQkJ CSAgICBzdHJ1Y3QgdGltZV9uYW1lc3BhY2UgKm5zKTsKIGV4dGVybiB2b2lkIHRpbWVuc19jb21t aXQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHN0cnVjdCB0aW1lX25hbWVzcGFjZSAqbnMpOwog CiBzdGF0aWMgaW5saW5lIHN0cnVjdCB0aW1lX25hbWVzcGFjZSAqZ2V0X3RpbWVfbnMoc3RydWN0 IHRpbWVfbmFtZXNwYWNlICpucykKQEAgLTExMCwxMiArMTA4LDYgQEAgc3RhdGljIGlubGluZSBr dGltZV90IHRpbWVuc19rdGltZV90b19ob3N0KGNsb2NraWRfdCBjbG9ja2lkLCBrdGltZV90IHRp bSkKIH0KIAogI2Vsc2UKLXN0YXRpYyBpbmxpbmUgaW50IHZkc29fam9pbl90aW1lbnMoc3RydWN0 IHRhc2tfc3RydWN0ICp0YXNrLAotCQkJCSAgIHN0cnVjdCB0aW1lX25hbWVzcGFjZSAqbnMpCi17 Ci0JcmV0dXJuIDA7Ci19Ci0KIHN0YXRpYyBpbmxpbmUgdm9pZCB0aW1lbnNfY29tbWl0KHN0cnVj dCB0YXNrX3N0cnVjdCAqdHNrLAogCQkJCSBzdHJ1Y3QgdGltZV9uYW1lc3BhY2UgKm5zKQogewpk aWZmIC0tZ2l0IGEva2VybmVsL3RpbWUvTWFrZWZpbGUgYi9rZXJuZWwvdGltZS9NYWtlZmlsZQpp bmRleCBmZTBhZTgyMTI0ZmUuLjQ5NGJkNGU0MTc4MSAxMDA2NDQKLS0tIGEva2VybmVsL3RpbWUv TWFrZWZpbGUKKysrIGIva2VybmVsL3RpbWUvTWFrZWZpbGUKQEAgLTIzLDYgKzIzLDYgQEAgZW5k aWYKIG9iai0kKENPTkZJR19IQVZFX0dFTkVSSUNfVkRTTykJCQkrPSB2c3lzY2FsbC5vCiBvYmot JChDT05GSUdfREVCVUdfRlMpCQkJCSs9IHRpbWVrZWVwaW5nX2RlYnVnLm8KIG9iai0kKENPTkZJ R19URVNUX1VERUxBWSkJCQkrPSB0ZXN0X3VkZWxheS5vCi1vYmotJChDT05GSUdfVElNRV9OUykJ CQkJKz0gbmFtZXNwYWNlLm8KK29iai0kKENPTkZJR19USU1FX05TKQkJCQkrPSBuYW1lc3BhY2Uu byBuYW1lc3BhY2VfdmRzby5vCiBvYmotJChDT05GSUdfVEVTVF9DTE9DS1NPVVJDRV9XQVRDSERP RykJCSs9IGNsb2Nrc291cmNlLXdkdGVzdC5vCiBvYmotJChDT05GSUdfVElNRV9LVU5JVF9URVNU KQkJCSs9IHRpbWVfdGVzdC5vCmRpZmYgLS1naXQgYS9rZXJuZWwvdGltZS9uYW1lc3BhY2UuYyBi L2tlcm5lbC90aW1lL25hbWVzcGFjZS5jCmluZGV4IGU4NWY5NDdkNDA2My4uYzgyZGM5YTVkMWRl IDEwMDY0NAotLS0gYS9rZXJuZWwvdGltZS9uYW1lc3BhY2UuYworKysgYi9rZXJuZWwvdGltZS9u YW1lc3BhY2UuYwpAQCAtMTgsNyArMTgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgogI2lu Y2x1ZGUgPGxpbnV4L21tLmg+CiAKLSNpbmNsdWRlIDx2ZHNvL2RhdGFwYWdlLmg+CisjaW5jbHVk ZSAibmFtZXNwYWNlX2ludGVybmFsLmgiCiAKIGt0aW1lX3QgZG9fdGltZW5zX2t0aW1lX3RvX2hv c3QoY2xvY2tpZF90IGNsb2NraWQsIGt0aW1lX3QgdGltLAogCQkJCXN0cnVjdCB0aW1lbnNfb2Zm c2V0cyAqbnNfb2Zmc2V0cykKQEAgLTEzOSwxMTIgKzEzOSw3IEBAIHN0cnVjdCB0aW1lX25hbWVz cGFjZSAqY29weV90aW1lX25zKHVuc2lnbmVkIGxvbmcgZmxhZ3MsCiAJcmV0dXJuIGNsb25lX3Rp bWVfbnModXNlcl9ucywgb2xkX25zKTsKIH0KIAotc3RhdGljIHN0cnVjdCB0aW1lbnNfb2Zmc2V0 IG9mZnNldF9mcm9tX3RzKHN0cnVjdCB0aW1lc3BlYzY0IG9mZikKLXsKLQlzdHJ1Y3QgdGltZW5z X29mZnNldCByZXQ7Ci0KLQlyZXQuc2VjID0gb2ZmLnR2X3NlYzsKLQlyZXQubnNlYyA9IG9mZi50 dl9uc2VjOwotCi0JcmV0dXJuIHJldDsKLX0KLQotLyoKLSAqIEEgdGltZSBuYW1lc3BhY2UgVlZB UiBwYWdlIGhhcyB0aGUgc2FtZSBsYXlvdXQgYXMgdGhlIFZWQVIgcGFnZSB3aGljaAotICogY29u dGFpbnMgdGhlIHN5c3RlbSB3aWRlIFZEU08gZGF0YS4KLSAqCi0gKiBGb3IgYSBub3JtYWwgdGFz ayB0aGUgVlZBUiBwYWdlcyBhcmUgaW5zdGFsbGVkIGluIHRoZSBub3JtYWwgb3JkZXJpbmc6Ci0g KiAgICAgVlZBUgotICogICAgIFBWQ0xPQ0sKLSAqICAgICBIVkNMT0NLCi0gKiAgICAgVElNRU5T ICAgPC0gTm90IHJlYWxseSByZXF1aXJlZAotICoKLSAqIE5vdyBmb3IgYSB0aW1lbnMgdGFzayB0 aGUgcGFnZXMgYXJlIGluc3RhbGxlZCBpbiB0aGUgZm9sbG93aW5nIG9yZGVyOgotICogICAgIFRJ TUVOUwotICogICAgIFBWQ0xPQ0sKLSAqICAgICBIVkNMT0NLCi0gKiAgICAgVlZBUgotICoKLSAq IFRoZSBjaGVjayBmb3IgdmRzb19jbG9jay0+Y2xvY2tfbW9kZSBpcyBpbiB0aGUgdW5saWtlbHkg cGF0aCBvZgotICogdGhlIHNlcSBiZWdpbiBtYWdpYy4gU28gZm9yIHRoZSBub24tdGltZW5zIGNh c2UgbW9zdCBvZiB0aGUgdGltZQotICogJ3NlcScgaXMgZXZlbiwgc28gdGhlIGJyYW5jaCBpcyBu b3QgdGFrZW4uCi0gKgotICogSWYgJ3NlcScgaXMgb2RkLCBpLmUuIGEgY29uY3VycmVudCB1cGRh dGUgaXMgaW4gcHJvZ3Jlc3MsIHRoZSBleHRyYSBjaGVjawotICogZm9yIHZkc29fY2xvY2stPmNs b2NrX21vZGUgaXMgYSBub24taXNzdWUuIFRoZSB0YXNrIGlzIHNwaW4gd2FpdGluZyBmb3IgdGhl Ci0gKiB1cGRhdGUgdG8gZmluaXNoIGFuZCBmb3IgJ3NlcScgdG8gYmVjb21lIGV2ZW4gYW55d2F5 LgotICoKLSAqIFRpbWVucyBwYWdlIGhhcyB2ZHNvX2Nsb2NrLT5jbG9ja19tb2RlIHNldCB0byBW RFNPX0NMT0NLTU9ERV9USU1FTlMgd2hpY2gKLSAqIGVuZm9yY2VzIHRoZSB0aW1lIG5hbWVzcGFj ZSBoYW5kbGluZyBwYXRoLgotICovCi1zdGF0aWMgdm9pZCB0aW1lbnNfc2V0dXBfdmRzb19jbG9j a19kYXRhKHN0cnVjdCB2ZHNvX2Nsb2NrICp2YywKLQkJCQkJIHN0cnVjdCB0aW1lX25hbWVzcGFj ZSAqbnMpCi17Ci0Jc3RydWN0IHRpbWVuc19vZmZzZXQgKm9mZnNldCA9IHZjLT5vZmZzZXQ7Ci0J c3RydWN0IHRpbWVuc19vZmZzZXQgbW9ub3RvbmljID0gb2Zmc2V0X2Zyb21fdHMobnMtPm9mZnNl dHMubW9ub3RvbmljKTsKLQlzdHJ1Y3QgdGltZW5zX29mZnNldCBib290dGltZSA9IG9mZnNldF9m cm9tX3RzKG5zLT5vZmZzZXRzLmJvb3R0aW1lKTsKLQotCXZjLT5zZXEJCQkJPSAxOwotCXZjLT5j bG9ja19tb2RlCQkJPSBWRFNPX0NMT0NLTU9ERV9USU1FTlM7Ci0Jb2Zmc2V0W0NMT0NLX01PTk9U T05JQ10JCT0gbW9ub3RvbmljOwotCW9mZnNldFtDTE9DS19NT05PVE9OSUNfUkFXXQk9IG1vbm90 b25pYzsKLQlvZmZzZXRbQ0xPQ0tfTU9OT1RPTklDX0NPQVJTRV0JPSBtb25vdG9uaWM7Ci0Jb2Zm c2V0W0NMT0NLX0JPT1RUSU1FXQkJPSBib290dGltZTsKLQlvZmZzZXRbQ0xPQ0tfQk9PVFRJTUVf QUxBUk1dCT0gYm9vdHRpbWU7Ci19Ci0KLXN0cnVjdCBwYWdlICpmaW5kX3RpbWVuc192dmFyX3Bh Z2Uoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCi17Ci0JaWYgKGxpa2VseSh2bWEtPnZtX21t ID09IGN1cnJlbnQtPm1tKSkKLQkJcmV0dXJuIGN1cnJlbnQtPm5zcHJveHktPnRpbWVfbnMtPnZ2 YXJfcGFnZTsKLQotCS8qCi0JICogVk1fUEZOTUFQIHwgVk1fSU8gcHJvdGVjdCAuZmF1bHQoKSBo YW5kbGVyIGZyb20gYmVpbmcgY2FsbGVkCi0JICogdGhyb3VnaCBpbnRlcmZhY2VzIGxpa2UgL3By b2MvJHBpZC9tZW0gb3IKLQkgKiBwcm9jZXNzX3ZtX3tyZWFkdix3cml0ZXZ9KCkgYXMgbG9uZyBh cyB0aGVyZSdzIG5vIC5hY2Nlc3MoKQotCSAqIGluIHNwZWNpYWxfbWFwcGluZ192bW9wcygpLgot CSAqIEZvciBtb3JlIGRldGFpbHMgY2hlY2tfdm1hX2ZsYWdzKCkgYW5kIF9fYWNjZXNzX3JlbW90 ZV92bSgpCi0JICovCi0KLQlXQVJOKDEsICJ2dmFyX3BhZ2UgYWNjZXNzZWQgcmVtb3RlbHkiKTsK LQotCXJldHVybiBOVUxMOwotfQotCi0vKgotICogUHJvdGVjdHMgcG9zc2libHkgbXVsdGlwbGUg b2Zmc2V0cyB3cml0ZXJzIHJhY2luZyBlYWNoIG90aGVyCi0gKiBhbmQgdGFza3MgZW50ZXJpbmcg dGhlIG5hbWVzcGFjZS4KLSAqLwotREVGSU5FX01VVEVYKG9mZnNldF9sb2NrKTsKLQotc3RhdGlj IHZvaWQgdGltZW5zX3NldF92dmFyX3BhZ2Uoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLAotCQkJ CXN0cnVjdCB0aW1lX25hbWVzcGFjZSAqbnMpCi17Ci0Jc3RydWN0IHZkc29fdGltZV9kYXRhICp2 ZGF0YTsKLQlzdHJ1Y3QgdmRzb19jbG9jayAqdmM7Ci0JdW5zaWduZWQgaW50IGk7Ci0KLQlpZiAo bnMgPT0gJmluaXRfdGltZV9ucykKLQkJcmV0dXJuOwotCi0JLyogRmFzdC1wYXRoLCB0YWtlbiBi eSBldmVyeSB0YXNrIGluIG5hbWVzcGFjZSBleGNlcHQgdGhlIGZpcnN0LiAqLwotCWlmIChsaWtl bHkobnMtPmZyb3plbl9vZmZzZXRzKSkKLQkJcmV0dXJuOwotCi0JbXV0ZXhfbG9jaygmb2Zmc2V0 X2xvY2spOwotCS8qIE5vdGhpbmcgdG8tZG86IHZ2YXJfcGFnZSBoYXMgYmVlbiBhbHJlYWR5IGlu aXRpYWxpemVkLiAqLwotCWlmIChucy0+ZnJvemVuX29mZnNldHMpCi0JCWdvdG8gb3V0OwotCi0J bnMtPmZyb3plbl9vZmZzZXRzID0gdHJ1ZTsKLQl2ZGF0YSA9IHBhZ2VfYWRkcmVzcyhucy0+dnZh cl9wYWdlKTsKLQl2YyA9IHZkYXRhLT5jbG9ja19kYXRhOwotCi0JZm9yIChpID0gMDsgaSA8IENT X0JBU0VTOyBpKyspCi0JCXRpbWVuc19zZXR1cF92ZHNvX2Nsb2NrX2RhdGEoJnZjW2ldLCBucyk7 Ci0KLW91dDoKLQltdXRleF91bmxvY2soJm9mZnNldF9sb2NrKTsKLX0KK0RFRklORV9NVVRFWCh0 aW1lbnNfb2Zmc2V0X2xvY2spOwogCiB2b2lkIGZyZWVfdGltZV9ucyhzdHJ1Y3QgdGltZV9uYW1l c3BhY2UgKm5zKQogewpAQCAtMjk3LDEyICsxOTIsNiBAQCBzdGF0aWMgdm9pZCB0aW1lbnNfcHV0 KHN0cnVjdCBuc19jb21tb24gKm5zKQogCXB1dF90aW1lX25zKHRvX3RpbWVfbnMobnMpKTsKIH0K IAotdm9pZCB0aW1lbnNfY29tbWl0KHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3QgdGlt ZV9uYW1lc3BhY2UgKm5zKQotewotCXRpbWVuc19zZXRfdnZhcl9wYWdlKHRzaywgbnMpOwotCXZk c29fam9pbl90aW1lbnModHNrLCBucyk7Ci19Ci0KIHN0YXRpYyBpbnQgdGltZW5zX2luc3RhbGwo c3RydWN0IG5zc2V0ICpuc3NldCwgc3RydWN0IG5zX2NvbW1vbiAqbmV3KQogewogCXN0cnVjdCBu c3Byb3h5ICpuc3Byb3h5ID0gbnNzZXQtPm5zcHJveHk7CkBAIC00MjcsNyArMzE2LDcgQEAgaW50 IHByb2NfdGltZW5zX3NldF9vZmZzZXQoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCB0YXNrX3N0 cnVjdCAqcCwKIAkJCWdvdG8gb3V0OwogCX0KIAotCW11dGV4X2xvY2soJm9mZnNldF9sb2NrKTsK KwltdXRleF9sb2NrKCZ0aW1lbnNfb2Zmc2V0X2xvY2spOwogCWlmICh0aW1lX25zLT5mcm96ZW5f b2Zmc2V0cykgewogCQllcnIgPSAtRUFDQ0VTOwogCQlnb3RvIG91dF91bmxvY2s7CkBAIC00NTIs NyArMzQxLDcgQEAgaW50IHByb2NfdGltZW5zX3NldF9vZmZzZXQoc3RydWN0IGZpbGUgKmZpbGUs IHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwKIAl9CiAKIG91dF91bmxvY2s6Ci0JbXV0ZXhfdW5sb2Nr KCZvZmZzZXRfbG9jayk7CisJbXV0ZXhfdW5sb2NrKCZ0aW1lbnNfb2Zmc2V0X2xvY2spOwogb3V0 OgogCXB1dF90aW1lX25zKHRpbWVfbnMpOwogCmRpZmYgLS1naXQgYS9rZXJuZWwvdGltZS9uYW1l c3BhY2VfaW50ZXJuYWwuaCBiL2tlcm5lbC90aW1lL25hbWVzcGFjZV9pbnRlcm5hbC5oCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZTg1ZGExMWFiYjRkCi0tLSAvZGV2 L251bGwKKysrIGIva2VybmVsL3RpbWUvbmFtZXNwYWNlX2ludGVybmFsLmgKQEAgLTAsMCArMSwx MyBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KKyNpZm5kZWYgX1RJ TUVfTkFNRVNQQUNFX0lOVEVSTkFMX0gKKyNkZWZpbmUgX1RJTUVfTkFNRVNQQUNFX0lOVEVSTkFM X0gKKworI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CisKKy8qCisgKiBQcm90ZWN0cyBwb3NzaWJs eSBtdWx0aXBsZSBvZmZzZXRzIHdyaXRlcnMgcmFjaW5nIGVhY2ggb3RoZXIKKyAqIGFuZCB0YXNr cyBlbnRlcmluZyB0aGUgbmFtZXNwYWNlLgorICovCitleHRlcm4gc3RydWN0IG11dGV4IHRpbWVu c19vZmZzZXRfbG9jazsKKworI2VuZGlmIC8qIF9USU1FX05BTUVTUEFDRV9JTlRFUk5BTF9IICov CmRpZmYgLS1naXQgYS9rZXJuZWwvdGltZS9uYW1lc3BhY2VfdmRzby5jIGIva2VybmVsL3RpbWUv bmFtZXNwYWNlX3Zkc28uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu LjU1OGJmNTIwODU4OAotLS0gL2Rldi9udWxsCisrKyBiL2tlcm5lbC90aW1lL25hbWVzcGFjZV92 ZHNvLmMKQEAgLTAsMCArMSwxNDEgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwt Mi4wCisvKgorICogQXV0aG9yOiBBbmRyZWkgVmFnaW4gPGF2YWdpbkBvcGVudnoub3JnPgorICog QXV0aG9yOiBEbWl0cnkgU2Fmb25vdiA8ZGltYUBhcmlzdGEuY29tPgorICovCisKKyNpbmNsdWRl IDxsaW51eC9jbGVhbnVwLmg+CisjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51 eC90aW1lX25hbWVzcGFjZS5oPgorI2luY2x1ZGUgPGxpbnV4L3RpbWUuaD4KKyNpbmNsdWRlIDxs aW51eC92ZHNvX2RhdGFzdG9yZS5oPgorCisjaW5jbHVkZSA8dmRzby9jbG9ja3NvdXJjZS5oPgor I2luY2x1ZGUgPHZkc28vZGF0YXBhZ2UuaD4KKworI2luY2x1ZGUgIm5hbWVzcGFjZV9pbnRlcm5h bC5oIgorCitzdGF0aWMgc3RydWN0IHRpbWVuc19vZmZzZXQgb2Zmc2V0X2Zyb21fdHMoc3RydWN0 IHRpbWVzcGVjNjQgb2ZmKQoreworCXN0cnVjdCB0aW1lbnNfb2Zmc2V0IHJldDsKKworCXJldC5z ZWMgPSBvZmYudHZfc2VjOworCXJldC5uc2VjID0gb2ZmLnR2X25zZWM7CisKKwlyZXR1cm4gcmV0 OworfQorCisvKgorICogQSB0aW1lIG5hbWVzcGFjZSBWVkFSIHBhZ2UgaGFzIHRoZSBzYW1lIGxh eW91dCBhcyB0aGUgVlZBUiBwYWdlIHdoaWNoCisgKiBjb250YWlucyB0aGUgc3lzdGVtIHdpZGUg VkRTTyBkYXRhLgorICoKKyAqIEZvciBhIG5vcm1hbCB0YXNrIHRoZSBWVkFSIHBhZ2VzIGFyZSBp bnN0YWxsZWQgaW4gdGhlIG5vcm1hbCBvcmRlcmluZzoKKyAqICAgICBWVkFSCisgKiAgICAgUFZD TE9DSworICogICAgIEhWQ0xPQ0sKKyAqICAgICBUSU1FTlMgICA8LSBOb3QgcmVhbGx5IHJlcXVp cmVkCisgKgorICogTm93IGZvciBhIHRpbWVucyB0YXNrIHRoZSBwYWdlcyBhcmUgaW5zdGFsbGVk IGluIHRoZSBmb2xsb3dpbmcgb3JkZXI6CisgKiAgICAgVElNRU5TCisgKiAgICAgUFZDTE9DSwor ICogICAgIEhWQ0xPQ0sKKyAqICAgICBWVkFSCisgKgorICogVGhlIGNoZWNrIGZvciB2ZHNvX2Ns b2NrLT5jbG9ja19tb2RlIGlzIGluIHRoZSB1bmxpa2VseSBwYXRoIG9mCisgKiB0aGUgc2VxIGJl Z2luIG1hZ2ljLiBTbyBmb3IgdGhlIG5vbi10aW1lbnMgY2FzZSBtb3N0IG9mIHRoZSB0aW1lCisg KiAnc2VxJyBpcyBldmVuLCBzbyB0aGUgYnJhbmNoIGlzIG5vdCB0YWtlbi4KKyAqCisgKiBJZiAn c2VxJyBpcyBvZGQsIGkuZS4gYSBjb25jdXJyZW50IHVwZGF0ZSBpcyBpbiBwcm9ncmVzcywgdGhl IGV4dHJhIGNoZWNrCisgKiBmb3IgdmRzb19jbG9jay0+Y2xvY2tfbW9kZSBpcyBhIG5vbi1pc3N1 ZS4gVGhlIHRhc2sgaXMgc3BpbiB3YWl0aW5nIGZvciB0aGUKKyAqIHVwZGF0ZSB0byBmaW5pc2gg YW5kIGZvciAnc2VxJyB0byBiZWNvbWUgZXZlbiBhbnl3YXkuCisgKgorICogVGltZW5zIHBhZ2Ug aGFzIHZkc29fY2xvY2stPmNsb2NrX21vZGUgc2V0IHRvIFZEU09fQ0xPQ0tNT0RFX1RJTUVOUyB3 aGljaAorICogZW5mb3JjZXMgdGhlIHRpbWUgbmFtZXNwYWNlIGhhbmRsaW5nIHBhdGguCisgKi8K K3N0YXRpYyB2b2lkIHRpbWVuc19zZXR1cF92ZHNvX2Nsb2NrX2RhdGEoc3RydWN0IHZkc29fY2xv Y2sgKnZjLAorCQkJCQkgc3RydWN0IHRpbWVfbmFtZXNwYWNlICpucykKK3sKKwlzdHJ1Y3QgdGlt ZW5zX29mZnNldCAqb2Zmc2V0ID0gdmMtPm9mZnNldDsKKwlzdHJ1Y3QgdGltZW5zX29mZnNldCBt b25vdG9uaWMgPSBvZmZzZXRfZnJvbV90cyhucy0+b2Zmc2V0cy5tb25vdG9uaWMpOworCXN0cnVj dCB0aW1lbnNfb2Zmc2V0IGJvb3R0aW1lID0gb2Zmc2V0X2Zyb21fdHMobnMtPm9mZnNldHMuYm9v dHRpbWUpOworCisJdmMtPnNlcQkJCQk9IDE7CisJdmMtPmNsb2NrX21vZGUJCQk9IFZEU09fQ0xP Q0tNT0RFX1RJTUVOUzsKKwlvZmZzZXRbQ0xPQ0tfTU9OT1RPTklDXQkJPSBtb25vdG9uaWM7CisJ b2Zmc2V0W0NMT0NLX01PTk9UT05JQ19SQVddCT0gbW9ub3RvbmljOworCW9mZnNldFtDTE9DS19N T05PVE9OSUNfQ09BUlNFXQk9IG1vbm90b25pYzsKKwlvZmZzZXRbQ0xPQ0tfQk9PVFRJTUVdCQk9 IGJvb3R0aW1lOworCW9mZnNldFtDTE9DS19CT09UVElNRV9BTEFSTV0JPSBib290dGltZTsKK30K Kworc3RydWN0IHBhZ2UgKmZpbmRfdGltZW5zX3Z2YXJfcGFnZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1 Y3QgKnZtYSkKK3sKKwlpZiAobGlrZWx5KHZtYS0+dm1fbW0gPT0gY3VycmVudC0+bW0pKQorCQly ZXR1cm4gY3VycmVudC0+bnNwcm94eS0+dGltZV9ucy0+dnZhcl9wYWdlOworCisJLyoKKwkgKiBW TV9QRk5NQVAgfCBWTV9JTyBwcm90ZWN0IC5mYXVsdCgpIGhhbmRsZXIgZnJvbSBiZWluZyBjYWxs ZWQKKwkgKiB0aHJvdWdoIGludGVyZmFjZXMgbGlrZSAvcHJvYy8kcGlkL21lbSBvcgorCSAqIHBy b2Nlc3Nfdm1fe3JlYWR2LHdyaXRldn0oKSBhcyBsb25nIGFzIHRoZXJlJ3Mgbm8gLmFjY2Vzcygp CisJICogaW4gc3BlY2lhbF9tYXBwaW5nX3Ztb3BzKCkuCisJICogRm9yIG1vcmUgZGV0YWlscyBj aGVja192bWFfZmxhZ3MoKSBhbmQgX19hY2Nlc3NfcmVtb3RlX3ZtKCkKKwkgKi8KKworCVdBUk4o MSwgInZ2YXJfcGFnZSBhY2Nlc3NlZCByZW1vdGVseSIpOworCisJcmV0dXJuIE5VTEw7Cit9CisK K3N0YXRpYyB2b2lkIHRpbWVuc19zZXRfdnZhcl9wYWdlKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFz aywKKwkJCQlzdHJ1Y3QgdGltZV9uYW1lc3BhY2UgKm5zKQoreworCXN0cnVjdCB2ZHNvX3RpbWVf ZGF0YSAqdmRhdGE7CisJc3RydWN0IHZkc29fY2xvY2sgKnZjOworCXVuc2lnbmVkIGludCBpOwor CisJaWYgKG5zID09ICZpbml0X3RpbWVfbnMpCisJCXJldHVybjsKKworCS8qIEZhc3QtcGF0aCwg dGFrZW4gYnkgZXZlcnkgdGFzayBpbiBuYW1lc3BhY2UgZXhjZXB0IHRoZSBmaXJzdC4gKi8KKwlp ZiAobGlrZWx5KG5zLT5mcm96ZW5fb2Zmc2V0cykpCisJCXJldHVybjsKKworCWd1YXJkKG11dGV4 KSgmdGltZW5zX29mZnNldF9sb2NrKTsKKwkvKiBOb3RoaW5nIHRvLWRvOiB2dmFyX3BhZ2UgaGFz IGJlZW4gYWxyZWFkeSBpbml0aWFsaXplZC4gKi8KKwlpZiAobnMtPmZyb3plbl9vZmZzZXRzKQor CQlyZXR1cm47CisKKwlucy0+ZnJvemVuX29mZnNldHMgPSB0cnVlOworCXZkYXRhID0gcGFnZV9h ZGRyZXNzKG5zLT52dmFyX3BhZ2UpOworCXZjID0gdmRhdGEtPmNsb2NrX2RhdGE7CisKKwlmb3Ig KGkgPSAwOyBpIDwgQ1NfQkFTRVM7IGkrKykKKwkJdGltZW5zX3NldHVwX3Zkc29fY2xvY2tfZGF0 YSgmdmNbaV0sIG5zKTsKK30KKworLyoKKyAqIFRoZSB2dmFyIHBhZ2UgbGF5b3V0IGRlcGVuZHMg b24gd2hldGhlciBhIHRhc2sgYmVsb25ncyB0byB0aGUgcm9vdCBvcgorICogbm9uLXJvb3QgdGlt ZSBuYW1lc3BhY2UuIFdoZW5ldmVyIGEgdGFzayBjaGFuZ2VzIGl0cyBuYW1lc3BhY2UsIHRoZSBW VkFSCisgKiBwYWdlIHRhYmxlcyBhcmUgY2xlYXJlZCBhbmQgdGhlbiB0aGV5IHdpbGwgYmUgcmUt ZmF1bHRlZCB3aXRoIGEKKyAqIGNvcnJlc3BvbmRpbmcgbGF5b3V0LgorICogU2VlIGFsc28gdGhl IGNvbW1lbnQgbmVhciB0aW1lbnNfc2V0dXBfdmRzb19jbG9ja19kYXRhKCkgZm9yIGRldGFpbHMu CisgKi8KK3N0YXRpYyBpbnQgdmRzb19qb2luX3RpbWVucyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRh c2ssIHN0cnVjdCB0aW1lX25hbWVzcGFjZSAqbnMpCit7CisJc3RydWN0IG1tX3N0cnVjdCAqbW0g PSB0YXNrLT5tbTsKKwlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYTsKKwlWTUFfSVRFUkFUT1Io dm1pLCBtbSwgMCk7CisKKwlndWFyZChtbWFwX3JlYWRfbG9jaykobW0pOworCWZvcl9lYWNoX3Zt YSh2bWksIHZtYSkgeworCQlpZiAodm1hX2lzX3NwZWNpYWxfbWFwcGluZyh2bWEsICZ2ZHNvX3Z2 YXJfbWFwcGluZykpCisJCQl6YXBfdm1hX3BhZ2VzKHZtYSk7CisJfQorCXJldHVybiAwOworfQor Cit2b2lkIHRpbWVuc19jb21taXQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHN0cnVjdCB0aW1l X25hbWVzcGFjZSAqbnMpCit7CisJdGltZW5zX3NldF92dmFyX3BhZ2UodHNrLCBucyk7CisJdmRz b19qb2luX3RpbWVucyh0c2ssIG5zKTsKK30KZGlmZiAtLWdpdCBhL2xpYi92ZHNvL2RhdGFzdG9y ZS5jIGIvbGliL3Zkc28vZGF0YXN0b3JlLmMKaW5kZXggNDYxOTJjMWQ4NTQyLi43NzEzZmQzOTJk ZDAgMTAwNjQ0Ci0tLSBhL2xpYi92ZHNvL2RhdGFzdG9yZS5jCisrKyBiL2xpYi92ZHNvL2RhdGFz dG9yZS5jCkBAIC0xMDIsMjggKzEwMiwzIEBAIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdmRzb19p bnN0YWxsX3Z2YXJfbWFwcGluZyhzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQKIAkJCQkJ Vk1fUkVBRCB8IFZNX01BWVJFQUQgfCBWTV9JTyB8IFZNX0RPTlREVU1QIHwgVk1fUEZOTUFQLAog CQkJCQkmdmRzb192dmFyX21hcHBpbmcpOwogfQotCi0jaWZkZWYgQ09ORklHX1RJTUVfTlMKLS8q Ci0gKiBUaGUgdnZhciBwYWdlIGxheW91dCBkZXBlbmRzIG9uIHdoZXRoZXIgYSB0YXNrIGJlbG9u Z3MgdG8gdGhlIHJvb3Qgb3IKLSAqIG5vbi1yb290IHRpbWUgbmFtZXNwYWNlLiBXaGVuZXZlciBh IHRhc2sgY2hhbmdlcyBpdHMgbmFtZXNwYWNlLCB0aGUgVlZBUgotICogcGFnZSB0YWJsZXMgYXJl IGNsZWFyZWQgYW5kIHRoZW4gdGhleSB3aWxsIGJlIHJlLWZhdWx0ZWQgd2l0aCBhCi0gKiBjb3Jy ZXNwb25kaW5nIGxheW91dC4KLSAqIFNlZSBhbHNvIHRoZSBjb21tZW50IG5lYXIgdGltZW5zX3Nl dHVwX3Zkc29fY2xvY2tfZGF0YSgpIGZvciBkZXRhaWxzLgotICovCi1pbnQgdmRzb19qb2luX3Rp bWVucyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIHN0cnVjdCB0aW1lX25hbWVzcGFjZSAqbnMp Ci17Ci0Jc3RydWN0IG1tX3N0cnVjdCAqbW0gPSB0YXNrLT5tbTsKLQlzdHJ1Y3Qgdm1fYXJlYV9z dHJ1Y3QgKnZtYTsKLQlWTUFfSVRFUkFUT1Iodm1pLCBtbSwgMCk7Ci0KLQltbWFwX3JlYWRfbG9j ayhtbSk7Ci0JZm9yX2VhY2hfdm1hKHZtaSwgdm1hKSB7Ci0JCWlmICh2bWFfaXNfc3BlY2lhbF9t YXBwaW5nKHZtYSwgJnZkc29fdnZhcl9tYXBwaW5nKSkKLQkJCXphcF92bWFfcGFnZXModm1hKTsK LQl9Ci0JbW1hcF9yZWFkX3VubG9jayhtbSk7Ci0KLQlyZXR1cm4gMDsKLX0KLSNlbmRpZgotLSAK Mi41Ni4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpE ZXZlbCBtYWlsaW5nIGxpc3QKRGV2ZWxAb3BlbnZ6Lm9yZwpodHRwczovL2xpc3RzLm9wZW52ei5v cmcvbWFpbG1hbi9saXN0aW5mby9kZXZlbAo=