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 762A180726 for ; Wed, 21 Oct 2026 04:11:11 +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 69L49twj008046; Wed, 21 Oct 2026 07:09:56 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69L49twj008046 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="w02GCPu+" 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 69L49h0E008013 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Wed, 21 Oct 2026 07:09:43 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69L49h0E008013 Received: by mail-wr1-f72.google.com with SMTP id ffacd0b85a97d-48dea677afcso237494f8f.1 for ; Tue, 20 Oct 2026 21:09:43 -0700 (PDT) X-Gm-Message-State: AFq9FYK0nMN+NocM4+dJ1bAbIC0qsoTHKpO+4FTPx6lTvLQw1avNqt5D Rlm/wiWNhjP0adUmn7pdQgVdobE+O6BV4Pn9xtMRM6vuWC6okxBoV6GlIk+wGTh6L7WTwWXPqks Zh7R8l1YJ9cHMRr1LNyaIWqXeAMEfDY4xmB5v+ZF1cDej60qJoDuzgQ== X-Gm-Gg: AYBFou337wDzxhryS7urD3TXPnJmrE0kZaACV3dJU514mnE6d68hRNYWhoKTa+5owaW IYelGWVGF5qjWg+Lf8voQDKxqiOoG/neTIBpbZsAxUpnBveBd6ND8o8z7X3h9lzlKuuwkaljF70 eg9uMv7sW8vVghBO+2qi8J/LBm1G0SYmTidPv5tTFOVZO6oKpk17KV8fGELCjpNHLry17ERCzk/ OPcOtsdddNZtgnyQvHqVITmEAF/yjRUa37P8ahnrNE/U/gOW5Jll7OXkm3R2iY6qFlKPB8UMwsP +kHDw8hKk2WWeygFzlG+U2p7xMv+Xl6E/twDKQosSmE9AlC167pu/Trnf+rNd4FdBDkejipVUva mU2blKbpRvKZk/zx/vRcrLyUH6g== X-Received: by 2002:a05:6000:104:b0:48c:72fc:3644 with SMTP id ffacd0b85a97d-48e264d35f2mr881163f8f.22.1792555782881; Tue, 20 Oct 2026 21:09:42 -0700 (PDT) X-Received: by 2002:a05:6000:104:b0:48c:72fc:3644 with SMTP id ffacd0b85a97d-48e264d35f2mr881143f8f.22.1792555782151; Tue, 20 Oct 2026 21:09:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1792555782; cv=none; d=google.com; s=arc-20260327; b=Cdff+mH103rFtsBrKe76K7XpEixuBAh1pPaPKj9w1BUrZSTA/oI0jvOoVJrTXhX8JP wBkvnUDvXyAvgJhAU2kp1QfqWqrCKXVR6z0WBiAzlIqcOkEeRZBLFdiUosUiKQFWqiV+ yacK42CSJizshMHA181kX1xe1570koKzVFN2bUkKODiGTWA+gWVcFEE64c0H+QmUl2pg 6Z0OgOl0hu7MIKXXiqff/5QqwXt8d0Jp3x7vviziDMU2K9moEW2jHbbRJx2pMdrWQUtX EwkxrHzjMwf9rD4naREreJQg1V6bihukXYVmb/27dGQKfTIqKtKupcStBG+jisEVT+Cv IkQw== 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=8i16TtGuxBov7VkY61mClpfHtMTGY5whdmUUjqOflU8=; fh=WpT6aB7RBAGHZeWZzqAr71yzRFbPTYkPWKsRagLn48Q=; b=dfVwQVSv1GdpuGVbF0lrfYHYRByD30vX6wZwVGGrxxzd6uXTbVpGY9Az9O8PTmJGRd qFvqKyPfzwwhXbrJMpm1k8GMhTETEb6Si9HehXqk13ym6NShuGNDTpvCira/GfSjBxiL FDt0dR/WEga49nqSpcygs4WqnCVeTHlSbqPn3M7Tl4fjv4Zx2CkM5RavvXlxHehhKXqE NFY0/1i0Pp9vsidBF+blehR3vzX+i6KAA8lgcV5JDqYtji06BXPoeJfY1JsoPNBtPTFV Hpf0aMxZqvaCTdH8V+mhItHaMzod1FSXft5zqEU7Esrs8GM3LL5tBshqb8ilzOEziaOV 89Bw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=w02GCPu+; 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-48e2585b049si2443989f8f.206.2026.10.20.21.09.42 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 Oct 2026 21:09:42 -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=w02GCPu+; 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=8i16TtGuxBov7VkY61mClpfHtMTGY5whdmUUjqOflU8=; b=w02GCPu+1psQsl8fkN5 SvdF6czMXQE7wy2JT6niZx/RVCoQdw2fsWt38UbCEK2eB60sZGYqXgREJ/zHmfK9I0DWcbAkZ3olo OkKsLpBJTVuD5fVF9tK2L9Tb6hErA/EjcS/C7yOLZU3z2mwnEoi6BzZWr7zej/0WufUp7rjvUg4Pl BMuHYXEoyEszL8vHYrGtSTaMsdorMZu6IQe/yrIuaUYQrgQUxvJdmpLdataU1Y8e9ahLrpzIGkeaE mpbxfT2vVG9jI86T/5JJited2BIEEC8LAGUpxuWpj+XCOuLTfuIEW/4u4vb8KEW1ieuMMoufgnvES UL04f+1ZZ6/iWKw==; 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 1xJNaQ-00Bqdk-2n; Wed, 21 Oct 2026 06:09:41 +0200 From: Eva Kurchatova To: khorenko@virtuozzo.com Date: Wed, 21 Oct 2026 07:08:41 +0300 Message-ID: <20261021040939.2103947-4-eva.kurchatova@virtuozzo.com> X-Mailer: git-send-email 2.56.0 In-Reply-To: <20261021040939.2103947-1-eva.kurchatova@virtuozzo.com> References: <20261021040939.2103947-1-eva.kurchatova@virtuozzo.com> MIME-Version: 1.0 X-OZ-Fwd: true Cc: devel@openvz.org Subject: [Devel] [PATCH hci-8.1 v5 3/5] 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 ZWJhc2Ugbm90ZTogdGhpcyBrZXJuZWwgaGFzIG5vIGF1eGlsaWFyeSBjbG9ja3MsIHNvIHRoZSBt b3ZlZAp0aW1lbnNfc2V0X3Z2YXJfcGFnZSgpIGhhcyBubyBhdXhfY2xvY2tfZGF0YSB0byBzZXQg dXA7IGFuZCB0aGUgaGVhZGVyCmh1bmsgc2l0cyBuZXh0IHRvIHRvX3RpbWVfbnMoKSBhbmQgdGlt ZV9uc19pbml0KCksIHdoaWNoIHRoaXMga2VybmVsCmRvZXMgbm90IGhhdmUgaW4gdGhlIGhlYWRl ci4KCmh0dHBzOi8vdmlydHVvenpvLmF0bGFzc2lhbi5uZXQvYnJvd3NlL1ZTVE9SLTE0ODExMgpG ZWF0dXJlOiBmaXggbXMvdGltZW5zCgpTaWduZWQtb2ZmLWJ5OiBFdmEgS3VyY2hhdG92YSA8ZXZh Lmt1cmNoYXRvdmFAdmlydHVvenpvLmNvbT4KLS0tCiBNQUlOVEFJTkVSUyAgICAgICAgICAgICAg ICAgICAgICB8ICAgMiArCiBpbmNsdWRlL2xpbnV4L3RpbWVfbmFtZXNwYWNlLmggICB8ICAgOCAt LQoga2VybmVsL3RpbWUvTWFrZWZpbGUgICAgICAgICAgICAgfCAgIDIgKy0KIGtlcm5lbC90aW1l L25hbWVzcGFjZS5jICAgICAgICAgIHwgMTE5ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBr ZXJuZWwvdGltZS9uYW1lc3BhY2VfaW50ZXJuYWwuaCB8ICAxMyArKysKIGtlcm5lbC90aW1lL25h bWVzcGFjZV92ZHNvLmMgICAgIHwgMTQxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK IGxpYi92ZHNvL2RhdGFzdG9yZS5jICAgICAgICAgICAgIHwgIDI1IC0tLS0tLQogNyBmaWxlcyBj aGFuZ2VkLCAxNjEgaW5zZXJ0aW9ucygrKSwgMTQ5IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUg MTAwNjQ0IGtlcm5lbC90aW1lL25hbWVzcGFjZV9pbnRlcm5hbC5oCiBjcmVhdGUgbW9kZSAxMDA2 NDQga2VybmVsL3RpbWUvbmFtZXNwYWNlX3Zkc28uYwoKZGlmZiAtLWdpdCBhL01BSU5UQUlORVJT IGIvTUFJTlRBSU5FUlMKaW5kZXggZjBmOTU1OTA3ZmQ3Li4wY2IyMTBmZTM2YTAgMTAwNjQ0Ci0t LSBhL01BSU5UQUlORVJTCisrKyBiL01BSU5UQUlORVJTCkBAIC05Njg0LDYgKzk2ODQsNyBAQCBT OglNYWludGFpbmVkCiBUOglnaXQgZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9r ZXJuZWwvZ2l0L3RpcC90aXAuZ2l0IHRpbWVycy92ZHNvCiBGOglpbmNsdWRlL2FzbS1nZW5lcmlj L3Zkc28vdnN5c2NhbGwuaAogRjoJaW5jbHVkZS92ZHNvLworRjoJa2VybmVsL3RpbWUvbmFtZXNw YWNlX3Zkc28uYwogRjoJa2VybmVsL3RpbWUvdnN5c2NhbGwuYwogRjoJbGliL3Zkc28vCiBGOgl0 b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy92RFNPLwpAQCAtMTg1NzcsNiArMTg1NzgsNyBAQCBGOglp bmNsdWRlL3RyYWNlL2V2ZW50cy90aW1lcioKIEY6CWtlcm5lbC90aW1lL2l0aW1lci5jCiBGOglr ZXJuZWwvdGltZS9wb3NpeC0qCiBGOglrZXJuZWwvdGltZS9uYW1lc3BhY2UuYworRjoJa2VybmVs L3RpbWUvbmFtZXNwYWNlX3Zkc28uYwogCiBQT1dFUiBNQU5BR0VNRU5UIENPUkUKIE06CSJSYWZh ZWwgSi4gV3lzb2NraSIgPHJhZmFlbEBrZXJuZWwub3JnPgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9s aW51eC90aW1lX25hbWVzcGFjZS5oIGIvaW5jbHVkZS9saW51eC90aW1lX25hbWVzcGFjZS5oCmlu ZGV4IGJiMmM1MmY0ZmM5NC4uNjNkMDA1MTkyN2YxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4 L3RpbWVfbmFtZXNwYWNlLmgKKysrIGIvaW5jbHVkZS9saW51eC90aW1lX25hbWVzcGFjZS5oCkBA IC0zMyw4ICszMyw2IEBAIHN0cnVjdCB0aW1lX25hbWVzcGFjZSB7CiBleHRlcm4gc3RydWN0IHRp bWVfbmFtZXNwYWNlIGluaXRfdGltZV9uczsKIAogI2lmZGVmIENPTkZJR19USU1FX05TCi1leHRl cm4gaW50IHZkc29fam9pbl90aW1lbnMoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLAotCQkJICAg IHN0cnVjdCB0aW1lX25hbWVzcGFjZSAqbnMpOwogZXh0ZXJuIHZvaWQgdGltZW5zX2NvbW1pdChz dHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgc3RydWN0IHRpbWVfbmFtZXNwYWNlICpucyk7CiAKIHN0 YXRpYyBpbmxpbmUgc3RydWN0IHRpbWVfbmFtZXNwYWNlICpnZXRfdGltZV9ucyhzdHJ1Y3QgdGlt ZV9uYW1lc3BhY2UgKm5zKQpAQCAtMTA4LDEyICsxMDYsNiBAQCBzdGF0aWMgaW5saW5lIGt0aW1l X3QgdGltZW5zX2t0aW1lX3RvX2hvc3QoY2xvY2tpZF90IGNsb2NraWQsIGt0aW1lX3QgdGltKQog fQogCiAjZWxzZQotc3RhdGljIGlubGluZSBpbnQgdmRzb19qb2luX3RpbWVucyhzdHJ1Y3QgdGFz a19zdHJ1Y3QgKnRhc2ssCi0JCQkJICAgc3RydWN0IHRpbWVfbmFtZXNwYWNlICpucykKLXsKLQly ZXR1cm4gMDsKLX0KLQogc3RhdGljIGlubGluZSB2b2lkIHRpbWVuc19jb21taXQoc3RydWN0IHRh c2tfc3RydWN0ICp0c2ssCiAJCQkJIHN0cnVjdCB0aW1lX25hbWVzcGFjZSAqbnMpCiB7CmRpZmYg LS1naXQgYS9rZXJuZWwvdGltZS9NYWtlZmlsZSBiL2tlcm5lbC90aW1lL01ha2VmaWxlCmluZGV4 IGZlMGFlODIxMjRmZS4uNDk0YmQ0ZTQxNzgxIDEwMDY0NAotLS0gYS9rZXJuZWwvdGltZS9NYWtl ZmlsZQorKysgYi9rZXJuZWwvdGltZS9NYWtlZmlsZQpAQCAtMjMsNiArMjMsNiBAQCBlbmRpZgog b2JqLSQoQ09ORklHX0hBVkVfR0VORVJJQ19WRFNPKQkJCSs9IHZzeXNjYWxsLm8KIG9iai0kKENP TkZJR19ERUJVR19GUykJCQkJKz0gdGltZWtlZXBpbmdfZGVidWcubwogb2JqLSQoQ09ORklHX1RF U1RfVURFTEFZKQkJCSs9IHRlc3RfdWRlbGF5Lm8KLW9iai0kKENPTkZJR19USU1FX05TKQkJCQkr PSBuYW1lc3BhY2Uubworb2JqLSQoQ09ORklHX1RJTUVfTlMpCQkJCSs9IG5hbWVzcGFjZS5vIG5h bWVzcGFjZV92ZHNvLm8KIG9iai0kKENPTkZJR19URVNUX0NMT0NLU09VUkNFX1dBVENIRE9HKQkJ Kz0gY2xvY2tzb3VyY2Utd2R0ZXN0Lm8KIG9iai0kKENPTkZJR19USU1FX0tVTklUX1RFU1QpCQkJ Kz0gdGltZV90ZXN0Lm8KZGlmZiAtLWdpdCBhL2tlcm5lbC90aW1lL25hbWVzcGFjZS5jIGIva2Vy bmVsL3RpbWUvbmFtZXNwYWNlLmMKaW5kZXggZTM2NDIyNzhkZjQzLi5jODJkYzlhNWQxZGUgMTAw NjQ0Ci0tLSBhL2tlcm5lbC90aW1lL25hbWVzcGFjZS5jCisrKyBiL2tlcm5lbC90aW1lL25hbWVz cGFjZS5jCkBAIC0xOCw3ICsxOCw3IEBACiAjaW5jbHVkZSA8bGludXgvZXJyLmg+CiAjaW5jbHVk ZSA8bGludXgvbW0uaD4KIAotI2luY2x1ZGUgPHZkc28vZGF0YXBhZ2UuaD4KKyNpbmNsdWRlICJu YW1lc3BhY2VfaW50ZXJuYWwuaCIKIAoga3RpbWVfdCBkb190aW1lbnNfa3RpbWVfdG9faG9zdChj bG9ja2lkX3QgY2xvY2tpZCwga3RpbWVfdCB0aW0sCiAJCQkJc3RydWN0IHRpbWVuc19vZmZzZXRz ICpuc19vZmZzZXRzKQpAQCAtMTM5LDExMiArMTM5LDcgQEAgc3RydWN0IHRpbWVfbmFtZXNwYWNl ICpjb3B5X3RpbWVfbnModW5zaWduZWQgbG9uZyBmbGFncywKIAlyZXR1cm4gY2xvbmVfdGltZV9u cyh1c2VyX25zLCBvbGRfbnMpOwogfQogCi1zdGF0aWMgc3RydWN0IHRpbWVuc19vZmZzZXQgb2Zm c2V0X2Zyb21fdHMoc3RydWN0IHRpbWVzcGVjNjQgb2ZmKQotewotCXN0cnVjdCB0aW1lbnNfb2Zm c2V0IHJldDsKLQotCXJldC5zZWMgPSBvZmYudHZfc2VjOwotCXJldC5uc2VjID0gb2ZmLnR2X25z ZWM7Ci0KLQlyZXR1cm4gcmV0OwotfQotCi0vKgotICogQSB0aW1lIG5hbWVzcGFjZSBWVkFSIHBh Z2UgaGFzIHRoZSBzYW1lIGxheW91dCBhcyB0aGUgVlZBUiBwYWdlIHdoaWNoCi0gKiBjb250YWlu cyB0aGUgc3lzdGVtIHdpZGUgVkRTTyBkYXRhLgotICoKLSAqIEZvciBhIG5vcm1hbCB0YXNrIHRo ZSBWVkFSIHBhZ2VzIGFyZSBpbnN0YWxsZWQgaW4gdGhlIG5vcm1hbCBvcmRlcmluZzoKLSAqICAg ICBWVkFSCi0gKiAgICAgUFZDTE9DSwotICogICAgIEhWQ0xPQ0sKLSAqICAgICBUSU1FTlMgICA8 LSBOb3QgcmVhbGx5IHJlcXVpcmVkCi0gKgotICogTm93IGZvciBhIHRpbWVucyB0YXNrIHRoZSBw YWdlcyBhcmUgaW5zdGFsbGVkIGluIHRoZSBmb2xsb3dpbmcgb3JkZXI6Ci0gKiAgICAgVElNRU5T Ci0gKiAgICAgUFZDTE9DSwotICogICAgIEhWQ0xPQ0sKLSAqICAgICBWVkFSCi0gKgotICogVGhl IGNoZWNrIGZvciB2ZHNvX2Nsb2NrLT5jbG9ja19tb2RlIGlzIGluIHRoZSB1bmxpa2VseSBwYXRo IG9mCi0gKiB0aGUgc2VxIGJlZ2luIG1hZ2ljLiBTbyBmb3IgdGhlIG5vbi10aW1lbnMgY2FzZSBt b3N0IG9mIHRoZSB0aW1lCi0gKiAnc2VxJyBpcyBldmVuLCBzbyB0aGUgYnJhbmNoIGlzIG5vdCB0 YWtlbi4KLSAqCi0gKiBJZiAnc2VxJyBpcyBvZGQsIGkuZS4gYSBjb25jdXJyZW50IHVwZGF0ZSBp cyBpbiBwcm9ncmVzcywgdGhlIGV4dHJhIGNoZWNrCi0gKiBmb3IgdmRzb19jbG9jay0+Y2xvY2tf bW9kZSBpcyBhIG5vbi1pc3N1ZS4gVGhlIHRhc2sgaXMgc3BpbiB3YWl0aW5nIGZvciB0aGUKLSAq IHVwZGF0ZSB0byBmaW5pc2ggYW5kIGZvciAnc2VxJyB0byBiZWNvbWUgZXZlbiBhbnl3YXkuCi0g KgotICogVGltZW5zIHBhZ2UgaGFzIHZkc29fY2xvY2stPmNsb2NrX21vZGUgc2V0IHRvIFZEU09f Q0xPQ0tNT0RFX1RJTUVOUyB3aGljaAotICogZW5mb3JjZXMgdGhlIHRpbWUgbmFtZXNwYWNlIGhh bmRsaW5nIHBhdGguCi0gKi8KLXN0YXRpYyB2b2lkIHRpbWVuc19zZXR1cF92ZHNvX2Nsb2NrX2Rh dGEoc3RydWN0IHZkc29fY2xvY2sgKnZjLAotCQkJCQkgc3RydWN0IHRpbWVfbmFtZXNwYWNlICpu cykKLXsKLQlzdHJ1Y3QgdGltZW5zX29mZnNldCAqb2Zmc2V0ID0gdmMtPm9mZnNldDsKLQlzdHJ1 Y3QgdGltZW5zX29mZnNldCBtb25vdG9uaWMgPSBvZmZzZXRfZnJvbV90cyhucy0+b2Zmc2V0cy5t b25vdG9uaWMpOwotCXN0cnVjdCB0aW1lbnNfb2Zmc2V0IGJvb3R0aW1lID0gb2Zmc2V0X2Zyb21f dHMobnMtPm9mZnNldHMuYm9vdHRpbWUpOwotCi0JdmMtPnNlcQkJCQk9IDE7Ci0JdmMtPmNsb2Nr X21vZGUJCQk9IFZEU09fQ0xPQ0tNT0RFX1RJTUVOUzsKLQlvZmZzZXRbQ0xPQ0tfTU9OT1RPTklD XQkJPSBtb25vdG9uaWM7Ci0Jb2Zmc2V0W0NMT0NLX01PTk9UT05JQ19SQVddCT0gbW9ub3Rvbmlj OwotCW9mZnNldFtDTE9DS19NT05PVE9OSUNfQ09BUlNFXQk9IG1vbm90b25pYzsKLQlvZmZzZXRb Q0xPQ0tfQk9PVFRJTUVdCQk9IGJvb3R0aW1lOwotCW9mZnNldFtDTE9DS19CT09UVElNRV9BTEFS TV0JPSBib290dGltZTsKLX0KLQotc3RydWN0IHBhZ2UgKmZpbmRfdGltZW5zX3Z2YXJfcGFnZShz dHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKLXsKLQlpZiAobGlrZWx5KHZtYS0+dm1fbW0gPT0g Y3VycmVudC0+bW0pKQotCQlyZXR1cm4gY3VycmVudC0+bnNwcm94eS0+dGltZV9ucy0+dnZhcl9w YWdlOwotCi0JLyoKLQkgKiBWTV9QRk5NQVAgfCBWTV9JTyBwcm90ZWN0IC5mYXVsdCgpIGhhbmRs ZXIgZnJvbSBiZWluZyBjYWxsZWQKLQkgKiB0aHJvdWdoIGludGVyZmFjZXMgbGlrZSAvcHJvYy8k cGlkL21lbSBvcgotCSAqIHByb2Nlc3Nfdm1fe3JlYWR2LHdyaXRldn0oKSBhcyBsb25nIGFzIHRo ZXJlJ3Mgbm8gLmFjY2VzcygpCi0JICogaW4gc3BlY2lhbF9tYXBwaW5nX3Ztb3BzKCkuCi0JICog Rm9yIG1vcmUgZGV0YWlscyBjaGVja192bWFfZmxhZ3MoKSBhbmQgX19hY2Nlc3NfcmVtb3RlX3Zt KCkKLQkgKi8KLQotCVdBUk4oMSwgInZ2YXJfcGFnZSBhY2Nlc3NlZCByZW1vdGVseSIpOwotCi0J cmV0dXJuIE5VTEw7Ci19Ci0KLS8qCi0gKiBQcm90ZWN0cyBwb3NzaWJseSBtdWx0aXBsZSBvZmZz ZXRzIHdyaXRlcnMgcmFjaW5nIGVhY2ggb3RoZXIKLSAqIGFuZCB0YXNrcyBlbnRlcmluZyB0aGUg bmFtZXNwYWNlLgotICovCi1zdGF0aWMgREVGSU5FX01VVEVYKG9mZnNldF9sb2NrKTsKLQotc3Rh dGljIHZvaWQgdGltZW5zX3NldF92dmFyX3BhZ2Uoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLAot CQkJCXN0cnVjdCB0aW1lX25hbWVzcGFjZSAqbnMpCi17Ci0Jc3RydWN0IHZkc29fdGltZV9kYXRh ICp2ZGF0YTsKLQlzdHJ1Y3QgdmRzb19jbG9jayAqdmM7Ci0JdW5zaWduZWQgaW50IGk7Ci0KLQlp ZiAobnMgPT0gJmluaXRfdGltZV9ucykKLQkJcmV0dXJuOwotCi0JLyogRmFzdC1wYXRoLCB0YWtl biBieSBldmVyeSB0YXNrIGluIG5hbWVzcGFjZSBleGNlcHQgdGhlIGZpcnN0LiAqLwotCWlmIChs aWtlbHkobnMtPmZyb3plbl9vZmZzZXRzKSkKLQkJcmV0dXJuOwotCi0JbXV0ZXhfbG9jaygmb2Zm c2V0X2xvY2spOwotCS8qIE5vdGhpbmcgdG8tZG86IHZ2YXJfcGFnZSBoYXMgYmVlbiBhbHJlYWR5 IGluaXRpYWxpemVkLiAqLwotCWlmIChucy0+ZnJvemVuX29mZnNldHMpCi0JCWdvdG8gb3V0Owot Ci0JbnMtPmZyb3plbl9vZmZzZXRzID0gdHJ1ZTsKLQl2ZGF0YSA9IHBhZ2VfYWRkcmVzcyhucy0+ dnZhcl9wYWdlKTsKLQl2YyA9IHZkYXRhLT5jbG9ja19kYXRhOwotCi0JZm9yIChpID0gMDsgaSA8 IENTX0JBU0VTOyBpKyspCi0JCXRpbWVuc19zZXR1cF92ZHNvX2Nsb2NrX2RhdGEoJnZjW2ldLCBu cyk7Ci0KLW91dDoKLQltdXRleF91bmxvY2soJm9mZnNldF9sb2NrKTsKLX0KK0RFRklORV9NVVRF WCh0aW1lbnNfb2Zmc2V0X2xvY2spOwogCiB2b2lkIGZyZWVfdGltZV9ucyhzdHJ1Y3QgdGltZV9u YW1lc3BhY2UgKm5zKQogewpAQCAtMjk3LDEyICsxOTIsNiBAQCBzdGF0aWMgdm9pZCB0aW1lbnNf cHV0KHN0cnVjdCBuc19jb21tb24gKm5zKQogCXB1dF90aW1lX25zKHRvX3RpbWVfbnMobnMpKTsK IH0KIAotdm9pZCB0aW1lbnNfY29tbWl0KHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3Qg dGltZV9uYW1lc3BhY2UgKm5zKQotewotCXRpbWVuc19zZXRfdnZhcl9wYWdlKHRzaywgbnMpOwot CXZkc29fam9pbl90aW1lbnModHNrLCBucyk7Ci19Ci0KIHN0YXRpYyBpbnQgdGltZW5zX2luc3Rh bGwoc3RydWN0IG5zc2V0ICpuc3NldCwgc3RydWN0IG5zX2NvbW1vbiAqbmV3KQogewogCXN0cnVj dCBuc3Byb3h5ICpuc3Byb3h5ID0gbnNzZXQtPm5zcHJveHk7CkBAIC00MjcsNyArMzE2LDcgQEAg aW50IHByb2NfdGltZW5zX3NldF9vZmZzZXQoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCB0YXNr X3N0cnVjdCAqcCwKIAkJCWdvdG8gb3V0OwogCX0KIAotCW11dGV4X2xvY2soJm9mZnNldF9sb2Nr KTsKKwltdXRleF9sb2NrKCZ0aW1lbnNfb2Zmc2V0X2xvY2spOwogCWlmICh0aW1lX25zLT5mcm96 ZW5fb2Zmc2V0cykgewogCQllcnIgPSAtRUFDQ0VTOwogCQlnb3RvIG91dF91bmxvY2s7CkBAIC00 NTIsNyArMzQxLDcgQEAgaW50IHByb2NfdGltZW5zX3NldF9vZmZzZXQoc3RydWN0IGZpbGUgKmZp bGUsIHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwKIAl9CiAKIG91dF91bmxvY2s6Ci0JbXV0ZXhfdW5s b2NrKCZvZmZzZXRfbG9jayk7CisJbXV0ZXhfdW5sb2NrKCZ0aW1lbnNfb2Zmc2V0X2xvY2spOwog b3V0OgogCXB1dF90aW1lX25zKHRpbWVfbnMpOwogCmRpZmYgLS1naXQgYS9rZXJuZWwvdGltZS9u YW1lc3BhY2VfaW50ZXJuYWwuaCBiL2tlcm5lbC90aW1lL25hbWVzcGFjZV9pbnRlcm5hbC5oCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZTg1ZGExMWFiYjRkCi0tLSAv ZGV2L251bGwKKysrIGIva2VybmVsL3RpbWUvbmFtZXNwYWNlX2ludGVybmFsLmgKQEAgLTAsMCAr MSwxMyBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KKyNpZm5kZWYg X1RJTUVfTkFNRVNQQUNFX0lOVEVSTkFMX0gKKyNkZWZpbmUgX1RJTUVfTkFNRVNQQUNFX0lOVEVS TkFMX0gKKworI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CisKKy8qCisgKiBQcm90ZWN0cyBwb3Nz aWJseSBtdWx0aXBsZSBvZmZzZXRzIHdyaXRlcnMgcmFjaW5nIGVhY2ggb3RoZXIKKyAqIGFuZCB0 YXNrcyBlbnRlcmluZyB0aGUgbmFtZXNwYWNlLgorICovCitleHRlcm4gc3RydWN0IG11dGV4IHRp bWVuc19vZmZzZXRfbG9jazsKKworI2VuZGlmIC8qIF9USU1FX05BTUVTUEFDRV9JTlRFUk5BTF9I ICovCmRpZmYgLS1naXQgYS9rZXJuZWwvdGltZS9uYW1lc3BhY2VfdmRzby5jIGIva2VybmVsL3Rp bWUvbmFtZXNwYWNlX3Zkc28uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLjU1OGJmNTIwODU4OAotLS0gL2Rldi9udWxsCisrKyBiL2tlcm5lbC90aW1lL25hbWVzcGFj ZV92ZHNvLmMKQEAgLTAsMCArMSwxNDEgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBH UEwtMi4wCisvKgorICogQXV0aG9yOiBBbmRyZWkgVmFnaW4gPGF2YWdpbkBvcGVudnoub3JnPgor ICogQXV0aG9yOiBEbWl0cnkgU2Fmb25vdiA8ZGltYUBhcmlzdGEuY29tPgorICovCisKKyNpbmNs dWRlIDxsaW51eC9jbGVhbnVwLmg+CisjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxs aW51eC90aW1lX25hbWVzcGFjZS5oPgorI2luY2x1ZGUgPGxpbnV4L3RpbWUuaD4KKyNpbmNsdWRl IDxsaW51eC92ZHNvX2RhdGFzdG9yZS5oPgorCisjaW5jbHVkZSA8dmRzby9jbG9ja3NvdXJjZS5o PgorI2luY2x1ZGUgPHZkc28vZGF0YXBhZ2UuaD4KKworI2luY2x1ZGUgIm5hbWVzcGFjZV9pbnRl cm5hbC5oIgorCitzdGF0aWMgc3RydWN0IHRpbWVuc19vZmZzZXQgb2Zmc2V0X2Zyb21fdHMoc3Ry dWN0IHRpbWVzcGVjNjQgb2ZmKQoreworCXN0cnVjdCB0aW1lbnNfb2Zmc2V0IHJldDsKKworCXJl dC5zZWMgPSBvZmYudHZfc2VjOworCXJldC5uc2VjID0gb2ZmLnR2X25zZWM7CisKKwlyZXR1cm4g cmV0OworfQorCisvKgorICogQSB0aW1lIG5hbWVzcGFjZSBWVkFSIHBhZ2UgaGFzIHRoZSBzYW1l IGxheW91dCBhcyB0aGUgVlZBUiBwYWdlIHdoaWNoCisgKiBjb250YWlucyB0aGUgc3lzdGVtIHdp ZGUgVkRTTyBkYXRhLgorICoKKyAqIEZvciBhIG5vcm1hbCB0YXNrIHRoZSBWVkFSIHBhZ2VzIGFy ZSBpbnN0YWxsZWQgaW4gdGhlIG5vcm1hbCBvcmRlcmluZzoKKyAqICAgICBWVkFSCisgKiAgICAg UFZDTE9DSworICogICAgIEhWQ0xPQ0sKKyAqICAgICBUSU1FTlMgICA8LSBOb3QgcmVhbGx5IHJl cXVpcmVkCisgKgorICogTm93IGZvciBhIHRpbWVucyB0YXNrIHRoZSBwYWdlcyBhcmUgaW5zdGFs bGVkIGluIHRoZSBmb2xsb3dpbmcgb3JkZXI6CisgKiAgICAgVElNRU5TCisgKiAgICAgUFZDTE9D SworICogICAgIEhWQ0xPQ0sKKyAqICAgICBWVkFSCisgKgorICogVGhlIGNoZWNrIGZvciB2ZHNv X2Nsb2NrLT5jbG9ja19tb2RlIGlzIGluIHRoZSB1bmxpa2VseSBwYXRoIG9mCisgKiB0aGUgc2Vx IGJlZ2luIG1hZ2ljLiBTbyBmb3IgdGhlIG5vbi10aW1lbnMgY2FzZSBtb3N0IG9mIHRoZSB0aW1l CisgKiAnc2VxJyBpcyBldmVuLCBzbyB0aGUgYnJhbmNoIGlzIG5vdCB0YWtlbi4KKyAqCisgKiBJ ZiAnc2VxJyBpcyBvZGQsIGkuZS4gYSBjb25jdXJyZW50IHVwZGF0ZSBpcyBpbiBwcm9ncmVzcywg dGhlIGV4dHJhIGNoZWNrCisgKiBmb3IgdmRzb19jbG9jay0+Y2xvY2tfbW9kZSBpcyBhIG5vbi1p c3N1ZS4gVGhlIHRhc2sgaXMgc3BpbiB3YWl0aW5nIGZvciB0aGUKKyAqIHVwZGF0ZSB0byBmaW5p c2ggYW5kIGZvciAnc2VxJyB0byBiZWNvbWUgZXZlbiBhbnl3YXkuCisgKgorICogVGltZW5zIHBh Z2UgaGFzIHZkc29fY2xvY2stPmNsb2NrX21vZGUgc2V0IHRvIFZEU09fQ0xPQ0tNT0RFX1RJTUVO UyB3aGljaAorICogZW5mb3JjZXMgdGhlIHRpbWUgbmFtZXNwYWNlIGhhbmRsaW5nIHBhdGguCisg Ki8KK3N0YXRpYyB2b2lkIHRpbWVuc19zZXR1cF92ZHNvX2Nsb2NrX2RhdGEoc3RydWN0IHZkc29f Y2xvY2sgKnZjLAorCQkJCQkgc3RydWN0IHRpbWVfbmFtZXNwYWNlICpucykKK3sKKwlzdHJ1Y3Qg dGltZW5zX29mZnNldCAqb2Zmc2V0ID0gdmMtPm9mZnNldDsKKwlzdHJ1Y3QgdGltZW5zX29mZnNl dCBtb25vdG9uaWMgPSBvZmZzZXRfZnJvbV90cyhucy0+b2Zmc2V0cy5tb25vdG9uaWMpOworCXN0 cnVjdCB0aW1lbnNfb2Zmc2V0IGJvb3R0aW1lID0gb2Zmc2V0X2Zyb21fdHMobnMtPm9mZnNldHMu Ym9vdHRpbWUpOworCisJdmMtPnNlcQkJCQk9IDE7CisJdmMtPmNsb2NrX21vZGUJCQk9IFZEU09f Q0xPQ0tNT0RFX1RJTUVOUzsKKwlvZmZzZXRbQ0xPQ0tfTU9OT1RPTklDXQkJPSBtb25vdG9uaWM7 CisJb2Zmc2V0W0NMT0NLX01PTk9UT05JQ19SQVddCT0gbW9ub3RvbmljOworCW9mZnNldFtDTE9D S19NT05PVE9OSUNfQ09BUlNFXQk9IG1vbm90b25pYzsKKwlvZmZzZXRbQ0xPQ0tfQk9PVFRJTUVd CQk9IGJvb3R0aW1lOworCW9mZnNldFtDTE9DS19CT09UVElNRV9BTEFSTV0JPSBib290dGltZTsK K30KKworc3RydWN0IHBhZ2UgKmZpbmRfdGltZW5zX3Z2YXJfcGFnZShzdHJ1Y3Qgdm1fYXJlYV9z dHJ1Y3QgKnZtYSkKK3sKKwlpZiAobGlrZWx5KHZtYS0+dm1fbW0gPT0gY3VycmVudC0+bW0pKQor CQlyZXR1cm4gY3VycmVudC0+bnNwcm94eS0+dGltZV9ucy0+dnZhcl9wYWdlOworCisJLyoKKwkg KiBWTV9QRk5NQVAgfCBWTV9JTyBwcm90ZWN0IC5mYXVsdCgpIGhhbmRsZXIgZnJvbSBiZWluZyBj YWxsZWQKKwkgKiB0aHJvdWdoIGludGVyZmFjZXMgbGlrZSAvcHJvYy8kcGlkL21lbSBvcgorCSAq IHByb2Nlc3Nfdm1fe3JlYWR2LHdyaXRldn0oKSBhcyBsb25nIGFzIHRoZXJlJ3Mgbm8gLmFjY2Vz cygpCisJICogaW4gc3BlY2lhbF9tYXBwaW5nX3Ztb3BzKCkuCisJICogRm9yIG1vcmUgZGV0YWls cyBjaGVja192bWFfZmxhZ3MoKSBhbmQgX19hY2Nlc3NfcmVtb3RlX3ZtKCkKKwkgKi8KKworCVdB Uk4oMSwgInZ2YXJfcGFnZSBhY2Nlc3NlZCByZW1vdGVseSIpOworCisJcmV0dXJuIE5VTEw7Cit9 CisKK3N0YXRpYyB2b2lkIHRpbWVuc19zZXRfdnZhcl9wYWdlKHN0cnVjdCB0YXNrX3N0cnVjdCAq dGFzaywKKwkJCQlzdHJ1Y3QgdGltZV9uYW1lc3BhY2UgKm5zKQoreworCXN0cnVjdCB2ZHNvX3Rp bWVfZGF0YSAqdmRhdGE7CisJc3RydWN0IHZkc29fY2xvY2sgKnZjOworCXVuc2lnbmVkIGludCBp OworCisJaWYgKG5zID09ICZpbml0X3RpbWVfbnMpCisJCXJldHVybjsKKworCS8qIEZhc3QtcGF0 aCwgdGFrZW4gYnkgZXZlcnkgdGFzayBpbiBuYW1lc3BhY2UgZXhjZXB0IHRoZSBmaXJzdC4gKi8K KwlpZiAobGlrZWx5KG5zLT5mcm96ZW5fb2Zmc2V0cykpCisJCXJldHVybjsKKworCWd1YXJkKG11 dGV4KSgmdGltZW5zX29mZnNldF9sb2NrKTsKKwkvKiBOb3RoaW5nIHRvLWRvOiB2dmFyX3BhZ2Ug aGFzIGJlZW4gYWxyZWFkeSBpbml0aWFsaXplZC4gKi8KKwlpZiAobnMtPmZyb3plbl9vZmZzZXRz KQorCQlyZXR1cm47CisKKwlucy0+ZnJvemVuX29mZnNldHMgPSB0cnVlOworCXZkYXRhID0gcGFn ZV9hZGRyZXNzKG5zLT52dmFyX3BhZ2UpOworCXZjID0gdmRhdGEtPmNsb2NrX2RhdGE7CisKKwlm b3IgKGkgPSAwOyBpIDwgQ1NfQkFTRVM7IGkrKykKKwkJdGltZW5zX3NldHVwX3Zkc29fY2xvY2tf ZGF0YSgmdmNbaV0sIG5zKTsKK30KKworLyoKKyAqIFRoZSB2dmFyIHBhZ2UgbGF5b3V0IGRlcGVu ZHMgb24gd2hldGhlciBhIHRhc2sgYmVsb25ncyB0byB0aGUgcm9vdCBvcgorICogbm9uLXJvb3Qg dGltZSBuYW1lc3BhY2UuIFdoZW5ldmVyIGEgdGFzayBjaGFuZ2VzIGl0cyBuYW1lc3BhY2UsIHRo ZSBWVkFSCisgKiBwYWdlIHRhYmxlcyBhcmUgY2xlYXJlZCBhbmQgdGhlbiB0aGV5IHdpbGwgYmUg cmUtZmF1bHRlZCB3aXRoIGEKKyAqIGNvcnJlc3BvbmRpbmcgbGF5b3V0LgorICogU2VlIGFsc28g dGhlIGNvbW1lbnQgbmVhciB0aW1lbnNfc2V0dXBfdmRzb19jbG9ja19kYXRhKCkgZm9yIGRldGFp bHMuCisgKi8KK3N0YXRpYyBpbnQgdmRzb19qb2luX3RpbWVucyhzdHJ1Y3QgdGFza19zdHJ1Y3Qg KnRhc2ssIHN0cnVjdCB0aW1lX25hbWVzcGFjZSAqbnMpCit7CisJc3RydWN0IG1tX3N0cnVjdCAq bW0gPSB0YXNrLT5tbTsKKwlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYTsKKwlWTUFfSVRFUkFU T1Iodm1pLCBtbSwgMCk7CisKKwlndWFyZChtbWFwX3JlYWRfbG9jaykobW0pOworCWZvcl9lYWNo X3ZtYSh2bWksIHZtYSkgeworCQlpZiAodm1hX2lzX3NwZWNpYWxfbWFwcGluZyh2bWEsICZ2ZHNv X3Z2YXJfbWFwcGluZykpCisJCQl6YXBfdm1hX3BhZ2VzKHZtYSk7CisJfQorCXJldHVybiAwOwor fQorCit2b2lkIHRpbWVuc19jb21taXQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHN0cnVjdCB0 aW1lX25hbWVzcGFjZSAqbnMpCit7CisJdGltZW5zX3NldF92dmFyX3BhZ2UodHNrLCBucyk7CisJ dmRzb19qb2luX3RpbWVucyh0c2ssIG5zKTsKK30KZGlmZiAtLWdpdCBhL2xpYi92ZHNvL2RhdGFz dG9yZS5jIGIvbGliL3Zkc28vZGF0YXN0b3JlLmMKaW5kZXggNDYxOTJjMWQ4NTQyLi43NzEzZmQz OTJkZDAgMTAwNjQ0Ci0tLSBhL2xpYi92ZHNvL2RhdGFzdG9yZS5jCisrKyBiL2xpYi92ZHNvL2Rh dGFzdG9yZS5jCkBAIC0xMDIsMjggKzEwMiwzIEBAIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdmRz b19pbnN0YWxsX3Z2YXJfbWFwcGluZyhzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQKIAkJ CQkJVk1fUkVBRCB8IFZNX01BWVJFQUQgfCBWTV9JTyB8IFZNX0RPTlREVU1QIHwgVk1fUEZOTUFQ LAogCQkJCQkmdmRzb192dmFyX21hcHBpbmcpOwogfQotCi0jaWZkZWYgQ09ORklHX1RJTUVfTlMK LS8qCi0gKiBUaGUgdnZhciBwYWdlIGxheW91dCBkZXBlbmRzIG9uIHdoZXRoZXIgYSB0YXNrIGJl bG9uZ3MgdG8gdGhlIHJvb3Qgb3IKLSAqIG5vbi1yb290IHRpbWUgbmFtZXNwYWNlLiBXaGVuZXZl ciBhIHRhc2sgY2hhbmdlcyBpdHMgbmFtZXNwYWNlLCB0aGUgVlZBUgotICogcGFnZSB0YWJsZXMg YXJlIGNsZWFyZWQgYW5kIHRoZW4gdGhleSB3aWxsIGJlIHJlLWZhdWx0ZWQgd2l0aCBhCi0gKiBj b3JyZXNwb25kaW5nIGxheW91dC4KLSAqIFNlZSBhbHNvIHRoZSBjb21tZW50IG5lYXIgdGltZW5z X3NldHVwX3Zkc29fY2xvY2tfZGF0YSgpIGZvciBkZXRhaWxzLgotICovCi1pbnQgdmRzb19qb2lu X3RpbWVucyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIHN0cnVjdCB0aW1lX25hbWVzcGFjZSAq bnMpCi17Ci0Jc3RydWN0IG1tX3N0cnVjdCAqbW0gPSB0YXNrLT5tbTsKLQlzdHJ1Y3Qgdm1fYXJl YV9zdHJ1Y3QgKnZtYTsKLQlWTUFfSVRFUkFUT1Iodm1pLCBtbSwgMCk7Ci0KLQltbWFwX3JlYWRf bG9jayhtbSk7Ci0JZm9yX2VhY2hfdm1hKHZtaSwgdm1hKSB7Ci0JCWlmICh2bWFfaXNfc3BlY2lh bF9tYXBwaW5nKHZtYSwgJnZkc29fdnZhcl9tYXBwaW5nKSkKLQkJCXphcF92bWFfcGFnZXModm1h KTsKLQl9Ci0JbW1hcF9yZWFkX3VubG9jayhtbSk7Ci0KLQlyZXR1cm4gMDsKLX0KLSNlbmRpZgot LSAKMi41Ni4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpEZXZlbCBtYWlsaW5nIGxpc3QKRGV2ZWxAb3BlbnZ6Lm9yZwpodHRwczovL2xpc3RzLm9wZW52 ei5vcmcvbWFpbG1hbi9saXN0aW5mby9kZXZlbAo=