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=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 75875C4361B for ; Mon, 14 Dec 2020 20:33:07 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 136BE2226A for ; Mon, 14 Dec 2020 20:33:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2503289AbgLNU1G (ORCPT ); Mon, 14 Dec 2020 15:27:06 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44562 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2503213AbgLNU0W (ORCPT ); Mon, 14 Dec 2020 15:26:22 -0500 Received: from galois.linutronix.de (Galois.linutronix.de [IPv6:2a0a:51c0:0:12e:550::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D5BB3C0617A7 for ; Mon, 14 Dec 2020 12:25:33 -0800 (PST) Date: Mon, 14 Dec 2020 20:22:19 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1607977532; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: references:references; bh=j5cZ0C7z+xtJCS/KZqjFW66+/2DFF3NI9aL6vLm5UrE=; b=ITxE0oLLOaTYWTwBamwc6dnOUh6HqqDMlyO38PZtduTcjuZMC1qaxh/miFq8GfIJ7IgPsK lsRwDRs4pTGSCNXnHlIoaIZR0mdgiBd22SCYWgCRCMpw9rhPvRoz0NaTWYXcp2ribIWOAG 7TBAVtK5t+bWlKRRsvSfSJqH4z9uicokbY7J50zCDPaZShFXMEaU6zpfxHurFXTtzpzoJE 20gEoJQTal9LYQKtcEehSuUDSs76Rg2HYdiuSAZjsyE0PGsLGy73LM+zXe1bLW2MTf+kk8 ulwcYW3g6mnV3EFQalD6BJs+YxBgOSdmVXAE7uM1OYZyUBuh9s+wVy+NgojNvA== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1607977532; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: references:references; bh=j5cZ0C7z+xtJCS/KZqjFW66+/2DFF3NI9aL6vLm5UrE=; b=EET8wp/NGmbAamK1iB7DiHMHdkd1wcIktKU4dRUNlqtBspWDaCpCDky1ShZhmys/Qj8p5g Ns4kzqyHRYcOjnBA== From: Thomas Gleixner To: Linus Torvalds Cc: linux-kernel@vger.kernel.org, x86@kernel.org Subject: [GIT pull] timers/core for v5.11-rc1 References: <160797732939.10793.9152151866806316627.tglx@nanos> Message-ID: <160797733911.10793.4629796194957263398.tglx@nanos> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org TGludXMsCgpwbGVhc2UgcHVsbCB0aGUgbGF0ZXN0IHRpbWVycy9jb3JlIGJyYW5jaCBmcm9tOgoK ICAgZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L3RpcC90aXAu Z2l0IHRpbWVycy1jb3JlLTIwMjAtMTItMTQKCnVwIHRvOiAgM2NhYmNhODdiMzI5OiBudHA6IEZp eCBwcm90b3R5cGUgaW4gdGhlICFDT05GSUdfR0VORVJJQ19DTU9TX1VQREFURSBjYXNlCgoKdGlt ZXJzIGFuZCB0aW1la2VlcGluZyB1cGRhdGVzOgoKIENvcmU6CgogIC0gUm9idXN0bmVzcyBpbXBy b3ZlbWVudHMgZm9yIHRoZSBOT0haIHRpY2sgbWFuYWdlbWVudAoKICAtIEZpeGVzIGFuZCBjb25z b2xpZGF0aW9uIG9mIHRoZSBOVFAvUlRDIHN5bmNocm9uaXphdGlvbiBjb2RlCgogIC0gU21hbGwg Zml4ZXMgYW5kIGltcHJvdmVtZW50cyBpbiB2YXJpb3VzIHBsYWNlcwoKICAtIEEgc2V0IG9mIGZ1 bmN0aW9uIGRvY3VtZW50YXRpb24gdWRwYXRlcyBhbmQgZml4ZXMKCiBEcml2ZXJzOgoKICAtIENs ZWFudXBzIGFuZCBpbXByb3ZlbWVudHMgaW4gdmFyaW91cyBjbG9ja3NvdXJlL2V2ZW50IGRyaXZl cnMKCiAgLSBSZW1vdmFsIG9mIHRoZSBFWkNoaXAgTlBTIGNsb2Nrc291cmNlIGRyaXZlciBhcyB0 aGUgcGxhdGZyb20gc3VwcG9ydAogICAgd2FzIHJlbW92ZWQgZnJvbSBBUkMKCiAgLSBUaGUgdXN1 YWwgc2V0IG9mIG5ldyBkZXZpY2UgdHJlZSBiaW5kaW5nIGFuZCBqc29uIGNvbnZlcnNpb25zCgog IC0gVGhlIFJUQyBkcml2ZXIgd2hpY2ggaGF2ZSBiZWVuIGFja2VkIGJ5IHRoZSBSVEMgbWFpbnRh aW5lcjoKCiAgICAtIEZpeCBhIGxvbmcgc3RhbmRpbmcgYnVnIGluIHRoZSBNQzE0NjgxOCBsaWJy YXJ5IGNvZGUgd2hpY2ggY2FuIGNhdXNlCiAgICAgIHJlYWRpbmcgZ2FyYmFnZSBkdXJpbmcgdGhl IFJUQyBpbnRlcm5hbCB1cGRhdGUuCgogICAgLSBUaGUgY2hhbmdlcyByZWxhdGVkIHRvIHRoZSBO VFAvUlRDIGNvbnNvbGlkYXRpb24gd29yay4KClRoYW5rcywKCgl0Z2x4CgotLS0tLS0tLS0tLS0t LS0tLS0+CkFsZXggU2hpICg2KToKICAgICAgdGltZTogQWRkIG1pc3NpbmcgY29sb25zIGZvciBw YXJhbWV0ZXIgZG9jdW1lbnRhdGlvbiBvZiB0aW1lNjRfdG9fdG0oKQogICAgICB0aW1la2VlcGlu ZzogUmVtb3ZlIHN0YXRpYyBmdW5jdGlvbnMgZnJvbSBrZXJuZWwtZG9jIG1hcmt1cAogICAgICB0 aW1la2VlcGluZzogQWRkIG1pc3NpbmcgcGFyYW1ldGVyIGRvY3VtZW50YXRpb24gZm9yIHVwZGF0 ZV9mYXN0X3RpbWVrZWVwZXIoKQogICAgICB0aW1la2VlcGluZzogQWRkIG1pc3NpbmcgcGFyYW1l dGVyIGRvY3MgZm9yIHB2Y2xvY2tfZ3RvZF9bdW5dcmVnaXN0ZXJfbm90aWZpZXIoKQogICAgICB0 aW1la2VlcGluZzogRml4IHBhcmFtZXRlciBkb2NzIG9mIHJlYWRfcGVyc2lzdGVudF93YWxsX2Fu ZF9ib290X29mZnNldCgpCiAgICAgIHRpbWVrZWVwaW5nOiBBZGRyZXNzIHBhcmFtZXRlciBkb2N1 bWVudGF0aW9uIGlzc3VlcyBmb3IgdmFyaW91cyBmdW5jdGlvbnMKCkRhbmllbCBMZXpjYW5vICgx KToKICAgICAgY2xvY2tzb3VyY2UvZHJpdmVycy9pbmdlbmljOiBGaXggc2VjdGlvbiBtaXNtYXRj aAoKRGF2aWRsb2hyIEJ1ZXNvICgxKToKICAgICAgdGltZWtlZXBpbmc6IENvbnZlcnQgamlmZmll c19zZXEgdG8gc2VxY291bnRfcmF3X3NwaW5sb2NrX3QKCkRpbmggTmd1eWVuICgxKToKICAgICAg Y2xvY2tzb3VyY2UvZHJpdmVycy9kd19hcGJfdGltZXJfb2Y6IEFkZCBlcnJvciBoYW5kbGluZyBp ZiBubyBjbG9jayBhdmFpbGFibGUKCkdlZXJ0IFV5dHRlcmhvZXZlbiAoMSk6CiAgICAgIGR0LWJp bmRpbmdzOiB0aW1lcjogcmVuZXNhczogdG11OiBDb252ZXJ0IHRvIGpzb24tc2NoZW1hCgpIZWxn ZSBEZWxsZXIgKDEpOgogICAgICB0aW1lcl9saXN0OiBVc2UgcHJpbnRrIGZvcm1hdCBpbnN0ZWFk IG9mIG9wZW4tY29kZWQgc3ltYm9sIGxvb2t1cAoKSW5nbyBNb2xuYXIgKDEpOgogICAgICBudHA6 IEZpeCBwcm90b3R5cGUgaW4gdGhlICFDT05GSUdfR0VORVJJQ19DTU9TX1VQREFURSBjYXNlCgpL ZWZlbmcgV2FuZyAoNSk6CiAgICAgIGNsb2Nrc291cmNlL2RyaXZlcnMvc3A4MDQ6IE1ha2Ugc29t ZSBzeW1ib2wgc3RhdGljCiAgICAgIGNsb2Nrc291cmNlL2RyaXZlcnMvc3A4MDQ6IFVzZSBjbGtf cHJlcGFyZV9lbmFibGUgYW5kIGNsa19kaXNhYmxlX3VucHJlcGFyZQogICAgICBjbG9ja3NvdXJj ZS9kcml2ZXJzL3NwODA0OiBDb3JyZWN0IGNsa19nZXRfcmF0ZSBoYW5kbGUKICAgICAgY2xvY2tz b3VyY2UvZHJpdmVycy9zcDgwNDogVXNlIHByX2ZtdAogICAgICBjbG9ja3NvdXJjZS9kcml2ZXJz L3Jpc2N2OiBNYWtlIFJJU0NWX1RJTUVSIGRlcGVuZHMgb24gUklTQ1ZfU0JJCgpLZXFpYW4gWmh1 ICgyKToKICAgICAgY2xvY2tzb3VyY2UvZHJpdmVycy9hcm1fYXJjaF90aW1lcjogVXNlIHN0YWJs ZSBjb3VudCByZWFkZXIgaW4gZXJyYXR1bSBzbmUKICAgICAgY2xvY2tzb3VyY2UvZHJpdmVycy9h cm1fYXJjaF90aW1lcjogQ29ycmVjdCBmYXVsdCBwcm9ncmFtbWluZyBvZiBDTlRLQ1RMX0VMMS5F Vk5USQoKTWFyaWFuLUNyaXN0aWFuIFJvdGFyaXUgKDEpOgogICAgICBkdC1iaW5kaW5nczogdGlt ZXI6IHJlbmVzYXM6IHRtdTogRG9jdW1lbnQgcjhhNzc0ZTEgYmluZGluZ3MKCk1hdXJvIENhcnZh bGhvIENoZWhhYiAoMSk6CiAgICAgIGhydGltZXI6IEZpeCBrZXJuZWwtZG9jIG1hcmt1cHMKCk5p a2xhcyBTw7ZkZXJsdW5kICgxKToKICAgICAgY2xvY2tzb3VyY2UvZHJpdmVycy9zaF9jbXQ6IEZp eCBwb3RlbnRpYWwgZGVhZGxvY2sgd2hlbiBjYWxsaW5nIHJ1bnRpbWUgUE0KClNlYmFzdGlhbiBB bmRyemVqIFNpZXdpb3IgKDEpOgogICAgICB0aW1lcnM6IERvbid0IGJsb2NrIG9uIC0+ZXhwaXJ5 X2xvY2sgZm9yIFRJTUVSX0lSUVNBRkUgdGltZXJzCgpUaG9tYXMgR2xlaXhuZXIgKDE2KToKICAg ICAgdGltZWtlZXBpbmc6IEZpeCB1cCBmdW5jdGlvbiBkb2N1bWVudGF0aW9uIGZvciB0aGUgTk1J IHNhZmUgYWNjZXNzb3JzCiAgICAgIHRpbWVyczogTWFrZSBydW5fbG9jYWxfdGltZXJzKCkgc3Rh dGljCiAgICAgIHRpY2svYnJvYWRjYXN0OiBTZXJpYWxpemUgYWNjZXNzIHRvIHRpY2tfbmV4dF9w ZXJpb2QKICAgICAgdGljazogRG9jdW1lbnQgcHJvdGVjdGlvbnMgZm9yIHRpY2sgcmVsYXRlZCBk YXRhCiAgICAgIHRpY2svc2NoZWQ6IFVzZSB0aWNrX25leHRfcGVyaW9kIGZvciBsb2NrbGVzcyBx dWljayBjaGVjawogICAgICB0aWNrL3NjaGVkOiBPcHRpbWl6ZSB0aWNrX2RvX3VwZGF0ZV9qaWZm aWVzNjQoKSBmdXJ0aGVyCiAgICAgIHRpY2s6IEdldCByaWQgb2YgdGlja19wZXJpb2QKICAgICAg cnRjOiBtYzE0NjgxODogUHJldmVudCByZWFkaW5nIGdhcmJhZ2UKICAgICAgcnRjOiBtYzE0Njgx ODogUmVkdWNlIHNwaW5sb2NrIHNlY3Rpb24gaW4gbWMxNDY4MThfc2V0X3RpbWUoKQogICAgICBy dGM6IGNtb3M6IE1ha2UgcnRjX2Ntb3Mgc3luYyBvZmZzZXQgY29ycmVjdAogICAgICBydGM6IGNv cmU6IE1ha2UgdGhlIHN5bmMgb2Zmc2V0IGRlZmF1bHQgbW9yZSByZWFsaXN0aWMKICAgICAgbnRw OiBNYWtlIHRoZSBSVEMgc3luY2hyb25pemF0aW9uIG1vcmUgcmVsaWFibGUKICAgICAgbnRwLCBy dGM6IE1vdmUgcnRjX3NldF9udHBfdGltZSgpIHRvIG50cCBjb2RlCiAgICAgIG50cDogTWFrZSB0 aGUgUlRDIHN5bmMgb2Zmc2V0IGxlc3Mgb2JzY3VyZQogICAgICBudHA6IENvbnNvbGlkYXRlIHRo ZSBSVEMgdXBkYXRlIGltcGxlbWVudGF0aW9uCiAgICAgIHRpY2svc2NoZWQ6IE1ha2UgamlmZmll cyB1cGRhdGUgcXVpY2sgY2hlY2sgbW9yZSByb2J1c3QKClZpbmVldCBHdXB0YSAoMSk6CiAgICAg IGNsb2Nrc291cmNlL2RyaXZlcnMvbnBzOiBSZW1vdmUgRVpDaGlwIE5QUyBjbG9ja3NvdXJjZSBk cml2ZXIKCllhbmcgWWluZ2xpYW5nICgxKToKICAgICAgY2xvY2tzb3VyY2UvZHJpdmVycy9vcmlv bjogQWRkIG1pc3NpbmcgY2xrX2Rpc2FibGVfdW5wcmVwYXJlKCkgb24gZXJyb3IgcGF0aAoKWXUg S3VhaSAoMSk6CiAgICAgIGNsb2Nrc291cmNlL2RyaXZlcnMvY2FkZW5jZV90dGM6IEZpeCBtZW1v cnkgbGVhayBpbiB0dGNfc2V0dXBfY2xvY2tldmVudCgpCgpZdW5mZW5nIFllICgyKToKICAgICAg dGljay9zY2hlZDogUmVkdWNlIHNlcWNvdW50IGhlbGQgc2NvcGUgaW4gdGlja19kb191cGRhdGVf amlmZmllczY0KCkKICAgICAgdGljay9zY2hlZDogUmVsZWFzZSBzZXFjb3VudCBiZWZvcmUgaW52 b2tpbmcgY2FsY19sb2FkX2dsb2JhbCgpCgpaaGVuIExlaSAoMSk6CiAgICAgIGNsb2Nrc291cmNl L2RyaXZlcnMvc3A4MDQ6IEFkZCBzdGF0aWMgZm9yIGZ1bmN0aW9ucyBzdWNoIGFzIHNwODA0X2Ns b2NrZXZlbnRzX2luaXQoKQoK5ZGo55Cw5p2wIChaaG91IFlhbmppZSkgKDEpOgogICAgICBkdC1i aW5kaW5nczogdGltZXI6IEFkZCBuZXcgT1NUIHN1cHBvcnQgZm9yIHRoZSB1cGNvbWluZyBuZXcg ZHJpdmVyLgoKCiAuLi4vZGV2aWNldHJlZS9iaW5kaW5ncy90aW1lci9yZW5lc2FzLHRtdS50eHQg ICAgICB8ICA0OSAtLS0tCiAuLi4vZGV2aWNldHJlZS9iaW5kaW5ncy90aW1lci9yZW5lc2FzLHRt dS55YW1sICAgICB8ICA5OSArKysrKysrCiBkcml2ZXJzL2Nsb2Nrc291cmNlL0tjb25maWcgICAg ICAgICAgICAgICAgICAgICAgICB8ICAxMiArLQogZHJpdmVycy9jbG9ja3NvdXJjZS9NYWtlZmls ZSAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgLQogZHJpdmVycy9jbG9ja3NvdXJjZS9hcm1f YXJjaF90aW1lci5jICAgICAgICAgICAgICAgfCAgMjcgKy0KIGRyaXZlcnMvY2xvY2tzb3VyY2Uv ZHdfYXBiX3RpbWVyX29mLmMgICAgICAgICAgICAgIHwgIDU3ICsrKy0tCiBkcml2ZXJzL2Nsb2Nr c291cmNlL2luZ2VuaWMtdGltZXIuYyAgICAgICAgICAgICAgICB8ICAgMiArLQogZHJpdmVycy9j bG9ja3NvdXJjZS9zaF9jbXQuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMTggKy0KIGRyaXZl cnMvY2xvY2tzb3VyY2UvdGltZXItY2FkZW5jZS10dGMuYyAgICAgICAgICAgIHwgIDE4ICstCiBk cml2ZXJzL2Nsb2Nrc291cmNlL3RpbWVyLW5wcy5jICAgICAgICAgICAgICAgICAgICB8IDI4NCAt LS0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvY2xvY2tzb3VyY2UvdGltZXItb3Jpb24uYyAg ICAgICAgICAgICAgICAgIHwgIDExICstCiBkcml2ZXJzL2Nsb2Nrc291cmNlL3RpbWVyLXNwODA0 LmMgICAgICAgICAgICAgICAgICB8ICA0OSArKy0tCiBkcml2ZXJzL3J0Yy9NYWtlZmlsZSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSAtCiBkcml2ZXJzL3J0Yy9jbGFzcy5jICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgOSArLQogZHJpdmVycy9ydGMvcnRjLWNt b3MuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogZHJpdmVycy9ydGMvcnRj LW1jMTQ2ODE4LWxpYi5jICAgICAgICAgICAgICAgICAgICAgfCAgNzAgKystLS0KIGRyaXZlcnMv cnRjL3N5c3RvaGMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYxIC0tLS0tCiBp bmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL2luZ2VuaWMsc3lzb3N0LmggICAgICAgICB8ICAxMCAr LQogaW5jbHVkZS9saW51eC9ocnRpbWVyLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDYgKy0KIGluY2x1ZGUvbGludXgvcnRjLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDY5ICsrKy0tCiBpbmNsdWRlL2xpbnV4L3RpbWVrZWVwaW5nLmggICAgICAgICAgICAgICAg ICAgICAgICB8ICAgMiArCiBpbmNsdWRlL2xpbnV4L3RpbWVyLmggICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgMSAtCiBpbmNsdWRlL2xpbnV4L3RpbWV4LmggICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgMSAtCiBrZXJuZWwvdGltZS9ocnRpbWVyLmMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgMiArLQoga2VybmVsL3RpbWUvamlmZmllcy5jICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIGtlcm5lbC90aW1lL250cC5jICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjI5ICsrKysrKysrKystLS0tLS0tCiBrZXJuZWwv dGltZS9udHBfaW50ZXJuYWwuaCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNyArCiBrZXJu ZWwvdGltZS90aWNrLWJyb2FkY2FzdC5jICAgICAgICAgICAgICAgICAgICAgICB8ICAyNSArLQog a2VybmVsL3RpbWUvdGljay1jb21tb24uYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTIg Ky0KIGtlcm5lbC90aW1lL3RpY2staW50ZXJuYWwuaCAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAxIC0KIGtlcm5lbC90aW1lL3RpY2stc2NoZWQuYyAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgMTIyICsrKysrKy0tLQoga2VybmVsL3RpbWUvdGltZWNvbnYuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDYgKy0KIGtlcm5lbC90aW1lL3RpbWVrZWVwaW5nLmMgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDg1ICsrKy0tLQoga2VybmVsL3RpbWUvdGltZWtlZXBpbmcuaCAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGtlcm5lbC90aW1lL3RpbWVyLmMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDU3ICsrKy0tCiBrZXJuZWwvdGltZS90aW1l cl9saXN0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA2NiArKy0tLQogMzYgZmlsZXMg Y2hhbmdlZCwgNjY2IGluc2VydGlvbnMoKyksIDgxMSBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2Rl IDEwMDY0NCBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvdGltZXIvcmVuZXNhcyx0 bXUudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRp bmdzL3RpbWVyL3JlbmVzYXMsdG11LnlhbWwKIGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2Ns b2Nrc291cmNlL3RpbWVyLW5wcy5jCiBkZWxldGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ydGMvc3lz dG9oYy5jCgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3Rp bWVyL3JlbmVzYXMsdG11LnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy90 aW1lci9yZW5lc2FzLHRtdS50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI5MTU5 ZjRlNjVhYi4uMDAwMDAwMDAwMDAwCi0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5k aW5ncy90aW1lci9yZW5lc2FzLHRtdS50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBA Ci0qIFJlbmVzYXMgUi1Nb2JpbGUvUi1DYXIgVGltZXIgVW5pdCAoVE1VKQotCi1UaGUgVE1VIGlz IGEgMzItYml0IHRpbWVyL2NvdW50ZXIgd2l0aCBjb25maWd1cmFibGUgY2xvY2sgaW5wdXRzIGFu ZAotcHJvZ3JhbW1hYmxlIGNvbXBhcmUgbWF0Y2guCi0KLUNoYW5uZWxzIHNoYXJlIGhhcmR3YXJl IHJlc291cmNlcyBidXQgdGhlaXIgY291bnRlciBhbmQgY29tcGFyZSBtYXRjaCB2YWx1ZQotYXJl IGluZGVwZW5kZW50LiBUaGUgVE1VIGhhcmR3YXJlIHN1cHBvcnRzIHVwIHRvIHRocmVlIGNoYW5u ZWxzLgotCi1SZXF1aXJlZCBQcm9wZXJ0aWVzOgotCi0gIC0gY29tcGF0aWJsZTogbXVzdCBjb250 YWluIG9uZSBvciBtb3JlIG9mIHRoZSBmb2xsb3dpbmc6Ci0gICAgLSAicmVuZXNhcyx0bXUtcjhh Nzc0MCIgZm9yIHRoZSByOGE3NzQwIFRNVQotICAgIC0gInJlbmVzYXMsdG11LXI4YTc3NGExIiBm b3IgdGhlIHI4YTc3NEExIFRNVQotICAgIC0gInJlbmVzYXMsdG11LXI4YTc3NGIxIiBmb3IgdGhl IHI4YTc3NEIxIFRNVQotICAgIC0gInJlbmVzYXMsdG11LXI4YTc3NGMwIiBmb3IgdGhlIHI4YTc3 NEMwIFRNVQotICAgIC0gInJlbmVzYXMsdG11LXI4YTc3NzgiIGZvciB0aGUgcjhhNzc3OCBUTVUK LSAgICAtICJyZW5lc2FzLHRtdS1yOGE3Nzc5IiBmb3IgdGhlIHI4YTc3NzkgVE1VCi0gICAgLSAi cmVuZXNhcyx0bXUtcjhhNzc5NzAiIGZvciB0aGUgcjhhNzc5NzAgVE1VCi0gICAgLSAicmVuZXNh cyx0bXUtcjhhNzc5ODAiIGZvciB0aGUgcjhhNzc5ODAgVE1VCi0gICAgLSAicmVuZXNhcyx0bXUi IGZvciBhbnkgVE1VLgotICAgICAgVGhpcyBpcyBhIGZhbGxiYWNrIGZvciB0aGUgYWJvdmUgcmVu ZXNhcyx0bXUtKiBlbnRyaWVzCi0KLSAgLSByZWc6IGJhc2UgYWRkcmVzcyBhbmQgbGVuZ3RoIG9m IHRoZSByZWdpc3RlcnMgYmxvY2sgZm9yIHRoZSB0aW1lciBtb2R1bGUuCi0KLSAgLSBpbnRlcnJ1 cHRzOiBpbnRlcnJ1cHQtc3BlY2lmaWVyIGZvciB0aGUgdGltZXIsIG9uZSBwZXIgY2hhbm5lbC4K LQotICAtIGNsb2NrczogYSBsaXN0IG9mIHBoYW5kbGUgKyBjbG9jay1zcGVjaWZpZXIgcGFpcnMs IG9uZSBmb3IgZWFjaCBlbnRyeQotICAgIGluIGNsb2NrLW5hbWVzLgotICAtIGNsb2NrLW5hbWVz OiBtdXN0IGNvbnRhaW4gImZjayIgZm9yIHRoZSBmdW5jdGlvbmFsIGNsb2NrLgotCi1PcHRpb25h bCBQcm9wZXJ0aWVzOgotCi0gIC0gI3JlbmVzYXMsY2hhbm5lbHM6IG51bWJlciBvZiBjaGFubmVs cyBpbXBsZW1lbnRlZCBieSB0aGUgdGltZXIsIG11c3QgYmUgMgotICAgIG9yIDMgKGlmIG5vdCBz cGVjaWZpZWQgdGhlIHZhbHVlIGRlZmF1bHRzIHRvIDMpLgotCi0KLUV4YW1wbGU6IFI4QTc3Nzkg KFItQ2FyIEgxKSBUTVUwIG5vZGUKLQotCXRtdTA6IHRpbWVyQGZmZDgwMDAwIHsKLQkJY29tcGF0 aWJsZSA9ICJyZW5lc2FzLHRtdS1yOGE3Nzc5IiwgInJlbmVzYXMsdG11IjsKLQkJcmVnID0gPDB4 ZmZkODAwMDAgMHgzMD47Ci0JCWludGVycnVwdHMgPSA8MCAzMiBJUlFfVFlQRV9MRVZFTF9ISUdI PiwKLQkJCSAgICAgPDAgMzMgSVJRX1RZUEVfTEVWRUxfSElHSD4sCi0JCQkgICAgIDwwIDM0IElS UV9UWVBFX0xFVkVMX0hJR0g+OwotCQljbG9ja3MgPSA8Jm1zdHAwX2Nsa3MgUjhBNzc3OV9DTEtf VE1VMD47Ci0JCWNsb2NrLW5hbWVzID0gImZjayI7Ci0KLQkJI3JlbmVzYXMsY2hhbm5lbHMgPSA8 Mz47Ci0JfTsKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy90 aW1lci9yZW5lc2FzLHRtdS55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdz L3RpbWVyL3JlbmVzYXMsdG11LnlhbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi5jNTQxODg3MzFhMWIKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2Rl dmljZXRyZWUvYmluZGluZ3MvdGltZXIvcmVuZXNhcyx0bXUueWFtbApAQCAtMCwwICsxLDk5IEBA CisjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiAoR1BMLTIuMC1vbmx5IE9SIEJTRC0yLUNsYXVz ZSkKKyVZQU1MIDEuMgorLS0tCiskaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL3Rp bWVyL3JlbmVzYXMsdG11LnlhbWwjCiskc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0 YS1zY2hlbWFzL2NvcmUueWFtbCMKKwordGl0bGU6IFJlbmVzYXMgUi1Nb2JpbGUvUi1DYXIgVGlt ZXIgVW5pdCAoVE1VKQorCittYWludGFpbmVyczoKKyAgLSBHZWVydCBVeXR0ZXJob2V2ZW4gPGdl ZXJ0K3JlbmVzYXNAZ2xpZGVyLmJlPgorICAtIExhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnQucGlu Y2hhcnQrcmVuZXNhc0BpZGVhc29uYm9hcmQuY29tPgorCitkZXNjcmlwdGlvbjoKKyAgVGhlIFRN VSBpcyBhIDMyLWJpdCB0aW1lci9jb3VudGVyIHdpdGggY29uZmlndXJhYmxlIGNsb2NrIGlucHV0 cyBhbmQKKyAgcHJvZ3JhbW1hYmxlIGNvbXBhcmUgbWF0Y2guCisKKyAgQ2hhbm5lbHMgc2hhcmUg aGFyZHdhcmUgcmVzb3VyY2VzIGJ1dCB0aGVpciBjb3VudGVyIGFuZCBjb21wYXJlIG1hdGNoIHZh bHVlCisgIGFyZSBpbmRlcGVuZGVudC4gVGhlIFRNVSBoYXJkd2FyZSBzdXBwb3J0cyB1cCB0byB0 aHJlZSBjaGFubmVscy4KKworcHJvcGVydGllczoKKyAgY29tcGF0aWJsZToKKyAgICBpdGVtczoK KyAgICAgIC0gZW51bToKKyAgICAgICAgICAtIHJlbmVzYXMsdG11LXI4YTc3NDAgICMgUi1Nb2Jp bGUgQTEKKyAgICAgICAgICAtIHJlbmVzYXMsdG11LXI4YTc3NGExICMgUlovRzJNCisgICAgICAg ICAgLSByZW5lc2FzLHRtdS1yOGE3NzRiMSAjIFJaL0cyTgorICAgICAgICAgIC0gcmVuZXNhcyx0 bXUtcjhhNzc0YzAgIyBSWi9HMkUKKyAgICAgICAgICAtIHJlbmVzYXMsdG11LXI4YTc3NGUxICMg UlovRzJICisgICAgICAgICAgLSByZW5lc2FzLHRtdS1yOGE3Nzc4ICAjIFItQ2FyIE0xQQorICAg ICAgICAgIC0gcmVuZXNhcyx0bXUtcjhhNzc3OSAgIyBSLUNhciBIMQorICAgICAgICAgIC0gcmVu ZXNhcyx0bXUtcjhhNzc5NzAgIyBSLUNhciBWM00KKyAgICAgICAgICAtIHJlbmVzYXMsdG11LXI4 YTc3OTgwICMgUi1DYXIgVjNICisgICAgICAtIGNvbnN0OiByZW5lc2FzLHRtdQorCisgIHJlZzoK KyAgICBtYXhJdGVtczogMQorCisgIGludGVycnVwdHM6CisgICAgbWluSXRlbXM6IDIKKyAgICBt YXhJdGVtczogMworCisgIGNsb2NrczoKKyAgICBtYXhJdGVtczogMQorCisgIGNsb2NrLW5hbWVz OgorICAgIGNvbnN0OiBmY2sKKworICBwb3dlci1kb21haW5zOgorICAgIG1heEl0ZW1zOiAxCisK KyAgcmVzZXRzOgorICAgIG1heEl0ZW1zOiAxCisKKyAgJyNyZW5lc2FzLGNoYW5uZWxzJzoKKyAg ICBkZXNjcmlwdGlvbjoKKyAgICAgIE51bWJlciBvZiBjaGFubmVscyBpbXBsZW1lbnRlZCBieSB0 aGUgdGltZXIuCisgICAgJHJlZjogL3NjaGVtYXMvdHlwZXMueWFtbCMvZGVmaW5pdGlvbnMvdWlu dDMyCisgICAgZW51bTogWyAyLCAzIF0KKyAgICBkZWZhdWx0OiAzCisKK3JlcXVpcmVkOgorICAt IGNvbXBhdGlibGUKKyAgLSByZWcKKyAgLSBpbnRlcnJ1cHRzCisgIC0gY2xvY2tzCisgIC0gY2xv Y2stbmFtZXMKKyAgLSBwb3dlci1kb21haW5zCisKK2lmOgorICBub3Q6CisgICAgcHJvcGVydGll czoKKyAgICAgIGNvbXBhdGlibGU6CisgICAgICAgIGNvbnRhaW5zOgorICAgICAgICAgIGVudW06 CisgICAgICAgICAgICAtIHJlbmVzYXMsdG11LXI4YTc3NDAKKyAgICAgICAgICAgIC0gcmVuZXNh cyx0bXUtcjhhNzc3OAorICAgICAgICAgICAgLSByZW5lc2FzLHRtdS1yOGE3Nzc5Cit0aGVuOgor ICByZXF1aXJlZDoKKyAgICAtIHJlc2V0cworCithZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UK KworZXhhbXBsZXM6CisgIC0gfAorICAgICNpbmNsdWRlIDxkdC1iaW5kaW5ncy9jbG9jay9yOGE3 Nzc5LWNsb2NrLmg+CisgICAgI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2ludGVycnVwdC1jb250cm9s bGVyL2FybS1naWMuaD4KKyAgICAjaW5jbHVkZSA8ZHQtYmluZGluZ3MvcG93ZXIvcjhhNzc3OS1z eXNjLmg+CisgICAgdG11MDogdGltZXJAZmZkODAwMDAgeworICAgICAgICAgICAgY29tcGF0aWJs ZSA9ICJyZW5lc2FzLHRtdS1yOGE3Nzc5IiwgInJlbmVzYXMsdG11IjsKKyAgICAgICAgICAgIHJl ZyA9IDwweGZmZDgwMDAwIDB4MzA+OworICAgICAgICAgICAgaW50ZXJydXB0cyA9IDxHSUNfU1BJ IDMyIElSUV9UWVBFX0xFVkVMX0hJR0g+LAorICAgICAgICAgICAgICAgICAgICAgICAgIDxHSUNf U1BJIDMzIElSUV9UWVBFX0xFVkVMX0hJR0g+LAorICAgICAgICAgICAgICAgICAgICAgICAgIDxH SUNfU1BJIDM0IElSUV9UWVBFX0xFVkVMX0hJR0g+OworICAgICAgICAgICAgY2xvY2tzID0gPCZt c3RwMF9jbGtzIFI4QTc3NzlfQ0xLX1RNVTA+OworICAgICAgICAgICAgY2xvY2stbmFtZXMgPSAi ZmNrIjsKKyAgICAgICAgICAgIHBvd2VyLWRvbWFpbnMgPSA8JnN5c2MgUjhBNzc3OV9QRF9BTFdB WVNfT04+OworICAgICAgICAgICAgI3JlbmVzYXMsY2hhbm5lbHMgPSA8Mz47CisgICAgfTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvY2xvY2tzb3VyY2UvS2NvbmZpZyBiL2RyaXZlcnMvY2xvY2tzb3Vy Y2UvS2NvbmZpZwppbmRleCA2OGIwODdiZmY1OWMuLjlmMDBiODM4NWZkNCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9jbG9ja3NvdXJjZS9LY29uZmlnCisrKyBiL2RyaXZlcnMvY2xvY2tzb3VyY2UvS2Nv bmZpZwpAQCAtMjc1LDE2ICsyNzUsNiBAQCBjb25maWcgQ0xLU1JDX1RJXzMySwogCSAgVGhpcyBv cHRpb24gZW5hYmxlcyBzdXBwb3J0IGZvciBUZXhhcyBJbnN0cnVtZW50cyAzMi43NjggSHogY2xv Y2tzb3VyY2UKIAkgIGF2YWlsYWJsZSBvbiBtYW55IE9NQVAtbGlrZSBwbGF0Zm9ybXMuCiAKLWNv bmZpZyBDTEtTUkNfTlBTCi0JYm9vbCAiTlBTNDAwIGNsb2Nrc291cmNlIGRyaXZlciIgaWYgQ09N UElMRV9URVNUCi0JZGVwZW5kcyBvbiAhUEhZU19BRERSX1RfNjRCSVQKLQlzZWxlY3QgQ0xLU1JD X01NSU8KLQlzZWxlY3QgVElNRVJfT0YgaWYgT0YKLQloZWxwCi0JICBOUFM0MDAgY2xvY2tzb3Vy Y2Ugc3VwcG9ydC4KLQkgIEl0IGhhcyBhIDY0LWJpdCBjb3VudGVyIHdpdGggdXBkYXRlIHJhdGUg dXAgdG8gMTAwME1Iei4KLQkgIFRoaXMgY291bnRlciBpcyBhY2Nlc3NlZCB2aWEgY291cGxlIG9m IDMyLWJpdCBtZW1vcnktbWFwcGVkIHJlZ2lzdGVycy4KLQogY29uZmlnIENMS1NSQ19TVE0zMgog CWJvb2wgIkNsb2Nrc291cmNlIGZvciBTVE0zMiBTb0NzIiBpZiAhQVJDSF9TVE0zMgogCWRlcGVu ZHMgb24gT0YgJiYgQVJNICYmIChBUkNIX1NUTTMyIHx8IENPTVBJTEVfVEVTVCkKQEAgLTY1NCw3 ICs2NDQsNyBAQCBjb25maWcgQVRDUElUMTAwX1RJTUVSCiAKIGNvbmZpZyBSSVNDVl9USU1FUgog CWJvb2wgIlRpbWVyIGZvciB0aGUgUklTQy1WIHBsYXRmb3JtIiBpZiBDT01QSUxFX1RFU1QKLQlk ZXBlbmRzIG9uIEdFTkVSSUNfU0NIRURfQ0xPQ0sgJiYgUklTQ1YKKwlkZXBlbmRzIG9uIEdFTkVS SUNfU0NIRURfQ0xPQ0sgJiYgUklTQ1YgJiYgUklTQ1ZfU0JJCiAJc2VsZWN0IFRJTUVSX1BST0JF CiAJc2VsZWN0IFRJTUVSX09GCiAJaGVscApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbG9ja3NvdXJj ZS9NYWtlZmlsZSBiL2RyaXZlcnMvY2xvY2tzb3VyY2UvTWFrZWZpbGUKaW5kZXggMWM0NDRjYzNi YjQ0Li4zYzc1Y2JiZjg1MzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xvY2tzb3VyY2UvTWFrZWZp bGUKKysrIGIvZHJpdmVycy9jbG9ja3NvdXJjZS9NYWtlZmlsZQpAQCAtNTYsNyArNTYsNiBAQCBv YmotJChDT05GSUdfQ0xLU1JDX1FDT00pCSs9IHRpbWVyLXFjb20ubwogb2JqLSQoQ09ORklHX01U S19USU1FUikJCSs9IHRpbWVyLW1lZGlhdGVrLm8KIG9iai0kKENPTkZJR19DTEtTUkNfUElTVEFD SElPKQkrPSB0aW1lci1waXN0YWNoaW8ubwogb2JqLSQoQ09ORklHX0NMS1NSQ19USV8zMkspCSs9 IHRpbWVyLXRpLTMyay5vCi1vYmotJChDT05GSUdfQ0xLU1JDX05QUykJKz0gdGltZXItbnBzLm8K IG9iai0kKENPTkZJR19PWE5BU19SUFNfVElNRVIpCSs9IHRpbWVyLW94bmFzLXJwcy5vCiBvYmot JChDT05GSUdfT1dMX1RJTUVSKQkJKz0gdGltZXItb3dsLm8KIG9iai0kKENPTkZJR19NSUxCRUFV VF9USU1FUikJKz0gdGltZXItbWlsYmVhdXQubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbG9ja3Nv dXJjZS9hcm1fYXJjaF90aW1lci5jIGIvZHJpdmVycy9jbG9ja3NvdXJjZS9hcm1fYXJjaF90aW1l ci5jCmluZGV4IDZjM2U4NDE4MDE0Ni4uZDAxNzc4MjRjNTE4IDEwMDY0NAotLS0gYS9kcml2ZXJz L2Nsb2Nrc291cmNlL2FybV9hcmNoX3RpbWVyLmMKKysrIGIvZHJpdmVycy9jbG9ja3NvdXJjZS9h cm1fYXJjaF90aW1lci5jCkBAIC0zOTYsMTAgKzM5NiwxMCBAQCBzdGF0aWMgdm9pZCBlcnJhdHVt X3NldF9uZXh0X2V2ZW50X3R2YWxfZ2VuZXJpYyhjb25zdCBpbnQgYWNjZXNzLCB1bnNpZ25lZCBs b25nCiAJY3RybCAmPSB+QVJDSF9USU1FUl9DVFJMX0lUX01BU0s7CiAKIAlpZiAoYWNjZXNzID09 IEFSQ0hfVElNRVJfUEhZU19BQ0NFU1MpIHsKLQkJY3ZhbCA9IGV2dCArIGFyY2hfY291bnRlcl9n ZXRfY250cGN0KCk7CisJCWN2YWwgPSBldnQgKyBhcmNoX2NvdW50ZXJfZ2V0X2NudHBjdF9zdGFi bGUoKTsKIAkJd3JpdGVfc3lzcmVnKGN2YWwsIGNudHBfY3ZhbF9lbDApOwogCX0gZWxzZSB7Ci0J CWN2YWwgPSBldnQgKyBhcmNoX2NvdW50ZXJfZ2V0X2NudHZjdCgpOworCQljdmFsID0gZXZ0ICsg YXJjaF9jb3VudGVyX2dldF9jbnR2Y3Rfc3RhYmxlKCk7CiAJCXdyaXRlX3N5c3JlZyhjdmFsLCBj bnR2X2N2YWxfZWwwKTsKIAl9CiAKQEAgLTgyMiwxNSArODIyLDI0IEBAIHN0YXRpYyB2b2lkIGFy Y2hfdGltZXJfZXZ0c3RybV9lbmFibGUoaW50IGRpdmlkZXIpCiAKIHN0YXRpYyB2b2lkIGFyY2hf dGltZXJfY29uZmlndXJlX2V2dHN0cmVhbSh2b2lkKQogewotCWludCBldnRfc3RyZWFtX2Rpdiwg cG9zOworCWludCBldnRfc3RyZWFtX2RpdiwgbHNiOworCisJLyoKKwkgKiBBcyB0aGUgZXZlbnQg c3RyZWFtIGNhbiBhdCBtb3N0IGJlIGdlbmVyYXRlZCBhdCBoYWxmIHRoZSBmcmVxdWVuY3kKKwkg KiBvZiB0aGUgY291bnRlciwgdXNlIGhhbGYgdGhlIGZyZXF1ZW5jeSB3aGVuIGNvbXB1dGluZyB0 aGUgZGl2aWRlci4KKwkgKi8KKwlldnRfc3RyZWFtX2RpdiA9IGFyY2hfdGltZXJfcmF0ZSAvIEFS Q0hfVElNRVJfRVZUX1NUUkVBTV9GUkVRIC8gMjsKKworCS8qCisJICogRmluZCB0aGUgY2xvc2Vz dCBwb3dlciBvZiB0d28gdG8gdGhlIGRpdmlzb3IuIElmIHRoZSBhZGphY2VudCBiaXQKKwkgKiBv ZiBsc2IgKGxhc3Qgc2V0IGJpdCwgc3RhcnRzIGZyb20gMCkgaXMgc2V0LCB0aGVuIHdlIHVzZSAo bHNiICsgMSkuCisJICovCisJbHNiID0gZmxzKGV2dF9zdHJlYW1fZGl2KSAtIDE7CisJaWYgKGxz YiA+IDAgJiYgKGV2dF9zdHJlYW1fZGl2ICYgQklUKGxzYiAtIDEpKSkKKwkJbHNiKys7CiAKLQkv KiBGaW5kIHRoZSBjbG9zZXN0IHBvd2VyIG9mIHR3byB0byB0aGUgZGl2aXNvciAqLwotCWV2dF9z dHJlYW1fZGl2ID0gYXJjaF90aW1lcl9yYXRlIC8gQVJDSF9USU1FUl9FVlRfU1RSRUFNX0ZSRVE7 Ci0JcG9zID0gZmxzKGV2dF9zdHJlYW1fZGl2KTsKLQlpZiAocG9zID4gMSAmJiAhKGV2dF9zdHJl YW1fZGl2ICYgKDEgPDwgKHBvcyAtIDIpKSkpCi0JCXBvcy0tOwogCS8qIGVuYWJsZSBldmVudCBz dHJlYW0gKi8KLQlhcmNoX3RpbWVyX2V2dHN0cm1fZW5hYmxlKG1pbihwb3MsIDE1KSk7CisJYXJj aF90aW1lcl9ldnRzdHJtX2VuYWJsZShtYXgoMCwgbWluKGxzYiwgMTUpKSk7CiB9CiAKIHN0YXRp YyB2b2lkIGFyY2hfY291bnRlcl9zZXRfdXNlcl9hY2Nlc3Modm9pZCkKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvY2xvY2tzb3VyY2UvZHdfYXBiX3RpbWVyX29mLmMgYi9kcml2ZXJzL2Nsb2Nrc291cmNl L2R3X2FwYl90aW1lcl9vZi5jCmluZGV4IGFiM2RkZWJlODM0NC4uNDJlN2U0M2I4ZmNkIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2Nsb2Nrc291cmNlL2R3X2FwYl90aW1lcl9vZi5jCisrKyBiL2RyaXZl cnMvY2xvY2tzb3VyY2UvZHdfYXBiX3RpbWVyX29mLmMKQEAgLTE0LDEyICsxNCwxMyBAQAogI2lu Y2x1ZGUgPGxpbnV4L3Jlc2V0Lmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWRfY2xvY2suaD4KIAot c3RhdGljIHZvaWQgX19pbml0IHRpbWVyX2dldF9iYXNlX2FuZF9yYXRlKHN0cnVjdCBkZXZpY2Vf bm9kZSAqbnAsCitzdGF0aWMgaW50IF9faW5pdCB0aW1lcl9nZXRfYmFzZV9hbmRfcmF0ZShzdHJ1 Y3QgZGV2aWNlX25vZGUgKm5wLAogCQkJCSAgICB2b2lkIF9faW9tZW0gKipiYXNlLCB1MzIgKnJh dGUpCiB7CiAJc3RydWN0IGNsayAqdGltZXJfY2xrOwogCXN0cnVjdCBjbGsgKnBjbGs7CiAJc3Ry dWN0IHJlc2V0X2NvbnRyb2wgKnJzdGM7CisJaW50IHJldDsKIAogCSpiYXNlID0gb2ZfaW9tYXAo bnAsIDApOwogCkBAIC00Niw1NSArNDcsNjcgQEAgc3RhdGljIHZvaWQgX19pbml0IHRpbWVyX2dl dF9iYXNlX2FuZF9yYXRlKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsCiAJCQlwcl93YXJuKCJwY2xr IGZvciAlcE9GbiBpcyBwcmVzZW50LCBidXQgY291bGQgbm90IGJlIGFjdGl2YXRlZFxuIiwKIAkJ CQlucCk7CiAKKwlpZiAoIW9mX3Byb3BlcnR5X3JlYWRfdTMyKG5wLCAiY2xvY2stZnJlcSIsIHJh dGUpICYmCisJICAgICFvZl9wcm9wZXJ0eV9yZWFkX3UzMihucCwgImNsb2NrLWZyZXF1ZW5jeSIs IHJhdGUpKQorCQlyZXR1cm4gMDsKKwogCXRpbWVyX2NsayA9IG9mX2Nsa19nZXRfYnlfbmFtZShu cCwgInRpbWVyIik7CiAJaWYgKElTX0VSUih0aW1lcl9jbGspKQotCQlnb3RvIHRyeV9jbG9ja19m cmVxOworCQlyZXR1cm4gUFRSX0VSUih0aW1lcl9jbGspOwogCi0JaWYgKCFjbGtfcHJlcGFyZV9l bmFibGUodGltZXJfY2xrKSkgewotCQkqcmF0ZSA9IGNsa19nZXRfcmF0ZSh0aW1lcl9jbGspOwot CQlyZXR1cm47Ci0JfQorCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZSh0aW1lcl9jbGspOworCWlm IChyZXQpCisJCXJldHVybiByZXQ7CisKKwkqcmF0ZSA9IGNsa19nZXRfcmF0ZSh0aW1lcl9jbGsp OworCWlmICghKCpyYXRlKSkKKwkJcmV0dXJuIC1FSU5WQUw7CiAKLXRyeV9jbG9ja19mcmVxOgot CWlmIChvZl9wcm9wZXJ0eV9yZWFkX3UzMihucCwgImNsb2NrLWZyZXEiLCByYXRlKSAmJgotCSAg ICBvZl9wcm9wZXJ0eV9yZWFkX3UzMihucCwgImNsb2NrLWZyZXF1ZW5jeSIsIHJhdGUpKQotCQlw YW5pYygiTm8gY2xvY2sgbm9yIGNsb2NrLWZyZXF1ZW5jeSBwcm9wZXJ0eSBmb3IgJXBPRm4iLCBu cCk7CisJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkIF9faW5pdCBhZGRfY2xvY2tldmVudChz dHJ1Y3QgZGV2aWNlX25vZGUgKmV2ZW50X3RpbWVyKQorc3RhdGljIGludCBfX2luaXQgYWRkX2Ns b2NrZXZlbnQoc3RydWN0IGRldmljZV9ub2RlICpldmVudF90aW1lcikKIHsKIAl2b2lkIF9faW9t ZW0gKmlvYmFzZTsKIAlzdHJ1Y3QgZHdfYXBiX2Nsb2NrX2V2ZW50X2RldmljZSAqY2VkOwogCXUz MiBpcnEsIHJhdGU7CisJaW50IHJldCA9IDA7CiAKIAlpcnEgPSBpcnFfb2ZfcGFyc2VfYW5kX21h cChldmVudF90aW1lciwgMCk7CiAJaWYgKGlycSA9PSAwKQogCQlwYW5pYygiTm8gSVJRIGZvciBj bG9jayBldmVudCB0aW1lciIpOwogCi0JdGltZXJfZ2V0X2Jhc2VfYW5kX3JhdGUoZXZlbnRfdGlt ZXIsICZpb2Jhc2UsICZyYXRlKTsKKwlyZXQgPSB0aW1lcl9nZXRfYmFzZV9hbmRfcmF0ZShldmVu dF90aW1lciwgJmlvYmFzZSwgJnJhdGUpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CiAKIAlj ZWQgPSBkd19hcGJfY2xvY2tldmVudF9pbml0KC0xLCBldmVudF90aW1lci0+bmFtZSwgMzAwLCBp b2Jhc2UsIGlycSwKIAkJCQkgICAgIHJhdGUpOwogCWlmICghY2VkKQotCQlwYW5pYygiVW5hYmxl IHRvIGluaXRpYWxpc2UgY2xvY2tldmVudCBkZXZpY2UiKTsKKwkJcmV0dXJuIC1FSU5WQUw7CiAK IAlkd19hcGJfY2xvY2tldmVudF9yZWdpc3RlcihjZWQpOworCisJcmV0dXJuIDA7CiB9CiAKIHN0 YXRpYyB2b2lkIF9faW9tZW0gKnNjaGVkX2lvX2Jhc2U7CiBzdGF0aWMgdTMyIHNjaGVkX3JhdGU7 CiAKLXN0YXRpYyB2b2lkIF9faW5pdCBhZGRfY2xvY2tzb3VyY2Uoc3RydWN0IGRldmljZV9ub2Rl ICpzb3VyY2VfdGltZXIpCitzdGF0aWMgaW50IF9faW5pdCBhZGRfY2xvY2tzb3VyY2Uoc3RydWN0 IGRldmljZV9ub2RlICpzb3VyY2VfdGltZXIpCiB7CiAJdm9pZCBfX2lvbWVtICppb2Jhc2U7CiAJ c3RydWN0IGR3X2FwYl9jbG9ja3NvdXJjZSAqY3M7CiAJdTMyIHJhdGU7CisJaW50IHJldDsKIAot CXRpbWVyX2dldF9iYXNlX2FuZF9yYXRlKHNvdXJjZV90aW1lciwgJmlvYmFzZSwgJnJhdGUpOwor CXJldCA9IHRpbWVyX2dldF9iYXNlX2FuZF9yYXRlKHNvdXJjZV90aW1lciwgJmlvYmFzZSwgJnJh dGUpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CiAKIAljcyA9IGR3X2FwYl9jbG9ja3NvdXJj ZV9pbml0KDMwMCwgc291cmNlX3RpbWVyLT5uYW1lLCBpb2Jhc2UsIHJhdGUpOwogCWlmICghY3Mp Ci0JCXBhbmljKCJVbmFibGUgdG8gaW5pdGlhbGlzZSBjbG9ja3NvdXJjZSBkZXZpY2UiKTsKKwkJ cmV0dXJuIC1FSU5WQUw7CiAKIAlkd19hcGJfY2xvY2tzb3VyY2Vfc3RhcnQoY3MpOwogCWR3X2Fw Yl9jbG9ja3NvdXJjZV9yZWdpc3Rlcihjcyk7CkBAIC0xMDYsNiArMTE5LDggQEAgc3RhdGljIHZv aWQgX19pbml0IGFkZF9jbG9ja3NvdXJjZShzdHJ1Y3QgZGV2aWNlX25vZGUgKnNvdXJjZV90aW1l cikKIAkgKi8KIAlzY2hlZF9pb19iYXNlID0gaW9iYXNlICsgMHgwNDsKIAlzY2hlZF9yYXRlID0g cmF0ZTsKKworCXJldHVybiAwOwogfQogCiBzdGF0aWMgdTY0IG5vdHJhY2UgcmVhZF9zY2hlZF9j bG9jayh2b2lkKQpAQCAtMTQ2LDEwICsxNjEsMTQgQEAgc3RhdGljIHN0cnVjdCBkZWxheV90aW1l ciBkd19hcGJfZGVsYXlfdGltZXIgPSB7CiBzdGF0aWMgaW50IG51bV9jYWxsZWQ7CiBzdGF0aWMg aW50IF9faW5pdCBkd19hcGJfdGltZXJfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKnRpbWVyKQog eworCWludCByZXQgPSAwOworCiAJc3dpdGNoIChudW1fY2FsbGVkKSB7CiAJY2FzZSAxOgogCQlw cl9kZWJ1ZygiJXM6IGZvdW5kIGNsb2Nrc291cmNlIHRpbWVyXG4iLCBfX2Z1bmNfXyk7Ci0JCWFk ZF9jbG9ja3NvdXJjZSh0aW1lcik7CisJCXJldCA9IGFkZF9jbG9ja3NvdXJjZSh0aW1lcik7CisJ CWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OwogCQlpbml0X3NjaGVkX2Nsb2NrKCk7CiAjaWZkZWYg Q09ORklHX0FSTQogCQlkd19hcGJfZGVsYXlfdGltZXIuZnJlcSA9IHNjaGVkX3JhdGU7CkBAIC0x NTgsNyArMTc3LDkgQEAgc3RhdGljIGludCBfX2luaXQgZHdfYXBiX3RpbWVyX2luaXQoc3RydWN0 IGRldmljZV9ub2RlICp0aW1lcikKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJcHJfZGVidWcoIiVz OiBmb3VuZCBjbG9ja2V2ZW50IHRpbWVyXG4iLCBfX2Z1bmNfXyk7Ci0JCWFkZF9jbG9ja2V2ZW50 KHRpbWVyKTsKKwkJcmV0ID0gYWRkX2Nsb2NrZXZlbnQodGltZXIpOworCQlpZiAocmV0KQorCQkJ cmV0dXJuIHJldDsKIAkJYnJlYWs7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsb2Nrc291 cmNlL2luZ2VuaWMtdGltZXIuYyBiL2RyaXZlcnMvY2xvY2tzb3VyY2UvaW5nZW5pYy10aW1lci5j CmluZGV4IDU4ZmQ5MTg5ZmFiNy4uOTA1ZmQ2YjE2M2E4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Ns b2Nrc291cmNlL2luZ2VuaWMtdGltZXIuYworKysgYi9kcml2ZXJzL2Nsb2Nrc291cmNlL2luZ2Vu aWMtdGltZXIuYwpAQCAtMTI3LDcgKzEyNyw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBpbmdlbmlj X3RjdV9jZXZ0X2NiKGludCBpcnEsIHZvaWQgKmRldl9pZCkKIAlyZXR1cm4gSVJRX0hBTkRMRUQ7 CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrICogX19pbml0IGluZ2VuaWNfdGN1X2dldF9jbG9jayhz dHJ1Y3QgZGV2aWNlX25vZGUgKm5wLCBpbnQgaWQpCitzdGF0aWMgc3RydWN0IGNsayAqaW5nZW5p Y190Y3VfZ2V0X2Nsb2NrKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsIGludCBpZCkKIHsKIAlzdHJ1 Y3Qgb2ZfcGhhbmRsZV9hcmdzIGFyZ3M7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xvY2tzb3Vy Y2Uvc2hfY210LmMgYi9kcml2ZXJzL2Nsb2Nrc291cmNlL3NoX2NtdC5jCmluZGV4IDc2MDc3NzQ1 OGE5MC4uMTlmYTNlZjc1ZTNiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsb2Nrc291cmNlL3NoX2Nt dC5jCisrKyBiL2RyaXZlcnMvY2xvY2tzb3VyY2Uvc2hfY210LmMKQEAgLTMxOSw3ICszMTksNiBA QCBzdGF0aWMgaW50IHNoX2NtdF9lbmFibGUoc3RydWN0IHNoX2NtdF9jaGFubmVsICpjaCkKIHsK IAlpbnQgaywgcmV0OwogCi0JcG1fcnVudGltZV9nZXRfc3luYygmY2gtPmNtdC0+cGRldi0+ZGV2 KTsKIAlkZXZfcG1fc3lzY29yZV9kZXZpY2UoJmNoLT5jbXQtPnBkZXYtPmRldiwgdHJ1ZSk7CiAK IAkvKiBlbmFibGUgY2xvY2sgKi8KQEAgLTM5NCw3ICszOTMsNiBAQCBzdGF0aWMgdm9pZCBzaF9j bXRfZGlzYWJsZShzdHJ1Y3Qgc2hfY210X2NoYW5uZWwgKmNoKQogCWNsa19kaXNhYmxlKGNoLT5j bXQtPmNsayk7CiAKIAlkZXZfcG1fc3lzY29yZV9kZXZpY2UoJmNoLT5jbXQtPnBkZXYtPmRldiwg ZmFsc2UpOwotCXBtX3J1bnRpbWVfcHV0KCZjaC0+Y210LT5wZGV2LT5kZXYpOwogfQogCiAvKiBw cml2YXRlIGZsYWdzICovCkBAIC01NjIsMTAgKzU2MCwxNiBAQCBzdGF0aWMgaW50IHNoX2NtdF9z dGFydChzdHJ1Y3Qgc2hfY210X2NoYW5uZWwgKmNoLCB1bnNpZ25lZCBsb25nIGZsYWcpCiAJaW50 IHJldCA9IDA7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAorCWlmIChmbGFnICYgRkxBR19DTE9D S1NPVVJDRSkKKwkJcG1fcnVudGltZV9nZXRfc3luYygmY2gtPmNtdC0+cGRldi0+ZGV2KTsKKwog CXJhd19zcGluX2xvY2tfaXJxc2F2ZSgmY2gtPmxvY2ssIGZsYWdzKTsKIAotCWlmICghKGNoLT5m bGFncyAmIChGTEFHX0NMT0NLRVZFTlQgfCBGTEFHX0NMT0NLU09VUkNFKSkpCisJaWYgKCEoY2gt PmZsYWdzICYgKEZMQUdfQ0xPQ0tFVkVOVCB8IEZMQUdfQ0xPQ0tTT1VSQ0UpKSkgeworCQlpZiAo ZmxhZyAmIEZMQUdfQ0xPQ0tFVkVOVCkKKwkJCXBtX3J1bnRpbWVfZ2V0X3N5bmMoJmNoLT5jbXQt PnBkZXYtPmRldik7CiAJCXJldCA9IHNoX2NtdF9lbmFibGUoY2gpOworCX0KIAogCWlmIChyZXQp CiAJCWdvdG8gb3V0OwpAQCAtNTkwLDE0ICs1OTQsMjAgQEAgc3RhdGljIHZvaWQgc2hfY210X3N0 b3Aoc3RydWN0IHNoX2NtdF9jaGFubmVsICpjaCwgdW5zaWduZWQgbG9uZyBmbGFnKQogCWYgPSBj aC0+ZmxhZ3MgJiAoRkxBR19DTE9DS0VWRU5UIHwgRkxBR19DTE9DS1NPVVJDRSk7CiAJY2gtPmZs YWdzICY9IH5mbGFnOwogCi0JaWYgKGYgJiYgIShjaC0+ZmxhZ3MgJiAoRkxBR19DTE9DS0VWRU5U IHwgRkxBR19DTE9DS1NPVVJDRSkpKQorCWlmIChmICYmICEoY2gtPmZsYWdzICYgKEZMQUdfQ0xP Q0tFVkVOVCB8IEZMQUdfQ0xPQ0tTT1VSQ0UpKSkgewogCQlzaF9jbXRfZGlzYWJsZShjaCk7CisJ CWlmIChmbGFnICYgRkxBR19DTE9DS0VWRU5UKQorCQkJcG1fcnVudGltZV9wdXQoJmNoLT5jbXQt PnBkZXYtPmRldik7CisJfQogCiAJLyogYWRqdXN0IHRoZSB0aW1lb3V0IHRvIG1heGltdW0gaWYg b25seSBjbG9ja3NvdXJjZSBsZWZ0ICovCiAJaWYgKChmbGFnID09IEZMQUdfQ0xPQ0tFVkVOVCkg JiYgKGNoLT5mbGFncyAmIEZMQUdfQ0xPQ0tTT1VSQ0UpKQogCQlfX3NoX2NtdF9zZXRfbmV4dChj aCwgY2gtPm1heF9tYXRjaF92YWx1ZSk7CiAKIAlyYXdfc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgm Y2gtPmxvY2ssIGZsYWdzKTsKKworCWlmIChmbGFnICYgRkxBR19DTE9DS1NPVVJDRSkKKwkJcG1f cnVudGltZV9wdXQoJmNoLT5jbXQtPnBkZXYtPmRldik7CiB9CiAKIHN0YXRpYyBzdHJ1Y3Qgc2hf Y210X2NoYW5uZWwgKmNzX3RvX3NoX2NtdChzdHJ1Y3QgY2xvY2tzb3VyY2UgKmNzKQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9jbG9ja3NvdXJjZS90aW1lci1jYWRlbmNlLXR0Yy5jIGIvZHJpdmVycy9j bG9ja3NvdXJjZS90aW1lci1jYWRlbmNlLXR0Yy5jCmluZGV4IDgwZTk2MDYwMjAzMC4uNGVmZDBj ZjNiNjAyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsb2Nrc291cmNlL3RpbWVyLWNhZGVuY2UtdHRj LmMKKysrIGIvZHJpdmVycy9jbG9ja3NvdXJjZS90aW1lci1jYWRlbmNlLXR0Yy5jCkBAIC00MTMs MTAgKzQxMyw4IEBAIHN0YXRpYyBpbnQgX19pbml0IHR0Y19zZXR1cF9jbG9ja2V2ZW50KHN0cnVj dCBjbGsgKmNsaywKIAl0dGNjZS0+dHRjLmNsayA9IGNsazsKIAogCWVyciA9IGNsa19wcmVwYXJl X2VuYWJsZSh0dGNjZS0+dHRjLmNsayk7Ci0JaWYgKGVycikgewotCQlrZnJlZSh0dGNjZSk7Ci0J CXJldHVybiBlcnI7Ci0JfQorCWlmIChlcnIpCisJCWdvdG8gb3V0X2tmcmVlOwogCiAJdHRjY2Ut PnR0Yy5jbGtfcmF0ZV9jaGFuZ2VfbmIubm90aWZpZXJfY2FsbCA9CiAJCXR0Y19yYXRlX2NoYW5n ZV9jbG9ja2V2ZW50X2NiOwpAQCAtNDI2LDcgKzQyNCw3IEBAIHN0YXRpYyBpbnQgX19pbml0IHR0 Y19zZXR1cF9jbG9ja2V2ZW50KHN0cnVjdCBjbGsgKmNsaywKIAkJCQkgICAgJnR0Y2NlLT50dGMu Y2xrX3JhdGVfY2hhbmdlX25iKTsKIAlpZiAoZXJyKSB7CiAJCXByX3dhcm4oIlVuYWJsZSB0byBy ZWdpc3RlciBjbG9jayBub3RpZmllci5cbiIpOwotCQlyZXR1cm4gZXJyOworCQlnb3RvIG91dF9r ZnJlZTsKIAl9CiAKIAl0dGNjZS0+dHRjLmZyZXEgPSBjbGtfZ2V0X3JhdGUodHRjY2UtPnR0Yy5j bGspOwpAQCAtNDU1LDE1ICs0NTMsMTcgQEAgc3RhdGljIGludCBfX2luaXQgdHRjX3NldHVwX2Ns b2NrZXZlbnQoc3RydWN0IGNsayAqY2xrLAogCiAJZXJyID0gcmVxdWVzdF9pcnEoaXJxLCB0dGNf Y2xvY2tfZXZlbnRfaW50ZXJydXB0LAogCQkJICBJUlFGX1RJTUVSLCB0dGNjZS0+Y2UubmFtZSwg dHRjY2UpOwotCWlmIChlcnIpIHsKLQkJa2ZyZWUodHRjY2UpOwotCQlyZXR1cm4gZXJyOwotCX0K KwlpZiAoZXJyKQorCQlnb3RvIG91dF9rZnJlZTsKIAogCWNsb2NrZXZlbnRzX2NvbmZpZ19hbmRf cmVnaXN0ZXIoJnR0Y2NlLT5jZSwKIAkJCXR0Y2NlLT50dGMuZnJlcSAvIFBSRVNDQUxFLCAxLCAw eGZmZmUpOwogCiAJcmV0dXJuIDA7CisKK291dF9rZnJlZToKKwlrZnJlZSh0dGNjZSk7CisJcmV0 dXJuIGVycjsKIH0KIAogc3RhdGljIGludCBfX2luaXQgdHRjX3RpbWVyX3Byb2JlKHN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsb2Nrc291cmNlL3Rp bWVyLW5wcy5jIGIvZHJpdmVycy9jbG9ja3NvdXJjZS90aW1lci1ucHMuYwpkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggN2I2YmIwZGY5NmFlLi4wMDAwMDAwMDAwMDAKLS0tIGEvZHJpdmVy cy9jbG9ja3NvdXJjZS90aW1lci1ucHMuYworKysgL2Rldi9udWxsCkBAIC0xLDI4NCArMCwwIEBA Ci0vKgotICogQ29weXJpZ2h0IChjKSAyMDE2LCBNZWxsYW5veCBUZWNobm9sb2dpZXMuIEFsbCBy aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBzb2Z0d2FyZSBpcyBhdmFpbGFibGUgdG8geW91 IHVuZGVyIGEgY2hvaWNlIG9mIG9uZSBvZiB0d28KLSAqIGxpY2Vuc2VzLiAgWW91IG1heSBjaG9v c2UgdG8gYmUgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUKLSAqIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgKEdQTCkgVmVyc2lvbiAyLCBhdmFpbGFibGUgZnJvbSB0aGUgZmlsZQot ICogQ09QWUlORyBpbiB0aGUgbWFpbiBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZSwgb3Ig dGhlCi0gKiBPcGVuSUIub3JnIEJTRCBsaWNlbnNlIGJlbG93OgotICoKLSAqICAgICBSZWRpc3Ry aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yCi0gKiAg ICAgd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg Zm9sbG93aW5nCi0gKiAgICAgY29uZGl0aW9ucyBhcmUgbWV0OgotICoKLSAqICAgICAgLSBSZWRp c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCi0gKiAgICAg ICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs b3dpbmcKLSAqICAgICAgICBkaXNjbGFpbWVyLgotICoKLSAqICAgICAgLSBSZWRpc3RyaWJ1dGlv bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiAgICAgICAgY29w eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcK LSAqICAgICAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt YXRlcmlhbHMKLSAqICAgICAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot ICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg QU5ZIEtJTkQsCi0gKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlU RUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSAqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5ECi0gKiBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5U IFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTCi0gKiBCRSBMSUFCTEUgRk9S IEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4KLSAq IEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VU IE9GIE9SIElOCi0gKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1Ig T1RIRVIgREVBTElOR1MgSU4gVEhFCi0gKiBTT0ZUV0FSRS4KLSAqLwotCi0jaW5jbHVkZSA8bGlu dXgvaW50ZXJydXB0Lmg+Ci0jaW5jbHVkZSA8bGludXgvY2xvY2tzb3VyY2UuaD4KLSNpbmNsdWRl IDxsaW51eC9jbG9ja2NoaXBzLmg+Ci0jaW5jbHVkZSA8bGludXgvY2xrLmg+Ci0jaW5jbHVkZSA8 bGludXgvb2YuaD4KLSNpbmNsdWRlIDxsaW51eC9vZl9pcnEuaD4KLSNpbmNsdWRlIDxsaW51eC9j cHUuaD4KLSNpbmNsdWRlIDxzb2MvbnBzL2NvbW1vbi5oPgotCi0jZGVmaW5lIE5QU19NU1VfVElD S19MT1cJMHhDOAotI2RlZmluZSBOUFNfQ0xVU1RFUl9PRkZTRVQJOAotI2RlZmluZSBOUFNfQ0xV U1RFUl9OVU0JCTE2Ci0KLS8qIFRoaXMgYXJyYXkgaXMgcGVyIGNsdXN0ZXIgb2YgQ1BVcyAoRWFj aCBOUFM0MDAgY2x1c3RlciBnb3QgMjU2IENQVXMpICovCi1zdGF0aWMgdm9pZCAqbnBzX21zdV9y ZWdfbG93X2FkZHJbTlBTX0NMVVNURVJfTlVNXSBfX3JlYWRfbW9zdGx5OwotCi1zdGF0aWMgaW50 IF9faW5pdCBucHNfZ2V0X3RpbWVyX2NsayhzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUsCi0JCQkg ICAgIHVuc2lnbmVkIGxvbmcgKnRpbWVyX2ZyZXEsCi0JCQkgICAgIHN0cnVjdCBjbGsgKipjbGsp Ci17Ci0JaW50IHJldDsKLQotCSpjbGsgPSBvZl9jbGtfZ2V0KG5vZGUsIDApOwotCXJldCA9IFBU Ul9FUlJfT1JfWkVSTygqY2xrKTsKLQlpZiAocmV0KSB7Ci0JCXByX2VycigidGltZXIgbWlzc2lu ZyBjbGtcbiIpOwotCQlyZXR1cm4gcmV0OwotCX0KLQotCXJldCA9IGNsa19wcmVwYXJlX2VuYWJs ZSgqY2xrKTsKLQlpZiAocmV0KSB7Ci0JCXByX2VycigiQ291bGRuJ3QgZW5hYmxlIHBhcmVudCBj bGtcbiIpOwotCQljbGtfcHV0KCpjbGspOwotCQlyZXR1cm4gcmV0OwotCX0KLQotCSp0aW1lcl9m cmVxID0gY2xrX2dldF9yYXRlKCpjbGspOwotCWlmICghKCp0aW1lcl9mcmVxKSkgewotCQlwcl9l cnIoIkNvdWxkbid0IGdldCBjbGsgcmF0ZVxuIik7Ci0JCWNsa19kaXNhYmxlX3VucHJlcGFyZSgq Y2xrKTsKLQkJY2xrX3B1dCgqY2xrKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JcmV0dXJu IDA7Ci19Ci0KLXN0YXRpYyB1NjQgbnBzX2Nsa3NyY19yZWFkKHN0cnVjdCBjbG9ja3NvdXJjZSAq Y2xrc3JjKQotewotCWludCBjbHVzdGVyID0gcmF3X3NtcF9wcm9jZXNzb3JfaWQoKSA+PiBOUFNf Q0xVU1RFUl9PRkZTRVQ7Ci0KLQlyZXR1cm4gKHU2NClpb3JlYWQzMmJlKG5wc19tc3VfcmVnX2xv d19hZGRyW2NsdXN0ZXJdKTsKLX0KLQotc3RhdGljIGludCBfX2luaXQgbnBzX3NldHVwX2Nsb2Nr c291cmNlKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSkKLXsKLQlpbnQgcmV0LCBjbHVzdGVyOwot CXN0cnVjdCBjbGsgKmNsazsKLQl1bnNpZ25lZCBsb25nIG5wc190aW1lcjFfZnJlcTsKLQotCi0J Zm9yIChjbHVzdGVyID0gMDsgY2x1c3RlciA8IE5QU19DTFVTVEVSX05VTTsgY2x1c3RlcisrKQot CQlucHNfbXN1X3JlZ19sb3dfYWRkcltjbHVzdGVyXSA9Ci0JCQlucHNfaG9zdF9yZWcoKGNsdXN0 ZXIgPDwgTlBTX0NMVVNURVJfT0ZGU0VUKSwKLQkJCQkgICAgIE5QU19NU1VfQkxLSUQsIE5QU19N U1VfVElDS19MT1cpOwotCi0JcmV0ID0gbnBzX2dldF90aW1lcl9jbGsobm9kZSwgJm5wc190aW1l cjFfZnJlcSwgJmNsayk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQotCXJldCA9IGNsb2Nr c291cmNlX21taW9faW5pdChucHNfbXN1X3JlZ19sb3dfYWRkciwgIm5wcy10aWNrIiwKLQkJCQkg ICAgbnBzX3RpbWVyMV9mcmVxLCAzMDAsIDMyLCBucHNfY2xrc3JjX3JlYWQpOwotCWlmIChyZXQp IHsKLQkJcHJfZXJyKCJDb3VsZG4ndCByZWdpc3RlciBjbG9jayBzb3VyY2UuXG4iKTsKLQkJY2xr X2Rpc2FibGVfdW5wcmVwYXJlKGNsayk7Ci0JfQotCi0JcmV0dXJuIHJldDsKLX0KLQotVElNRVJf T0ZfREVDTEFSRShlemNoaXBfbnBzNDAwX2Nsa3NyYywgImV6Y2hpcCxucHM0MDAtdGltZXIiLAot CQkgICAgICAgbnBzX3NldHVwX2Nsb2Nrc291cmNlKTsKLVRJTUVSX09GX0RFQ0xBUkUoZXpjaGlw X25wczQwMF9jbGtfc3JjLCAiZXpjaGlwLG5wczQwMC10aW1lcjEiLAotCQkgICAgICAgbnBzX3Nl dHVwX2Nsb2Nrc291cmNlKTsKLQotI2lmZGVmIENPTkZJR19FWk5QU19NVE1fRVhUCi0jaW5jbHVk ZSA8c29jL25wcy9tdG0uaD4KLQotLyogVGltZXIgcmVsYXRlZCBBdXggcmVnaXN0ZXJzICovCi0j ZGVmaW5lIE5QU19SRUdfVElNRVIwX1RTSQkweEZGRkZGODUwCi0jZGVmaW5lIE5QU19SRUdfVElN RVIwX0xJTUlUCTB4MjMKLSNkZWZpbmUgTlBTX1JFR19USU1FUjBfQ1RSTAkweDIyCi0jZGVmaW5l IE5QU19SRUdfVElNRVIwX0NOVAkweDIxCi0KLS8qCi0gKiBJbnRlcnJ1cHQgRW5hYmxlZCAoSUUp IC0gcmUtYXJtIHRoZSB0aW1lcgotICogTm90IEhhbHRlZCAoTkgpIC0gaXMgY2xlYXJlZCB3aGVu IHdvcmtpbmcgd2l0aCBKVEFHIChmb3IgZGVidWcpCi0gKi8KLSNkZWZpbmUgVElNRVIwX0NUUkxf SUUJCUJJVCgwKQotI2RlZmluZSBUSU1FUjBfQ1RSTF9OSAkJQklUKDEpCi0KLXN0YXRpYyB1bnNp Z25lZCBsb25nIG5wc190aW1lcjBfZnJlcTsKLXN0YXRpYyB1bnNpZ25lZCBsb25nIG5wc190aW1l cjBfaXJxOwotCi1zdGF0aWMgdm9pZCBucHNfY2xrZXZlbnRfcm1fdGhyZWFkKHZvaWQpCi17Ci0J aW50IHRocmVhZDsKLQl1bnNpZ25lZCBpbnQgY2ZsYWdzLCBlbmFibGVkX3RocmVhZHM7Ci0KLQlo d19zY2hkX3NhdmUoJmNmbGFncyk7Ci0KLQllbmFibGVkX3RocmVhZHMgPSByZWFkX2F1eF9yZWco TlBTX1JFR19USU1FUjBfVFNJKTsKLQotCS8qIHJlbW92ZSB0aHJlYWQgZnJvbSBUU0kxICovCi0J dGhyZWFkID0gcmVhZF9hdXhfcmVnKENUT1BfQVVYX1RIUkVBRF9JRCk7Ci0JZW5hYmxlZF90aHJl YWRzICY9IH4oMSA8PCB0aHJlYWQpOwotCXdyaXRlX2F1eF9yZWcoTlBTX1JFR19USU1FUjBfVFNJ LCBlbmFibGVkX3RocmVhZHMpOwotCi0JLyogQWNrbm93bGVkZ2UgYW5kIGlmIG5lZWRlZCByZS1h cm0gdGhlIHRpbWVyICovCi0JaWYgKCFlbmFibGVkX3RocmVhZHMpCi0JCXdyaXRlX2F1eF9yZWco TlBTX1JFR19USU1FUjBfQ1RSTCwgVElNRVIwX0NUUkxfTkgpOwotCWVsc2UKLQkJd3JpdGVfYXV4 X3JlZyhOUFNfUkVHX1RJTUVSMF9DVFJMLAotCQkJICAgICAgVElNRVIwX0NUUkxfSUUgfCBUSU1F UjBfQ1RSTF9OSCk7Ci0KLQlod19zY2hkX3Jlc3RvcmUoY2ZsYWdzKTsKLX0KLQotc3RhdGljIHZv aWQgbnBzX2Nsa2V2ZW50X2FkZF90aHJlYWQodW5zaWduZWQgbG9uZyBkZWx0YSkKLXsKLQlpbnQg dGhyZWFkOwotCXVuc2lnbmVkIGludCBjZmxhZ3MsIGVuYWJsZWRfdGhyZWFkczsKLQotCWh3X3Nj aGRfc2F2ZSgmY2ZsYWdzKTsKLQotCS8qIGFkZCB0aHJlYWQgdG8gVFNJMSAqLwotCXRocmVhZCA9 IHJlYWRfYXV4X3JlZyhDVE9QX0FVWF9USFJFQURfSUQpOwotCWVuYWJsZWRfdGhyZWFkcyA9IHJl YWRfYXV4X3JlZyhOUFNfUkVHX1RJTUVSMF9UU0kpOwotCWVuYWJsZWRfdGhyZWFkcyB8PSAoMSA8 PCB0aHJlYWQpOwotCXdyaXRlX2F1eF9yZWcoTlBTX1JFR19USU1FUjBfVFNJLCBlbmFibGVkX3Ro cmVhZHMpOwotCi0JLyogc2V0IG5leHQgdGltZXIgZXZlbnQgKi8KLQl3cml0ZV9hdXhfcmVnKE5Q U19SRUdfVElNRVIwX0xJTUlULCBkZWx0YSk7Ci0Jd3JpdGVfYXV4X3JlZyhOUFNfUkVHX1RJTUVS MF9DTlQsIDApOwotCXdyaXRlX2F1eF9yZWcoTlBTX1JFR19USU1FUjBfQ1RSTCwKLQkJICAgICAg VElNRVIwX0NUUkxfSUUgfCBUSU1FUjBfQ1RSTF9OSCk7Ci0KLQlod19zY2hkX3Jlc3RvcmUoY2Zs YWdzKTsKLX0KLQotLyoKLSAqIFdoZW5ldmVyIGFueW9uZSB0cmllcyB0byBjaGFuZ2UgbW9kZXMs IHdlIGp1c3QgbWFzayBpbnRlcnJ1cHRzCi0gKiBhbmQgd2FpdCBmb3IgdGhlIG5leHQgZXZlbnQg dG8gZ2V0IHNldC4KLSAqLwotc3RhdGljIGludCBucHNfY2xrZXZlbnRfc2V0X3N0YXRlKHN0cnVj dCBjbG9ja19ldmVudF9kZXZpY2UgKmRldikKLXsKLQlucHNfY2xrZXZlbnRfcm1fdGhyZWFkKCk7 Ci0JZGlzYWJsZV9wZXJjcHVfaXJxKG5wc190aW1lcjBfaXJxKTsKLQotCXJldHVybiAwOwotfQot Ci1zdGF0aWMgaW50IG5wc19jbGtldmVudF9zZXRfbmV4dF9ldmVudCh1bnNpZ25lZCBsb25nIGRl bHRhLAotCQkJCSAgICAgICBzdHJ1Y3QgY2xvY2tfZXZlbnRfZGV2aWNlICpkZXYpCi17Ci0JbnBz X2Nsa2V2ZW50X2FkZF90aHJlYWQoZGVsdGEpOwotCWVuYWJsZV9wZXJjcHVfaXJxKG5wc190aW1l cjBfaXJxLCBJUlFfVFlQRV9OT05FKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgREVGSU5F X1BFUl9DUFUoc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSwgbnBzX2Nsb2NrZXZlbnRfZGV2aWNl KSA9IHsKLQkubmFtZQkJCQk9CSJOUFMgVGltZXIwIiwKLQkuZmVhdHVyZXMJCQk9CUNMT0NLX0VW VF9GRUFUX09ORVNIT1QsCi0JLnJhdGluZwkJCQk9CTMwMCwKLQkuc2V0X25leHRfZXZlbnQJCQk9 CW5wc19jbGtldmVudF9zZXRfbmV4dF9ldmVudCwKLQkuc2V0X3N0YXRlX29uZXNob3QJCT0JbnBz X2Nsa2V2ZW50X3NldF9zdGF0ZSwKLQkuc2V0X3N0YXRlX29uZXNob3Rfc3RvcHBlZAk9CW5wc19j bGtldmVudF9zZXRfc3RhdGUsCi0JLnNldF9zdGF0ZV9zaHV0ZG93bgkJPQlucHNfY2xrZXZlbnRf c2V0X3N0YXRlLAotCS50aWNrX3Jlc3VtZQkJCT0JbnBzX2Nsa2V2ZW50X3NldF9zdGF0ZSwKLX07 Ci0KLXN0YXRpYyBpcnFyZXR1cm5fdCB0aW1lcl9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpk ZXZfaWQpCi17Ci0Jc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSAqZXZ0ID0gZGV2X2lkOwotCi0J bnBzX2Nsa2V2ZW50X3JtX3RocmVhZCgpOwotCWV2dC0+ZXZlbnRfaGFuZGxlcihldnQpOwotCi0J cmV0dXJuIElSUV9IQU5ETEVEOwotfQotCi1zdGF0aWMgaW50IG5wc190aW1lcl9zdGFydGluZ19j cHUodW5zaWduZWQgaW50IGNwdSkKLXsKLQlzdHJ1Y3QgY2xvY2tfZXZlbnRfZGV2aWNlICpldnQg PSB0aGlzX2NwdV9wdHIoJm5wc19jbG9ja2V2ZW50X2RldmljZSk7Ci0KLQlldnQtPmNwdW1hc2sg PSBjcHVtYXNrX29mKHNtcF9wcm9jZXNzb3JfaWQoKSk7Ci0KLQljbG9ja2V2ZW50c19jb25maWdf YW5kX3JlZ2lzdGVyKGV2dCwgbnBzX3RpbWVyMF9mcmVxLCAwLCBVTE9OR19NQVgpOwotCWVuYWJs ZV9wZXJjcHVfaXJxKG5wc190aW1lcjBfaXJxLCBJUlFfVFlQRV9OT05FKTsKLQotCXJldHVybiAw OwotfQotCi1zdGF0aWMgaW50IG5wc190aW1lcl9keWluZ19jcHUodW5zaWduZWQgaW50IGNwdSkK LXsKLQlkaXNhYmxlX3BlcmNwdV9pcnEobnBzX3RpbWVyMF9pcnEpOwotCXJldHVybiAwOwotfQot Ci1zdGF0aWMgaW50IF9faW5pdCBucHNfc2V0dXBfY2xvY2tldmVudChzdHJ1Y3QgZGV2aWNlX25v ZGUgKm5vZGUpCi17Ci0Jc3RydWN0IGNsayAqY2xrOwotCWludCByZXQ7Ci0KLQlucHNfdGltZXIw X2lycSA9IGlycV9vZl9wYXJzZV9hbmRfbWFwKG5vZGUsIDApOwotCWlmIChucHNfdGltZXIwX2ly cSA8PSAwKSB7Ci0JCXByX2VycigiY2xvY2tldmVudDogbWlzc2luZyBpcnFcbiIpOwotCQlyZXR1 cm4gLUVJTlZBTDsKLQl9Ci0KLQlyZXQgPSBucHNfZ2V0X3RpbWVyX2Nsayhub2RlLCAmbnBzX3Rp bWVyMF9mcmVxLCAmY2xrKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0JLyogTmVlZHMg YXByaW9yaSBpcnFfc2V0X3BlcmNwdV9kZXZpZCgpIGRvbmUgaW4gaW50YyBtYXAgZnVuY3Rpb24g Ki8KLQlyZXQgPSByZXF1ZXN0X3BlcmNwdV9pcnEobnBzX3RpbWVyMF9pcnEsIHRpbWVyX2lycV9o YW5kbGVyLAotCQkJCSAiVGltZXIwIChwZXItY3B1LXRpY2spIiwKLQkJCQkgJm5wc19jbG9ja2V2 ZW50X2RldmljZSk7Ci0JaWYgKHJldCkgewotCQlwcl9lcnIoIkNvdWxkbid0IHJlcXVlc3QgaXJx XG4iKTsKLQkJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGNsayk7Ci0JCXJldHVybiByZXQ7Ci0JfQot Ci0JcmV0ID0gY3B1aHBfc2V0dXBfc3RhdGUoQ1BVSFBfQVBfQVJDX1RJTUVSX1NUQVJUSU5HLAot CQkJCSJjbG9ja2V2ZW50cy9ucHM6c3RhcnRpbmciLAotCQkJCW5wc190aW1lcl9zdGFydGluZ19j cHUsCi0JCQkJbnBzX3RpbWVyX2R5aW5nX2NwdSk7Ci0JaWYgKHJldCkgewotCQlwcl9lcnIoIkZh aWxlZCB0byBzZXR1cCBob3RwbHVnIHN0YXRlXG4iKTsKLQkJY2xrX2Rpc2FibGVfdW5wcmVwYXJl KGNsayk7Ci0JCWZyZWVfcGVyY3B1X2lycShucHNfdGltZXIwX2lycSwgJm5wc19jbG9ja2V2ZW50 X2RldmljZSk7Ci0JCXJldHVybiByZXQ7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KLVRJTUVSX09G X0RFQ0xBUkUoZXpjaGlwX25wczQwMF9jbGtfZXZ0LCAiZXpjaGlwLG5wczQwMC10aW1lcjAiLAot CQkgICAgICAgbnBzX3NldHVwX2Nsb2NrZXZlbnQpOwotI2VuZGlmIC8qIENPTkZJR19FWk5QU19N VE1fRVhUICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsb2Nrc291cmNlL3RpbWVyLW9yaW9uLmMg Yi9kcml2ZXJzL2Nsb2Nrc291cmNlL3RpbWVyLW9yaW9uLmMKaW5kZXggZDAxZmY0MTgxODY3Li41 MTAxZTgzNGQ3OGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xvY2tzb3VyY2UvdGltZXItb3Jpb24u YworKysgYi9kcml2ZXJzL2Nsb2Nrc291cmNlL3RpbWVyLW9yaW9uLmMKQEAgLTE0Myw3ICsxNDMs OCBAQCBzdGF0aWMgaW50IF9faW5pdCBvcmlvbl90aW1lcl9pbml0KHN0cnVjdCBkZXZpY2Vfbm9k ZSAqbnApCiAJaXJxID0gaXJxX29mX3BhcnNlX2FuZF9tYXAobnAsIDEpOwogCWlmIChpcnEgPD0g MCkgewogCQlwcl9lcnIoIiVwT0ZuOiB1bmFibGUgdG8gcGFyc2UgdGltZXIxIGlycVxuIiwgbnAp OwotCQlyZXR1cm4gLUVJTlZBTDsKKwkJcmV0ID0gLUVJTlZBTDsKKwkJZ290byBvdXRfdW5wcmVw X2NsazsKIAl9CiAKIAlyYXRlID0gY2xrX2dldF9yYXRlKGNsayk7CkBAIC0xNjAsNyArMTYxLDcg QEAgc3RhdGljIGludCBfX2luaXQgb3Jpb25fdGltZXJfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUg Km5wKQogCQkJCSAgICBjbG9ja3NvdXJjZV9tbWlvX3JlYWRsX2Rvd24pOwogCWlmIChyZXQpIHsK IAkJcHJfZXJyKCJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBtbWlvIHRpbWVyXG4iKTsKLQkJcmV0dXJu IHJldDsKKwkJZ290byBvdXRfdW5wcmVwX2NsazsKIAl9CiAKIAlzY2hlZF9jbG9ja19yZWdpc3Rl cihvcmlvbl9yZWFkX3NjaGVkX2Nsb2NrLCAzMiwgcmF0ZSk7CkBAIC0xNzAsNyArMTcxLDcgQEAg c3RhdGljIGludCBfX2luaXQgb3Jpb25fdGltZXJfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5w KQogCQkJICAib3Jpb25fZXZlbnQiLCBOVUxMKTsKIAlpZiAocmV0KSB7CiAJCXByX2VycigiJXBP Rm46IHVuYWJsZSB0byBzZXR1cCBpcnFcbiIsIG5wKTsKLQkJcmV0dXJuIHJldDsKKwkJZ290byBv dXRfdW5wcmVwX2NsazsKIAl9CiAKIAl0aWNrc19wZXJfamlmZnkgPSAoY2xrX2dldF9yYXRlKGNs aykgKyBIWi8yKSAvIEhaOwpAQCAtMTgzLDUgKzE4NCw5IEBAIHN0YXRpYyBpbnQgX19pbml0IG9y aW9uX3RpbWVyX2luaXQoc3RydWN0IGRldmljZV9ub2RlICpucCkKIAlvcmlvbl9kZWxheV90aW1l cl9pbml0KHJhdGUpOwogCiAJcmV0dXJuIDA7CisKK291dF91bnByZXBfY2xrOgorCWNsa19kaXNh YmxlX3VucHJlcGFyZShjbGspOworCXJldHVybiByZXQ7CiB9CiBUSU1FUl9PRl9ERUNMQVJFKG9y aW9uX3RpbWVyLCAibWFydmVsbCxvcmlvbi10aW1lciIsIG9yaW9uX3RpbWVyX2luaXQpOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9jbG9ja3NvdXJjZS90aW1lci1zcDgwNC5jIGIvZHJpdmVycy9jbG9j a3NvdXJjZS90aW1lci1zcDgwNC5jCmluZGV4IDZlOGFkNGE0ZWEzYy4uNDAxZDU5MmU4NWY1IDEw MDY0NAotLS0gYS9kcml2ZXJzL2Nsb2Nrc291cmNlL3RpbWVyLXNwODA0LmMKKysrIGIvZHJpdmVy cy9jbG9ja3NvdXJjZS90aW1lci1zcDgwNC5jCkBAIC01LDYgKzUsOSBAQAogICogIENvcHlyaWdo dCAoQykgMTk5OSAtIDIwMDMgQVJNIExpbWl0ZWQKICAqICBDb3B5cmlnaHQgKEMpIDIwMDAgRGVl cCBCbHVlIFNvbHV0aW9ucyBMdGQKICAqLworCisjZGVmaW5lIHByX2ZtdChmbXQpICAgIEtCVUlM RF9NT0ROQU1FICI6ICIgZm10CisKICNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxs aW51eC9jbG9ja3NvdXJjZS5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsb2NrY2hpcHMuaD4KQEAgLTM0 LDggKzM3LDcgQEAKICNkZWZpbmUgSElTSV9USU1FUl9CR0xPQUQJMHgyMAogI2RlZmluZSBISVNJ X1RJTUVSX0JHTE9BRF9ICTB4MjQKIAotCi1zdHJ1Y3Qgc3A4MDRfdGltZXIgX19pbml0ZGF0YSBh cm1fc3A4MDRfdGltZXIgPSB7CitzdGF0aWMgc3RydWN0IHNwODA0X3RpbWVyIGFybV9zcDgwNF90 aW1lciBfX2luaXRkYXRhID0gewogCS5sb2FkCQk9IFRJTUVSX0xPQUQsCiAJLnZhbHVlCQk9IFRJ TUVSX1ZBTFVFLAogCS5jdHJsCQk9IFRJTUVSX0NUUkwsCkBAIC00NCw3ICs0Niw3IEBAIHN0cnVj dCBzcDgwNF90aW1lciBfX2luaXRkYXRhIGFybV9zcDgwNF90aW1lciA9IHsKIAkud2lkdGgJCT0g MzIsCiB9OwogCi1zdHJ1Y3Qgc3A4MDRfdGltZXIgX19pbml0ZGF0YSBoaXNpX3NwODA0X3RpbWVy ID0geworc3RhdGljIHN0cnVjdCBzcDgwNF90aW1lciBoaXNpX3NwODA0X3RpbWVyIF9faW5pdGRh dGEgPSB7CiAJLmxvYWQJCT0gSElTSV9USU1FUl9MT0FELAogCS5sb2FkX2gJCT0gSElTSV9USU1F Ul9MT0FEX0gsCiAJLnZhbHVlCQk9IEhJU0lfVElNRVJfVkFMVUUsCkBAIC01OSw0MCArNjEsMjMg QEAgc3RhdGljIHN0cnVjdCBzcDgwNF9jbGtldnQgc3A4MDRfY2xrZXZ0W05SX1RJTUVSU107CiAK IHN0YXRpYyBsb25nIF9faW5pdCBzcDgwNF9nZXRfY2xvY2tfcmF0ZShzdHJ1Y3QgY2xrICpjbGss IGNvbnN0IGNoYXIgKm5hbWUpCiB7Ci0JbG9uZyByYXRlOwogCWludCBlcnI7CiAKIAlpZiAoIWNs aykKIAkJY2xrID0gY2xrX2dldF9zeXMoInNwODA0IiwgbmFtZSk7CiAJaWYgKElTX0VSUihjbGsp KSB7Ci0JCXByX2Vycigic3A4MDQ6ICVzIGNsb2NrIG5vdCBmb3VuZDogJWxkXG4iLCBuYW1lLCBQ VFJfRVJSKGNsaykpOworCQlwcl9lcnIoIiVzIGNsb2NrIG5vdCBmb3VuZDogJWxkXG4iLCBuYW1l LCBQVFJfRVJSKGNsaykpOwogCQlyZXR1cm4gUFRSX0VSUihjbGspOwogCX0KIAotCWVyciA9IGNs a19wcmVwYXJlKGNsayk7Ci0JaWYgKGVycikgewotCQlwcl9lcnIoInNwODA0OiBjbG9jayBmYWls ZWQgdG8gcHJlcGFyZTogJWRcbiIsIGVycik7Ci0JCWNsa19wdXQoY2xrKTsKLQkJcmV0dXJuIGVy cjsKLQl9Ci0KLQllcnIgPSBjbGtfZW5hYmxlKGNsayk7CisJZXJyID0gY2xrX3ByZXBhcmVfZW5h YmxlKGNsayk7CiAJaWYgKGVycikgewotCQlwcl9lcnIoInNwODA0OiBjbG9jayBmYWlsZWQgdG8g ZW5hYmxlOiAlZFxuIiwgZXJyKTsKLQkJY2xrX3VucHJlcGFyZShjbGspOworCQlwcl9lcnIoImNs b2NrIGZhaWxlZCB0byBlbmFibGU6ICVkXG4iLCBlcnIpOwogCQljbGtfcHV0KGNsayk7CiAJCXJl dHVybiBlcnI7CiAJfQogCi0JcmF0ZSA9IGNsa19nZXRfcmF0ZShjbGspOwotCWlmIChyYXRlIDwg MCkgewotCQlwcl9lcnIoInNwODA0OiBjbG9jayBmYWlsZWQgdG8gZ2V0IHJhdGU6ICVsZFxuIiwg cmF0ZSk7Ci0JCWNsa19kaXNhYmxlKGNsayk7Ci0JCWNsa191bnByZXBhcmUoY2xrKTsKLQkJY2xr X3B1dChjbGspOwotCX0KLQotCXJldHVybiByYXRlOworCXJldHVybiBjbGtfZ2V0X3JhdGUoY2xr KTsKIH0KIAogc3RhdGljIHN0cnVjdCBzcDgwNF9jbGtldnQgKiBfX2luaXQgc3A4MDRfY2xrZXZ0 X2dldCh2b2lkIF9faW9tZW0gKmJhc2UpCkBAIC0xMTcsMTAgKzEwMiwxMCBAQCBzdGF0aWMgdTY0 IG5vdHJhY2Ugc3A4MDRfcmVhZCh2b2lkKQogCXJldHVybiB+cmVhZGxfcmVsYXhlZChzY2hlZF9j bGtldnQtPnZhbHVlKTsKIH0KIAotaW50IF9faW5pdCBzcDgwNF9jbG9ja3NvdXJjZV9hbmRfc2No ZWRfY2xvY2tfaW5pdCh2b2lkIF9faW9tZW0gKmJhc2UsCi0JCQkJCQkgIGNvbnN0IGNoYXIgKm5h bWUsCi0JCQkJCQkgIHN0cnVjdCBjbGsgKmNsaywKLQkJCQkJCSAgaW50IHVzZV9zY2hlZF9jbG9j aykKK3N0YXRpYyBpbnQgX19pbml0IHNwODA0X2Nsb2Nrc291cmNlX2FuZF9zY2hlZF9jbG9ja19p bml0KHZvaWQgX19pb21lbSAqYmFzZSwKKwkJCQkJCQkgY29uc3QgY2hhciAqbmFtZSwKKwkJCQkJ CQkgc3RydWN0IGNsayAqY2xrLAorCQkJCQkJCSBpbnQgdXNlX3NjaGVkX2Nsb2NrKQogewogCWxv bmcgcmF0ZTsKIAlzdHJ1Y3Qgc3A4MDRfY2xrZXZ0ICpjbGtldnQ7CkBAIC0yMTYsOCArMjAxLDgg QEAgc3RhdGljIHN0cnVjdCBjbG9ja19ldmVudF9kZXZpY2Ugc3A4MDRfY2xvY2tldmVudCA9IHsK IAkucmF0aW5nCQkJPSAzMDAsCiB9OwogCi1pbnQgX19pbml0IHNwODA0X2Nsb2NrZXZlbnRzX2lu aXQodm9pZCBfX2lvbWVtICpiYXNlLCB1bnNpZ25lZCBpbnQgaXJxLAotCQkJCSAgc3RydWN0IGNs ayAqY2xrLCBjb25zdCBjaGFyICpuYW1lKQorc3RhdGljIGludCBfX2luaXQgc3A4MDRfY2xvY2tl dmVudHNfaW5pdCh2b2lkIF9faW9tZW0gKmJhc2UsIHVuc2lnbmVkIGludCBpcnEsCisJCQkJCSBz dHJ1Y3QgY2xrICpjbGssIGNvbnN0IGNoYXIgKm5hbWUpCiB7CiAJc3RydWN0IGNsb2NrX2V2ZW50 X2RldmljZSAqZXZ0ID0gJnNwODA0X2Nsb2NrZXZlbnQ7CiAJbG9uZyByYXRlOwpAQCAtMjM2LDcg KzIyMSw3IEBAIGludCBfX2luaXQgc3A4MDRfY2xvY2tldmVudHNfaW5pdCh2b2lkIF9faW9tZW0g KmJhc2UsIHVuc2lnbmVkIGludCBpcnEsCiAKIAlpZiAocmVxdWVzdF9pcnEoaXJxLCBzcDgwNF90 aW1lcl9pbnRlcnJ1cHQsIElSUUZfVElNRVIgfCBJUlFGX0lSUVBPTEwsCiAJCQkidGltZXIiLCAm c3A4MDRfY2xvY2tldmVudCkpCi0JCXByX2VycigiJXM6IHJlcXVlc3RfaXJxKCkgZmFpbGVkXG4i LCAidGltZXIiKTsKKwkJcHJfZXJyKCJyZXF1ZXN0X2lycSgpIGZhaWxlZFxuIik7CiAJY2xvY2tl dmVudHNfY29uZmlnX2FuZF9yZWdpc3RlcihldnQsIHJhdGUsIDB4ZiwgMHhmZmZmZmZmZik7CiAK IAlyZXR1cm4gMDsKQEAgLTI5OCw3ICsyODMsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBzcDgwNF9v Zl9pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsIHN0cnVjdCBzcDgwNF90aW1lciAqdGltZQog CWlmIChvZl9jbGtfZ2V0X3BhcmVudF9jb3VudChucCkgPT0gMykgewogCQljbGsyID0gb2ZfY2xr X2dldChucCwgMSk7CiAJCWlmIChJU19FUlIoY2xrMikpIHsKLQkJCXByX2Vycigic3A4MDQ6ICVw T0ZuIGNsb2NrIG5vdCBmb3VuZDogJWRcbiIsIG5wLAorCQkJcHJfZXJyKCIlcE9GbiBjbG9jayBu b3QgZm91bmQ6ICVkXG4iLCBucCwKIAkJCQkoaW50KVBUUl9FUlIoY2xrMikpOwogCQkJY2xrMiA9 IE5VTEw7CiAJCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL01ha2VmaWxlIGIvZHJpdmVycy9y dGMvTWFrZWZpbGUKaW5kZXggYmZiNTc0NjQxMThkLi5iYjhmMzE5YjA5ZmIgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvcnRjL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvcnRjL01ha2VmaWxlCkBAIC02LDcg KzYsNiBAQAogY2NmbGFncy0kKENPTkZJR19SVENfREVCVUcpCTo9IC1EREVCVUcKIAogb2JqLSQo Q09ORklHX1JUQ19MSUIpCQkrPSBsaWIubwotb2JqLSQoQ09ORklHX1JUQ19TWVNUT0hDKQkrPSBz eXN0b2hjLm8KIG9iai0kKENPTkZJR19SVENfQ0xBU1MpCQkrPSBydGMtY29yZS5vCiBvYmotJChD T05GSUdfUlRDX01DMTQ2ODE4X0xJQikJKz0gcnRjLW1jMTQ2ODE4LWxpYi5vCiBydGMtY29yZS15 CQkJOj0gY2xhc3MubyBpbnRlcmZhY2UubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvY2xhc3Mu YyBiL2RyaXZlcnMvcnRjL2NsYXNzLmMKaW5kZXggN2M4OGQxOTBjNTFmLi41ODU1YWEyZWVmNjIg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL2NsYXNzLmMKKysrIGIvZHJpdmVycy9ydGMvY2xhc3Mu YwpAQCAtMjAwLDggKzIwMCwxMyBAQCBzdGF0aWMgc3RydWN0IHJ0Y19kZXZpY2UgKnJ0Y19hbGxv Y2F0ZV9kZXZpY2Uodm9pZCkKIAogCWRldmljZV9pbml0aWFsaXplKCZydGMtPmRldik7CiAKLQkv KiBEcml2ZXJzIGNhbiByZXZpc2UgdGhpcyBkZWZhdWx0IGFmdGVyIGFsbG9jYXRpbmcgdGhlIGRl dmljZS4gKi8KLQlydGMtPnNldF9vZmZzZXRfbnNlYyA9ICBOU0VDX1BFUl9TRUMgLyAyOworCS8q CisJICogRHJpdmVycyBjYW4gcmV2aXNlIHRoaXMgZGVmYXVsdCBhZnRlciBhbGxvY2F0aW5nIHRo ZSBkZXZpY2UuCisJICogVGhlIGRlZmF1bHQgaXMgd2hhdCBtb3N0IFJUQ3MgZG86IEluY3JlbWVu dCBzZWNvbmRzIGV4YWN0bHkgb25lCisJICogc2Vjb25kIGFmdGVyIHRoZSB3cml0ZSBoYXBwZW5l ZC4gVGhpcyBhZGRzIGEgZGVmYXVsdCB0cmFuc3BvcnQKKwkgKiB0aW1lIG9mIDVtcyB3aGljaCBp cyBhdCBsZWFzdCBoYWxmd2F5cyBjbG9zZSB0byByZWFsaXR5LgorCSAqLworCXJ0Yy0+c2V0X29m ZnNldF9uc2VjID0gTlNFQ19QRVJfU0VDICsgNSAqIE5TRUNfUEVSX01TRUM7CiAKIAlydGMtPmly cV9mcmVxID0gMTsKIAlydGMtPm1heF91c2VyX2ZyZXEgPSA2NDsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvcnRjL3J0Yy1jbW9zLmMgYi9kcml2ZXJzL3J0Yy9ydGMtY21vcy5jCmluZGV4IGM2MzMzMTlj ZGI5MS4uYzViY2QyYWRjOWZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtY21vcy5jCisr KyBiL2RyaXZlcnMvcnRjL3J0Yy1jbW9zLmMKQEAgLTg2OCw2ICs4NjgsOSBAQCBjbW9zX2RvX3By b2JlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJlc291cmNlICpwb3J0cywgaW50IHJ0Y19p cnEpCiAJaWYgKHJldHZhbCkKIAkJZ290byBjbGVhbnVwMjsKIAorCS8qIFNldCB0aGUgc3luYyBv ZmZzZXQgZm9yIHRoZSBwZXJpb2RpYyAxMW1pbiB1cGRhdGUgY29ycmVjdCAqLworCWNtb3NfcnRj LnJ0Yy0+c2V0X29mZnNldF9uc2VjID0gTlNFQ19QRVJfU0VDIC8gMjsKKwogCS8qIGV4cG9ydCBh dCBsZWFzdCB0aGUgZmlyc3QgYmxvY2sgb2YgTlZSQU0gKi8KIAludm1lbV9jZmcuc2l6ZSA9IGFk ZHJlc3Nfc3BhY2UgLSBOVlJBTV9PRkZTRVQ7CiAJaWYgKHJ0Y19udm1lbV9yZWdpc3RlcihjbW9z X3J0Yy5ydGMsICZudm1lbV9jZmcpKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLW1jMTQ2 ODE4LWxpYi5jIGIvZHJpdmVycy9ydGMvcnRjLW1jMTQ2ODE4LWxpYi5jCmluZGV4IDJlY2Q4NzUy YjA4OC4uOTcyYTViOWE2MjlkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtbWMxNDY4MTgt bGliLmMKKysrIGIvZHJpdmVycy9ydGMvcnRjLW1jMTQ2ODE4LWxpYi5jCkBAIC04LDQxICs4LDQx IEBACiAjaW5jbHVkZSA8bGludXgvYWNwaS5oPgogI2VuZGlmCiAKLS8qCi0gKiBSZXR1cm5zIHRy dWUgaWYgYSBjbG9jayB1cGRhdGUgaXMgaW4gcHJvZ3Jlc3MKLSAqLwotc3RhdGljIGlubGluZSB1 bnNpZ25lZCBjaGFyIG1jMTQ2ODE4X2lzX3VwZGF0aW5nKHZvaWQpCi17Ci0JdW5zaWduZWQgY2hh ciB1aXA7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZydGNf bG9jaywgZmxhZ3MpOwotCXVpcCA9IChDTU9TX1JFQUQoUlRDX0ZSRVFfU0VMRUNUKSAmIFJUQ19V SVApOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnJ0Y19sb2NrLCBmbGFncyk7Ci0JcmV0dXJu IHVpcDsKLX0KLQogdW5zaWduZWQgaW50IG1jMTQ2ODE4X2dldF90aW1lKHN0cnVjdCBydGNfdGlt ZSAqdGltZSkKIHsKIAl1bnNpZ25lZCBjaGFyIGN0cmw7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsK IAl1bnNpZ25lZCBjaGFyIGNlbnR1cnkgPSAwOworCWJvb2wgcmV0cnk7CiAKICNpZmRlZiBDT05G SUdfTUFDSF9ERUNTVEFUSU9OCiAJdW5zaWduZWQgaW50IHJlYWxfeWVhcjsKICNlbmRpZgogCith Z2FpbjoKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcnRjX2xvY2ssIGZsYWdzKTsKIAkvKgotCSAqIHJl YWQgUlRDIG9uY2UgYW55IHVwZGF0ZSBpbiBwcm9ncmVzcyBpcyBkb25lLiBUaGUgdXBkYXRlCi0J ICogY2FuIHRha2UganVzdCBvdmVyIDJtcy4gV2Ugd2FpdCAyMG1zLiBUaGVyZSBpcyBubyBuZWVk IHRvCi0JICogdG8gcG9sbC13YWl0ICh1cCB0byAxcyAtIGVlY2NjaCkgZm9yIHRoZSBmYWxsaW5n IGVkZ2Ugb2YgUlRDX1VJUC4KLQkgKiBJZiB5b3UgbmVlZCB0byBrbm93ICpleGFjdGx5KiB3aGVu IGEgc2Vjb25kIGhhcyBzdGFydGVkLCBlbmFibGUKLQkgKiBwZXJpb2RpYyB1cGRhdGUgY29tcGxl dGUgaW50ZXJydXB0cywgKHZpYSBpb2N0bCkgYW5kIHRoZW4KLQkgKiBpbW1lZGlhdGVseSByZWFk IC9kZXYvcnRjIHdoaWNoIHdpbGwgYmxvY2sgdW50aWwgeW91IGdldCB0aGUgSVJRLgotCSAqIE9u Y2UgdGhlIHJlYWQgY2xlYXJzLCByZWFkIHRoZSBSVEMgdGltZSAoYWdhaW4gdmlhIGlvY3RsKS4g RWFzeS4KKwkgKiBDaGVjayB3aGV0aGVyIHRoZXJlIGlzIGFuIHVwZGF0ZSBpbiBwcm9ncmVzcyBk dXJpbmcgd2hpY2ggdGhlCisJICogcmVhZG91dCBpcyB1bnNwZWNpZmllZC4gVGhlIG1heGltdW0g dXBkYXRlIHRpbWUgaXMgfjJtcy4gUG9sbAorCSAqIGV2ZXJ5IG1zZWMgZm9yIGNvbXBsZXRpb24u CisJICoKKwkgKiBTdG9yZSB0aGUgc2Vjb25kIHZhbHVlIGJlZm9yZSBjaGVja2luZyBVSVAgc28g YSBsb25nIGxhc3RpbmcgTk1JCisJICogd2hpY2ggaGFwcGVucyB0byBoaXQgYWZ0ZXIgdGhlIFVJ UCBjaGVjayBjYW5ub3QgbWFrZSBhbiB1cGRhdGUKKwkgKiBjeWNsZSBpbnZpc2libGUuCiAJICov Ci0JaWYgKG1jMTQ2ODE4X2lzX3VwZGF0aW5nKCkpCi0JCW1kZWxheSgyMCk7CisJdGltZS0+dG1f c2VjID0gQ01PU19SRUFEKFJUQ19TRUNPTkRTKTsKKworCWlmIChDTU9TX1JFQUQoUlRDX0ZSRVFf U0VMRUNUKSAmIFJUQ19VSVApIHsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcnRjX2xvY2ss IGZsYWdzKTsKKwkJbWRlbGF5KDEpOworCQlnb3RvIGFnYWluOworCX0KKworCS8qIFJldmFsaWRh dGUgdGhlIGFib3ZlIHJlYWRvdXQgKi8KKwlpZiAodGltZS0+dG1fc2VjICE9IENNT1NfUkVBRChS VENfU0VDT05EUykpIHsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcnRjX2xvY2ssIGZsYWdz KTsKKwkJZ290byBhZ2FpbjsKKwl9CiAKIAkvKgogCSAqIE9ubHkgdGhlIHZhbHVlcyB0aGF0IHdl IHJlYWQgZnJvbSB0aGUgUlRDIGFyZSBzZXQuIFdlIGxlYXZlCkBAIC01MCw4ICs1MCw2IEBAIHVu c2lnbmVkIGludCBtYzE0NjgxOF9nZXRfdGltZShzdHJ1Y3QgcnRjX3RpbWUgKnRpbWUpCiAJICog UlRDIGhhcyBSVENfREFZX09GX1dFRUssIHdlIGlnbm9yZSBpdCwgYXMgaXQgaXMgb25seSB1cGRh dGVkCiAJICogYnkgdGhlIFJUQyB3aGVuIGluaXRpYWxseSBzZXQgdG8gYSBub24temVybyB2YWx1 ZS4KIAkgKi8KLQlzcGluX2xvY2tfaXJxc2F2ZSgmcnRjX2xvY2ssIGZsYWdzKTsKLQl0aW1lLT50 bV9zZWMgPSBDTU9TX1JFQUQoUlRDX1NFQ09ORFMpOwogCXRpbWUtPnRtX21pbiA9IENNT1NfUkVB RChSVENfTUlOVVRFUyk7CiAJdGltZS0+dG1faG91ciA9IENNT1NfUkVBRChSVENfSE9VUlMpOwog CXRpbWUtPnRtX21kYXkgPSBDTU9TX1JFQUQoUlRDX0RBWV9PRl9NT05USCk7CkBAIC02Niw4ICs2 NCwyNCBAQCB1bnNpZ25lZCBpbnQgbWMxNDY4MThfZ2V0X3RpbWUoc3RydWN0IHJ0Y190aW1lICp0 aW1lKQogCQljZW50dXJ5ID0gQ01PU19SRUFEKGFjcGlfZ2JsX0ZBRFQuY2VudHVyeSk7CiAjZW5k aWYKIAljdHJsID0gQ01PU19SRUFEKFJUQ19DT05UUk9MKTsKKwkvKgorCSAqIENoZWNrIGZvciB0 aGUgVUlQIGJpdCBhZ2Fpbi4gSWYgaXQgaXMgc2V0IG5vdyB0aGVuCisJICogdGhlIGFib3ZlIHZh bHVlcyBtYXkgY29udGFpbiBnYXJiYWdlLgorCSAqLworCXJldHJ5ID0gQ01PU19SRUFEKFJUQ19G UkVRX1NFTEVDVCkgJiBSVENfVUlQOworCS8qCisJICogQSBOTUkgbWlnaHQgaGF2ZSBpbnRlcnJ1 cHRlZCB0aGUgYWJvdmUgc2VxdWVuY2Ugc28gY2hlY2sgd2hldGhlcgorCSAqIHRoZSBzZWNvbmRz IHZhbHVlIGhhcyBjaGFuZ2VkIHdoaWNoIGluZGljYXRlcyB0aGF0IHRoZSBOTUkgdG9vaworCSAq IGxvbmdlciB0aGFuIHRoZSBVSVAgYml0IHdhcyBzZXQuIFVubGlrZWx5LCBidXQgcG9zc2libGUg YW5kCisJICogdGhlcmUgaXMgYWxzbyB2aXJ0Li4uCisJICovCisJcmV0cnkgfD0gdGltZS0+dG1f c2VjICE9IENNT1NfUkVBRChSVENfU0VDT05EUyk7CisKIAlzcGluX3VubG9ja19pcnFyZXN0b3Jl KCZydGNfbG9jaywgZmxhZ3MpOwogCisJaWYgKHJldHJ5KQorCQlnb3RvIGFnYWluOworCiAJaWYg KCEoY3RybCAmIFJUQ19ETV9CSU5BUlkpIHx8IFJUQ19BTFdBWVNfQkNEKQogCXsKIAkJdGltZS0+ dG1fc2VjID0gYmNkMmJpbih0aW1lLT50bV9zZWMpOwpAQCAtMTIxLDcgKzEzNSw2IEBAIGludCBt YzE0NjgxOF9zZXRfdGltZShzdHJ1Y3QgcnRjX3RpbWUgKnRpbWUpCiAJaWYgKHlycyA+IDI1NSkJ LyogVGhleSBhcmUgdW5zaWduZWQgKi8KIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlzcGluX2xvY2tf aXJxc2F2ZSgmcnRjX2xvY2ssIGZsYWdzKTsKICNpZmRlZiBDT05GSUdfTUFDSF9ERUNTVEFUSU9O CiAJcmVhbF95cnMgPSB5cnM7CiAJbGVhcF95ciA9ICgoISgoeXJzICsgMTkwMCkgJSA0KSAmJiAo KHlycyArIDE5MDApICUgMTAwKSkgfHwKQEAgLTE1MCwxMCArMTYzLDggQEAgaW50IG1jMTQ2ODE4 X3NldF90aW1lKHN0cnVjdCBydGNfdGltZSAqdGltZSkKIAkvKiBUaGVzZSBsaW1pdHMgYW5kIGFk anVzdG1lbnRzIGFyZSBpbmRlcGVuZGVudCBvZgogCSAqIHdoZXRoZXIgdGhlIGNoaXAgaXMgaW4g YmluYXJ5IG1vZGUgb3Igbm90LgogCSAqLwotCWlmICh5cnMgPiAxNjkpIHsKLQkJc3Bpbl91bmxv Y2tfaXJxcmVzdG9yZSgmcnRjX2xvY2ssIGZsYWdzKTsKKwlpZiAoeXJzID4gMTY5KQogCQlyZXR1 cm4gLUVJTlZBTDsKLQl9CiAKIAlpZiAoeXJzID49IDEwMCkKIAkJeXJzIC09IDEwMDsKQEAgLTE2 OSw2ICsxODAsNyBAQCBpbnQgbWMxNDY4MThfc2V0X3RpbWUoc3RydWN0IHJ0Y190aW1lICp0aW1l KQogCQljZW50dXJ5ID0gYmluMmJjZChjZW50dXJ5KTsKIAl9CiAKKwlzcGluX2xvY2tfaXJxc2F2 ZSgmcnRjX2xvY2ssIGZsYWdzKTsKIAlzYXZlX2NvbnRyb2wgPSBDTU9TX1JFQUQoUlRDX0NPTlRS T0wpOwogCUNNT1NfV1JJVEUoKHNhdmVfY29udHJvbHxSVENfU0VUKSwgUlRDX0NPTlRST0wpOwog CXNhdmVfZnJlcV9zZWxlY3QgPSBDTU9TX1JFQUQoUlRDX0ZSRVFfU0VMRUNUKTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvcnRjL3N5c3RvaGMuYyBiL2RyaXZlcnMvcnRjL3N5c3RvaGMuYwpkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGI3MGYwNTIwZTEzLi4wMDAwMDAwMDAwMDAKLS0tIGEv ZHJpdmVycy9ydGMvc3lzdG9oYy5jCisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAotLy8g U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKLSNpbmNsdWRlIDxsaW51eC9ydGMuaD4K LSNpbmNsdWRlIDxsaW51eC90aW1lLmg+Ci0KLS8qKgotICogcnRjX3NldF9udHBfdGltZSAtIFNh dmUgTlRQIHN5bmNocm9uaXplZCB0aW1lIHRvIHRoZSBSVEMKLSAqIEBub3c6IEN1cnJlbnQgdGlt ZSBvZiBkYXkKLSAqIEB0YXJnZXRfbnNlYzogcG9pbnRlciBmb3IgZGVzaXJlZCBub3ctPnR2X25z ZWMgdmFsdWUKLSAqCi0gKiBSZXBsYWNlbWVudCBmb3IgdGhlIE5UUCBwbGF0Zm9ybSBmdW5jdGlv biB1cGRhdGVfcGVyc2lzdGVudF9jbG9jazY0Ci0gKiB0aGF0IHN0b3JlcyB0aW1lIGZvciBsYXRl ciByZXRyaWV2YWwgYnkgcnRjX2hjdG9zeXMuCi0gKgotICogUmV0dXJucyAwIG9uIHN1Y2Nlc3Nm dWwgUlRDIHVwZGF0ZSwgLUVOT0RFViBpZiBhIFJUQyB1cGRhdGUgaXMgbm90Ci0gKiBwb3NzaWJs ZSBhdCBhbGwsIGFuZCB2YXJpb3VzIG90aGVyIC1lcnJubyBmb3Igc3BlY2lmaWMgdGVtcG9yYXJ5 IGZhaWx1cmUKLSAqIGNhc2VzLgotICoKLSAqIC1FUFJPVE8gaXMgcmV0dXJuZWQgaWYgbm93LnR2 X25zZWMgaXMgbm90IGNsb3NlIGVub3VnaCB0byAqdGFyZ2V0X25zZWMuCi0gKgotICogSWYgdGVt cG9yYXJ5IGZhaWx1cmUgaXMgaW5kaWNhdGVkIHRoZSBjYWxsZXIgc2hvdWxkIHRyeSBhZ2FpbiAn c29vbicKLSAqLwotaW50IHJ0Y19zZXRfbnRwX3RpbWUoc3RydWN0IHRpbWVzcGVjNjQgbm93LCB1 bnNpZ25lZCBsb25nICp0YXJnZXRfbnNlYykKLXsKLQlzdHJ1Y3QgcnRjX2RldmljZSAqcnRjOwot CXN0cnVjdCBydGNfdGltZSB0bTsKLQlzdHJ1Y3QgdGltZXNwZWM2NCB0b19zZXQ7Ci0JaW50IGVy ciA9IC1FTk9ERVY7Ci0JYm9vbCBvazsKLQotCXJ0YyA9IHJ0Y19jbGFzc19vcGVuKENPTkZJR19S VENfU1lTVE9IQ19ERVZJQ0UpOwotCWlmICghcnRjKQotCQlnb3RvIG91dF9lcnI7Ci0KLQlpZiAo IXJ0Yy0+b3BzIHx8ICFydGMtPm9wcy0+c2V0X3RpbWUpCi0JCWdvdG8gb3V0X2Nsb3NlOwotCi0J LyogQ29tcHV0ZSB0aGUgdmFsdWUgb2YgdHZfbnNlYyB3ZSByZXF1aXJlIHRoZSBjYWxsZXIgdG8g c3VwcGx5IGluCi0JICogbm93LnR2X25zZWMuICBUaGlzIGlzIHRoZSB2YWx1ZSBzdWNoIHRoYXQg KG5vdyArCi0JICogc2V0X29mZnNldF9uc2VjKS50dl9uc2VjID09IDAuCi0JICovCi0Jc2V0X25v cm1hbGl6ZWRfdGltZXNwZWM2NCgmdG9fc2V0LCAwLCAtcnRjLT5zZXRfb2Zmc2V0X25zZWMpOwot CSp0YXJnZXRfbnNlYyA9IHRvX3NldC50dl9uc2VjOwotCi0JLyogVGhlIG50cCBjb2RlIG11c3Qg Y2FsbCB0aGlzIHdpdGggdGhlIGNvcnJlY3QgdmFsdWUgaW4gdHZfbnNlYywgaWYKLQkgKiBpdCBk b2VzIG5vdCB3ZSB1cGRhdGUgdGFyZ2V0X25zZWMgYW5kIHJldHVybiBFUFJPVE8gdG8gbWFrZSB0 aGUgbnRwCi0JICogY29kZSB0cnkgYWdhaW4gbGF0ZXIuCi0JICovCi0Jb2sgPSBydGNfdHZfbnNl Y19vayhydGMtPnNldF9vZmZzZXRfbnNlYywgJnRvX3NldCwgJm5vdyk7Ci0JaWYgKCFvaykgewot CQllcnIgPSAtRVBST1RPOwotCQlnb3RvIG91dF9jbG9zZTsKLQl9Ci0KLQlydGNfdGltZTY0X3Rv X3RtKHRvX3NldC50dl9zZWMsICZ0bSk7Ci0KLQllcnIgPSBydGNfc2V0X3RpbWUocnRjLCAmdG0p OwotCi1vdXRfY2xvc2U6Ci0JcnRjX2NsYXNzX2Nsb3NlKHJ0Yyk7Ci1vdXRfZXJyOgotCXJldHVy biBlcnI7Ci19CmRpZmYgLS1naXQgYS9pbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL2luZ2VuaWMs c3lzb3N0LmggYi9pbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL2luZ2VuaWMsc3lzb3N0LmgKaW5k ZXggOWFjODhlOTBiYWJmLi4wNjM3OTFiMDFhYjMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHQtYmlu ZGluZ3MvY2xvY2svaW5nZW5pYyxzeXNvc3QuaAorKysgYi9pbmNsdWRlL2R0LWJpbmRpbmdzL2Ns b2NrL2luZ2VuaWMsc3lzb3N0LmgKQEAgLTEsMTIgKzEsMTYgQEAKIC8qIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBHUEwtMi4wICovCiAvKgotICogVGhpcyBoZWFkZXIgcHJvdmlkZXMgY2xvY2sg bnVtYmVycyBmb3IgdGhlIGluZ2VuaWMsdGN1IERUIGJpbmRpbmcuCisgKiBUaGlzIGhlYWRlciBw cm92aWRlcyBjbG9jayBudW1iZXJzIGZvciB0aGUgSW5nZW5pYyBPU1QgRFQgYmluZGluZy4KICAq LwogCiAjaWZuZGVmIF9fRFRfQklORElOR1NfQ0xPQ0tfSU5HRU5JQ19PU1RfSF9fCiAjZGVmaW5l IF9fRFRfQklORElOR1NfQ0xPQ0tfSU5HRU5JQ19PU1RfSF9fCiAKLSNkZWZpbmUgT1NUX0NMS19Q RVJDUFVfVElNRVIJMAotI2RlZmluZSBPU1RfQ0xLX0dMT0JBTF9USU1FUgkxCisjZGVmaW5lIE9T VF9DTEtfUEVSQ1BVX1RJTUVSCTEKKyNkZWZpbmUgT1NUX0NMS19HTE9CQUxfVElNRVIJMAorI2Rl ZmluZSBPU1RfQ0xLX1BFUkNQVV9USU1FUjAJMQorI2RlZmluZSBPU1RfQ0xLX1BFUkNQVV9USU1F UjEJMgorI2RlZmluZSBPU1RfQ0xLX1BFUkNQVV9USU1FUjIJMworI2RlZmluZSBPU1RfQ0xLX1BF UkNQVV9USU1FUjMJNAogCiAjZW5kaWYgLyogX19EVF9CSU5ESU5HU19DTE9DS19JTkdFTklDX09T VF9IX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvaHJ0aW1lci5oIGIvaW5jbHVkZS9s aW51eC9ocnRpbWVyLmgKaW5kZXggMTA3Y2VkZDcwMTlhLi5iYjVlN2IwYTQyNzQgMTAwNjQ0Ci0t LSBhL2luY2x1ZGUvbGludXgvaHJ0aW1lci5oCisrKyBiL2luY2x1ZGUvbGludXgvaHJ0aW1lci5o CkBAIC00NDcsNiArNDQ3LDEwIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBocnRpbWVyX3Jlc3RhcnQo c3RydWN0IGhydGltZXIgKnRpbWVyKQogLyogUXVlcnkgdGltZXJzOiAqLwogZXh0ZXJuIGt0aW1l X3QgX19ocnRpbWVyX2dldF9yZW1haW5pbmcoY29uc3Qgc3RydWN0IGhydGltZXIgKnRpbWVyLCBi b29sIGFkanVzdCk7CiAKKy8qKgorICogaHJ0aW1lcl9nZXRfcmVtYWluaW5nIC0gZ2V0IHJlbWFp bmluZyB0aW1lIGZvciB0aGUgdGltZXIKKyAqIEB0aW1lcjoJdGhlIHRpbWVyIHRvIHJlYWQKKyAq Lwogc3RhdGljIGlubGluZSBrdGltZV90IGhydGltZXJfZ2V0X3JlbWFpbmluZyhjb25zdCBzdHJ1 Y3QgaHJ0aW1lciAqdGltZXIpCiB7CiAJcmV0dXJuIF9faHJ0aW1lcl9nZXRfcmVtYWluaW5nKHRp bWVyLCBmYWxzZSk7CkBAIC00NTgsNyArNDYyLDcgQEAgZXh0ZXJuIHU2NCBocnRpbWVyX25leHRf ZXZlbnRfd2l0aG91dChjb25zdCBzdHJ1Y3QgaHJ0aW1lciAqZXhjbHVkZSk7CiBleHRlcm4gYm9v bCBocnRpbWVyX2FjdGl2ZShjb25zdCBzdHJ1Y3QgaHJ0aW1lciAqdGltZXIpOwogCiAvKioKLSAq IGhydGltZXJfaXNfcXVldWVkID0gY2hlY2ssIHdoZXRoZXIgdGhlIHRpbWVyIGlzIG9uIG9uZSBv ZiB0aGUgcXVldWVzCisgKiBocnRpbWVyX2lzX3F1ZXVlZCAtIGNoZWNrLCB3aGV0aGVyIHRoZSB0 aW1lciBpcyBvbiBvbmUgb2YgdGhlIHF1ZXVlcwogICogQHRpbWVyOglUaW1lciB0byBjaGVjawog ICoKICAqIFJldHVybnM6IFRydWUgaWYgdGhlIHRpbWVyIGlzIHF1ZXVlZCwgZmFsc2Ugb3RoZXJ3 aXNlCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3J0Yy5oIGIvaW5jbHVkZS9saW51eC9ydGMu aAppbmRleCAyMmQxNTc1ZTQ5OTEuLmI4MjkzODJkZTZjMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9s aW51eC9ydGMuaAorKysgYi9pbmNsdWRlL2xpbnV4L3J0Yy5oCkBAIC0xMTAsMTMgKzExMCwzNiBA QCBzdHJ1Y3QgcnRjX2RldmljZSB7CiAJLyogU29tZSBoYXJkd2FyZSBjYW4ndCBzdXBwb3J0IFVJ RSBtb2RlICovCiAJaW50IHVpZV91bnN1cHBvcnRlZDsKIAotCS8qIE51bWJlciBvZiBuc2VjIGl0 IHRha2VzIHRvIHNldCB0aGUgUlRDIGNsb2NrLiBUaGlzIGluZmx1ZW5jZXMgd2hlbgotCSAqIHRo ZSBzZXQgb3BzIGFyZSBjYWxsZWQuIEFuIG9mZnNldDoKLQkgKiAgIC0gb2YgMC41IHMgd2lsbCBj YWxsIFJUQyBzZXQgZm9yIHdhbGwgY2xvY2sgdGltZSAxMC4wIHMgYXQgOS41IHMKLQkgKiAgIC0g b2YgMS41IHMgd2lsbCBjYWxsIFJUQyBzZXQgZm9yIHdhbGwgY2xvY2sgdGltZSAxMC4wIHMgYXQg OC41IHMKLQkgKiAgIC0gb2YgLTAuNSBzIHdpbGwgY2FsbCBSVEMgc2V0IGZvciB3YWxsIGNsb2Nr IHRpbWUgMTAuMCBzIGF0IDEwLjUgcworCS8qCisJICogVGhpcyBvZmZzZXQgc3BlY2lmaWVzIHRo ZSB1cGRhdGUgdGltaW5nIG9mIHRoZSBSVEMuCisJICoKKwkgKiB0c2NoZWQgICAgIHQxIHdyaXRl KHQyLnR2X3NlYyAtIDFzZWMpKSAgdDIgUlRDIGluY3JlbWVudHMgc2Vjb25kcworCSAqCisJICog VGhlIG9mZnNldCBkZWZpbmVzIGhvdyB0c2NoZWQgaXMgY29tcHV0ZWQgc28gdGhhdCB0aGUgd3Jp dGUgdG8KKwkgKiB0aGUgUlRDICh0Mi50dl9zZWMgLSAxc2VjKSBpcyBjb3JyZWN0IHZlcnN1cyB0 aGUgdGltZSByZXF1aXJlZAorCSAqIGZvciB0aGUgdHJhbnNwb3J0IG9mIHRoZSB3cml0ZSBhbmQg dGhlIHRpbWUgd2hpY2ggdGhlIFJUQyBuZWVkcworCSAqIHRvIGluY3JlbWVudCBzZWNvbmRzIHRo ZSBmaXJzdCB0aW1lIGFmdGVyIHRoZSB3cml0ZSAodDIpLgorCSAqCisJICogRm9yIGRpcmVjdCBh Y2Nlc3NpYmxlIFJUQ3MgdHNjaGVkIH49IHQxIGJlY2F1c2UgdGhlIHdyaXRlIHRpbWUKKwkgKiBp cyBuZWdsaWdpYmxlLiBGb3IgUlRDcyBiZWhpbmQgc2xvdyBidXNzZXMgdGhlIHRyYW5zcG9ydCB0 aW1lIGlzCisJICogc2lnbmlmaWNhbnQgYW5kIGhhcyB0byBiZSB0YWtlbiBpbnRvIGFjY291bnQu CisJICoKKwkgKiBUaGUgdGltZSBiZXR3ZWVuIHRoZSB3cml0ZSAodDEpIGFuZCB0aGUgZmlyc3Qg aW5jcmVtZW50IGFmdGVyCisJICogdGhlIHdyaXRlICh0MikgaXMgUlRDIHNwZWNpZmljLiBGb3Ig YSBNQzE0NjgxOCBSVEMgaXQncyA1MDBtcywKKwkgKiBmb3IgbWFueSBvdGhlcnMgaXQncyBleGFj dGx5IDEgc2Vjb25kLiBDb25zdWx0IHRoZSBkYXRhc2hlZXQuCisJICoKKwkgKiBUaGUgdmFsdWUg b2YgdGhpcyBvZmZzZXQgaXMgYWxzbyB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgdG8gYmUKKwkgKiB3 cml0dGVuIHZhbHVlICh0Mi50dl9zZWMgLSAxc2VjKSBhdCB0c2NoZWQuCisJICoKKwkgKiBUaGUg ZGVmYXVsdCB2YWx1ZSBmb3IgdGhpcyBpcyBOU0VDX1BFUl9TRUMgKyAxMCBtc2VjIGRlZmF1bHQK KwkgKiB0cmFuc3BvcnQgdGltZS4gVGhlIG9mZnNldCBjYW4gYmUgYWRqdXN0ZWQgYnkgZHJpdmVy cyBzbyB0aGUKKwkgKiBjYWxjdWxhdGlvbiBmb3IgdGhlIHRvIGJlIHdyaXR0ZW4gdmFsdWUgYXQg dHNjaGVkIGJlY29tZXMKKwkgKiBjb3JyZWN0OgorCSAqCisJICoJbmV3dmFsID0gdHNjaGVkICsg c2V0X29mZnNldF9uc2VjIC0gTlNFQ19QRVJfU0VDCisJICogYW5kICAodHNjaGVkICsgc2V0X29m ZnNldF9uc2VjKSAlIE5TRUNfUEVSX1NFQyA9PSAwCiAJICovCi0JbG9uZyBzZXRfb2Zmc2V0X25z ZWM7CisJdW5zaWduZWQgbG9uZyBzZXRfb2Zmc2V0X25zZWM7CiAKIAlib29sIHJlZ2lzdGVyZWQ7 CiAKQEAgLTE2NSw3ICsxODgsNiBAQCBpbnQgX19ydGNfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBt b2R1bGUgKm93bmVyLCBzdHJ1Y3QgcnRjX2RldmljZSAqcnRjKTsKIAogZXh0ZXJuIGludCBydGNf cmVhZF90aW1lKHN0cnVjdCBydGNfZGV2aWNlICpydGMsIHN0cnVjdCBydGNfdGltZSAqdG0pOwog ZXh0ZXJuIGludCBydGNfc2V0X3RpbWUoc3RydWN0IHJ0Y19kZXZpY2UgKnJ0Yywgc3RydWN0IHJ0 Y190aW1lICp0bSk7Ci1leHRlcm4gaW50IHJ0Y19zZXRfbnRwX3RpbWUoc3RydWN0IHRpbWVzcGVj NjQgbm93LCB1bnNpZ25lZCBsb25nICp0YXJnZXRfbnNlYyk7CiBpbnQgX19ydGNfcmVhZF9hbGFy bShzdHJ1Y3QgcnRjX2RldmljZSAqcnRjLCBzdHJ1Y3QgcnRjX3drYWxybSAqYWxhcm0pOwogZXh0 ZXJuIGludCBydGNfcmVhZF9hbGFybShzdHJ1Y3QgcnRjX2RldmljZSAqcnRjLAogCQkJc3RydWN0 IHJ0Y193a2Fscm0gKmFscm0pOwpAQCAtMjA1LDM5ICsyMjcsNiBAQCBzdGF0aWMgaW5saW5lIGJv b2wgaXNfbGVhcF95ZWFyKHVuc2lnbmVkIGludCB5ZWFyKQogCXJldHVybiAoISh5ZWFyICUgNCkg JiYgKHllYXIgJSAxMDApKSB8fCAhKHllYXIgJSA0MDApOwogfQogCi0vKiBEZXRlcm1pbmUgaWYg d2UgY2FuIGNhbGwgdG8gZHJpdmVyIHRvIHNldCB0aGUgdGltZS4gRHJpdmVycyBjYW4gb25seSBi ZQotICogY2FsbGVkIHRvIHNldCBhIHNlY29uZCBhbGlnbmVkIHRpbWUgdmFsdWUsIGFuZCB0aGUg ZmllbGQgc2V0X29mZnNldF9uc2VjCi0gKiBzcGVjaWZpZXMgaG93IGZhciBhd2F5IGZyb20gdGhl IHNlY29uZCBhbGlnbmVkIHRpbWUgdG8gY2FsbCB0aGUgZHJpdmVyLgotICoKLSAqIFRoaXMgYWxz byBjb21wdXRlcyAndG9fc2V0JyB3aGljaCBpcyB0aGUgdGltZSB3ZSBhcmUgdHJ5aW5nIHRvIHNl dCwgYW5kIGhhcwotICogYSB6ZXJvIGluIHR2X25zZWNzLCBzdWNoIHRoYXQ6Ci0gKiAgICB0b19z ZXQgLSBzZXRfZGVsYXlfbnNlYyA9PSBub3cgKy8tIEZVWloKLSAqCi0gKi8KLXN0YXRpYyBpbmxp bmUgYm9vbCBydGNfdHZfbnNlY19vayhzNjQgc2V0X29mZnNldF9uc2VjLAotCQkJCSAgc3RydWN0 IHRpbWVzcGVjNjQgKnRvX3NldCwKLQkJCQkgIGNvbnN0IHN0cnVjdCB0aW1lc3BlYzY0ICpub3cp Ci17Ci0JLyogQWxsb3dlZCBlcnJvciBpbiB0dl9uc2VjLCBhcmJpdGFyaWx5IHNldCB0byA1IGpp ZmZpZXMgaW4gbnMuICovCi0JY29uc3QgdW5zaWduZWQgbG9uZyBUSU1FX1NFVF9OU0VDX0ZVWlog PSBUSUNLX05TRUMgKiA1OwotCXN0cnVjdCB0aW1lc3BlYzY0IGRlbGF5ID0gey50dl9zZWMgPSAw LAotCQkJCSAgIC50dl9uc2VjID0gc2V0X29mZnNldF9uc2VjfTsKLQotCSp0b19zZXQgPSB0aW1l c3BlYzY0X2FkZCgqbm93LCBkZWxheSk7Ci0KLQlpZiAodG9fc2V0LT50dl9uc2VjIDwgVElNRV9T RVRfTlNFQ19GVVpaKSB7Ci0JCXRvX3NldC0+dHZfbnNlYyA9IDA7Ci0JCXJldHVybiB0cnVlOwot CX0KLQotCWlmICh0b19zZXQtPnR2X25zZWMgPiBOU0VDX1BFUl9TRUMgLSBUSU1FX1NFVF9OU0VD X0ZVWlopIHsKLQkJdG9fc2V0LT50dl9zZWMrKzsKLQkJdG9fc2V0LT50dl9uc2VjID0gMDsKLQkJ cmV0dXJuIHRydWU7Ci0JfQotCXJldHVybiBmYWxzZTsKLX0KLQogI2RlZmluZSBydGNfcmVnaXN0 ZXJfZGV2aWNlKGRldmljZSkgXAogCV9fcnRjX3JlZ2lzdGVyX2RldmljZShUSElTX01PRFVMRSwg ZGV2aWNlKQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3RpbWVrZWVwaW5nLmggYi9pbmNs dWRlL2xpbnV4L3RpbWVrZWVwaW5nLmgKaW5kZXggN2Y3ZTRhM2Y0Mzk0Li45MjlkM2YzOTM3YzAg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvdGltZWtlZXBpbmcuaAorKysgYi9pbmNsdWRlL2xp bnV4L3RpbWVrZWVwaW5nLmgKQEAgLTMwMyw2ICszMDMsOCBAQCBleHRlcm4gaW50IHBlcnNpc3Rl bnRfY2xvY2tfaXNfbG9jYWw7CiBleHRlcm4gdm9pZCByZWFkX3BlcnNpc3RlbnRfY2xvY2s2NChz dHJ1Y3QgdGltZXNwZWM2NCAqdHMpOwogdm9pZCByZWFkX3BlcnNpc3RlbnRfd2FsbF9hbmRfYm9v dF9vZmZzZXQoc3RydWN0IHRpbWVzcGVjNjQgKndhbGxfY2xvY2ssCiAJCQkJCSAgc3RydWN0IHRp bWVzcGVjNjQgKmJvb3Rfb2Zmc2V0KTsKKyNpZmRlZiBDT05GSUdfR0VORVJJQ19DTU9TX1VQREFU RQogZXh0ZXJuIGludCB1cGRhdGVfcGVyc2lzdGVudF9jbG9jazY0KHN0cnVjdCB0aW1lc3BlYzY0 IG5vdyk7CisjZW5kaWYKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3RpbWVy LmggYi9pbmNsdWRlL2xpbnV4L3RpbWVyLmgKaW5kZXggZDEwYmM3ZTczYjQxLi5mZGExM2M5ZDEy NTYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvdGltZXIuaAorKysgYi9pbmNsdWRlL2xpbnV4 L3RpbWVyLmgKQEAgLTE5Myw3ICsxOTMsNiBAQCBleHRlcm4gaW50IHRyeV90b19kZWxfdGltZXJf c3luYyhzdHJ1Y3QgdGltZXJfbGlzdCAqdGltZXIpOwogI2RlZmluZSBkZWxfc2luZ2xlc2hvdF90 aW1lcl9zeW5jKHQpIGRlbF90aW1lcl9zeW5jKHQpCiAKIGV4dGVybiB2b2lkIGluaXRfdGltZXJz KHZvaWQpOwotZXh0ZXJuIHZvaWQgcnVuX2xvY2FsX3RpbWVycyh2b2lkKTsKIHN0cnVjdCBocnRp bWVyOwogZXh0ZXJuIGVudW0gaHJ0aW1lcl9yZXN0YXJ0IGl0X3JlYWxfZm4oc3RydWN0IGhydGlt ZXIgKik7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvdGltZXguaCBiL2luY2x1ZGUvbGlu dXgvdGltZXguaAppbmRleCBjZTA4NTk3NjM2NzAuLjljMmU1NGZhZjliNyAxMDA2NDQKLS0tIGEv aW5jbHVkZS9saW51eC90aW1leC5oCisrKyBiL2luY2x1ZGUvbGludXgvdGltZXguaApAQCAtMTU3 LDcgKzE1Nyw2IEBAIGV4dGVybiBpbnQgZG9fY2xvY2tfYWRqdGltZShjb25zdCBjbG9ja2lkX3Qg d2hpY2hfY2xvY2ssIHN0cnVjdCBfX2tlcm5lbF90aW1leCAqCiBleHRlcm4gdm9pZCBoYXJkcHBz KGNvbnN0IHN0cnVjdCB0aW1lc3BlYzY0ICosIGNvbnN0IHN0cnVjdCB0aW1lc3BlYzY0ICopOwog CiBpbnQgcmVhZF9jdXJyZW50X3RpbWVyKHVuc2lnbmVkIGxvbmcgKnRpbWVyX3ZhbCk7Ci12b2lk IG50cF9ub3RpZnlfY21vc190aW1lcih2b2lkKTsKIAogLyogVGhlIGNsb2NrIGZyZXF1ZW5jeSBv ZiB0aGUgaTgyNTMvaTgyNTQgUElUICovCiAjZGVmaW5lIFBJVF9USUNLX1JBVEUgMTE5MzE4MnVs CmRpZmYgLS1naXQgYS9rZXJuZWwvdGltZS9ocnRpbWVyLmMgYi9rZXJuZWwvdGltZS9ocnRpbWVy LmMKaW5kZXggMzYyNGI5YjU4MzVkLi42MWMzOWZmNjg0MzkgMTAwNjQ0Ci0tLSBhL2tlcm5lbC90 aW1lL2hydGltZXIuYworKysgYi9rZXJuZWwvdGltZS9ocnRpbWVyLmMKQEAgLTEyODksNyArMTI4 OSw3IEBAIGludCBocnRpbWVyX2NhbmNlbChzdHJ1Y3QgaHJ0aW1lciAqdGltZXIpCiBFWFBPUlRf U1lNQk9MX0dQTChocnRpbWVyX2NhbmNlbCk7CiAKIC8qKgotICogaHJ0aW1lcl9nZXRfcmVtYWlu aW5nIC0gZ2V0IHJlbWFpbmluZyB0aW1lIGZvciB0aGUgdGltZXIKKyAqIF9faHJ0aW1lcl9nZXRf cmVtYWluaW5nIC0gZ2V0IHJlbWFpbmluZyB0aW1lIGZvciB0aGUgdGltZXIKICAqIEB0aW1lcjoJ dGhlIHRpbWVyIHRvIHJlYWQKICAqIEBhZGp1c3Q6CWFkanVzdCByZWxhdGl2ZSB0aW1lcnMgd2hl biBDT05GSUdfVElNRV9MT1dfUkVTPXkKICAqLwpkaWZmIC0tZ2l0IGEva2VybmVsL3RpbWUvamlm Zmllcy5jIGIva2VybmVsL3RpbWUvamlmZmllcy5jCmluZGV4IGVkZGNmNDk3MDQ0NC4uYTVjZmZl MmExNzcwIDEwMDY0NAotLS0gYS9rZXJuZWwvdGltZS9qaWZmaWVzLmMKKysrIGIva2VybmVsL3Rp bWUvamlmZmllcy5jCkBAIC01OSw3ICs1OSw4IEBAIHN0YXRpYyBzdHJ1Y3QgY2xvY2tzb3VyY2Ug Y2xvY2tzb3VyY2VfamlmZmllcyA9IHsKIH07CiAKIF9fY2FjaGVsaW5lX2FsaWduZWRfaW5fc21w IERFRklORV9SQVdfU1BJTkxPQ0soamlmZmllc19sb2NrKTsKLV9fY2FjaGVsaW5lX2FsaWduZWRf aW5fc21wIHNlcWNvdW50X3QgamlmZmllc19zZXE7CitfX2NhY2hlbGluZV9hbGlnbmVkX2luX3Nt cCBzZXFjb3VudF9yYXdfc3BpbmxvY2tfdCBqaWZmaWVzX3NlcSA9CisJU0VRQ05UX1JBV19TUElO TE9DS19aRVJPKGppZmZpZXNfc2VxLCAmamlmZmllc19sb2NrKTsKIAogI2lmIChCSVRTX1BFUl9M T05HIDwgNjQpCiB1NjQgZ2V0X2ppZmZpZXNfNjQodm9pZCkKZGlmZiAtLWdpdCBhL2tlcm5lbC90 aW1lL250cC5jIGIva2VybmVsL3RpbWUvbnRwLmMKaW5kZXggMDY5Y2E3OGZiMGJmLi43NDA0ZDM4 MzE1MjcgMTAwNjQ0Ci0tLSBhL2tlcm5lbC90aW1lL250cC5jCisrKyBiL2tlcm5lbC90aW1lL250 cC5jCkBAIC00OTQsNjUgKzQ5NCw3NCBAQCBpbnQgc2Vjb25kX292ZXJmbG93KHRpbWU2NF90IHNl Y3MpCiAJcmV0dXJuIGxlYXA7CiB9CiAKKyNpZiBkZWZpbmVkKENPTkZJR19HRU5FUklDX0NNT1Nf VVBEQVRFKSB8fCBkZWZpbmVkKENPTkZJR19SVENfU1lTVE9IQykKIHN0YXRpYyB2b2lkIHN5bmNf aHdfY2xvY2soc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKTsKLXN0YXRpYyBERUNMQVJFX0RFTEFZ RURfV09SSyhzeW5jX3dvcmssIHN5bmNfaHdfY2xvY2spOwotCi1zdGF0aWMgdm9pZCBzY2hlZF9z eW5jX2h3X2Nsb2NrKHN0cnVjdCB0aW1lc3BlYzY0IG5vdywKLQkJCQl1bnNpZ25lZCBsb25nIHRh cmdldF9uc2VjLCBib29sIGZhaWwpCitzdGF0aWMgREVDTEFSRV9XT1JLKHN5bmNfd29yaywgc3lu Y19od19jbG9jayk7CitzdGF0aWMgc3RydWN0IGhydGltZXIgc3luY19ocnRpbWVyOworI2RlZmlu ZSBTWU5DX1BFUklPRF9OUyAoMTFVTCAqIDYwICogTlNFQ19QRVJfU0VDKQogCitzdGF0aWMgZW51 bSBocnRpbWVyX3Jlc3RhcnQgc3luY190aW1lcl9jYWxsYmFjayhzdHJ1Y3QgaHJ0aW1lciAqdGlt ZXIpCiB7Ci0Jc3RydWN0IHRpbWVzcGVjNjQgbmV4dDsKLQotCWt0aW1lX2dldF9yZWFsX3RzNjQo Jm5leHQpOwotCWlmICghZmFpbCkKLQkJbmV4dC50dl9zZWMgPSA2NTk7Ci0JZWxzZSB7Ci0JCS8q Ci0JCSAqIFRyeSBhZ2FpbiBhcyBzb29uIGFzIHBvc3NpYmxlLiBEZWxheWluZyBsb25nIHBlcmlv ZHMKLQkJICogZGVjcmVhc2VzIHRoZSBhY2N1cmFjeSBvZiB0aGUgd29yayBxdWV1ZSB0aW1lci4g RHVlIHRvIHRoaXMKLQkJICogdGhlIGFsZ29yaXRobSBpcyB2ZXJ5IGxpa2VseSB0byByZXF1aXJl IGEgc2hvcnQtc2xlZXAgcmV0cnkKLQkJICogYWZ0ZXIgdGhlIGFib3ZlIGxvbmcgc2xlZXAgdG8g c3luY2hyb25pemUgdHNfbnNlYy4KLQkJICovCi0JCW5leHQudHZfc2VjID0gMDsKLQl9Ci0KLQkv KiBDb21wdXRlIHRoZSBuZWVkZWQgZGVsYXkgdGhhdCB3aWxsIGdldCB0byB0dl9uc2VjID09IHRh cmdldF9uc2VjICovCi0JbmV4dC50dl9uc2VjID0gdGFyZ2V0X25zZWMgLSBuZXh0LnR2X25zZWM7 Ci0JaWYgKG5leHQudHZfbnNlYyA8PSAwKQotCQluZXh0LnR2X25zZWMgKz0gTlNFQ19QRVJfU0VD OwotCWlmIChuZXh0LnR2X25zZWMgPj0gTlNFQ19QRVJfU0VDKSB7Ci0JCW5leHQudHZfc2VjKys7 Ci0JCW5leHQudHZfbnNlYyAtPSBOU0VDX1BFUl9TRUM7Ci0JfQorCXF1ZXVlX3dvcmsoc3lzdGVt X3Bvd2VyX2VmZmljaWVudF93cSwgJnN5bmNfd29yayk7CiAKLQlxdWV1ZV9kZWxheWVkX3dvcmso c3lzdGVtX3Bvd2VyX2VmZmljaWVudF93cSwgJnN5bmNfd29yaywKLQkJCSAgIHRpbWVzcGVjNjRf dG9famlmZmllcygmbmV4dCkpOworCXJldHVybiBIUlRJTUVSX05PUkVTVEFSVDsKIH0KIAotc3Rh dGljIHZvaWQgc3luY19ydGNfY2xvY2sodm9pZCkKK3N0YXRpYyB2b2lkIHNjaGVkX3N5bmNfaHdf Y2xvY2sodW5zaWduZWQgbG9uZyBvZmZzZXRfbnNlYywgYm9vbCByZXRyeSkKIHsKLQl1bnNpZ25l ZCBsb25nIHRhcmdldF9uc2VjOwotCXN0cnVjdCB0aW1lc3BlYzY0IGFkanVzdCwgbm93OwotCWlu dCByYzsKKwlrdGltZV90IGV4cCA9IGt0aW1lX3NldChrdGltZV9nZXRfcmVhbF9zZWNvbmRzKCks IDApOwogCi0JaWYgKCFJU19FTkFCTEVEKENPTkZJR19SVENfU1lTVE9IQykpCi0JCXJldHVybjsK KwlpZiAocmV0cnkpCisJCWV4cCA9IGt0aW1lX2FkZF9ucyhleHAsIDIgKiBOU0VDX1BFUl9TRUMg LSBvZmZzZXRfbnNlYyk7CisJZWxzZQorCQlleHAgPSBrdGltZV9hZGRfbnMoZXhwLCBTWU5DX1BF UklPRF9OUyAtIG9mZnNldF9uc2VjKTsKIAotCWt0aW1lX2dldF9yZWFsX3RzNjQoJm5vdyk7CisJ aHJ0aW1lcl9zdGFydCgmc3luY19ocnRpbWVyLCBleHAsIEhSVElNRVJfTU9ERV9BQlMpOworfQog Ci0JYWRqdXN0ID0gbm93OwotCWlmIChwZXJzaXN0ZW50X2Nsb2NrX2lzX2xvY2FsKQotCQlhZGp1 c3QudHZfc2VjIC09IChzeXNfdHoudHpfbWludXRlc3dlc3QgKiA2MCk7CisvKgorICogQ2hlY2sg d2hldGhlciBAbm93IGlzIGNvcnJlY3QgdmVyc3VzIHRoZSByZXF1aXJlZCB0aW1lIHRvIHVwZGF0 ZSB0aGUgUlRDCisgKiBhbmQgY2FsY3VsYXRlIHRoZSB2YWx1ZSB3aGljaCBuZWVkcyB0byBiZSB3 cml0dGVuIHRvIHRoZSBSVEMgc28gdGhhdCB0aGUKKyAqIG5leHQgc2Vjb25kcyBpbmNyZW1lbnQg b2YgdGhlIFJUQyBhZnRlciB0aGUgd3JpdGUgaXMgYWxpZ25lZCB3aXRoIHRoZSBuZXh0CisgKiBz ZWNvbmRzIGluY3JlbWVudCBvZiBjbG9jayBSRUFMVElNRS4KKyAqCisgKiB0c2NoZWQgICAgIHQx IHdyaXRlKHQyLnR2X3NlYyAtIDFzZWMpKQl0MiBSVEMgaW5jcmVtZW50cyBzZWNvbmRzCisgKgor ICogdDIudHZfbnNlYyA9PSAwCisgKiB0c2NoZWQgPSB0MiAtIHNldF9vZmZzZXRfbnNlYworICog bmV3dmFsID0gdDIgLSBOU0VDX1BFUl9TRUMKKyAqCisgKiA9PT4gbmV2YWwgPSB0c2NoZWQgKyBz ZXRfb2Zmc2V0X25zZWMgLSBOU0VDX1BFUl9TRUMKKyAqCisgKiBBcyB0aGUgZXhlY3V0aW9uIG9m IHRoaXMgY29kZSBpcyBub3QgZ3VhcmFudGVlZCB0byBoYXBwZW4gZXhhY3RseSBhdAorICogdHNj aGVkIHRoaXMgYWxsb3dzIGl0IHRvIGhhcHBlbiB3aXRoaW4gYSBmdXp6eSByZWdpb246CisgKgor ICoJYWJzKG5vdyAtIHRzY2hlZCkgPCBGVVpaCisgKgorICogSWYgQG5vdyBpcyBub3QgaW5zaWRl IHRoZSBhbGxvd2VkIHdpbmRvdyB0aGUgZnVuY3Rpb24gcmV0dXJucyBmYWxzZS4KKyAqLworc3Rh dGljIGlubGluZSBib29sIHJ0Y190dl9uc2VjX29rKHVuc2lnbmVkIGxvbmcgc2V0X29mZnNldF9u c2VjLAorCQkJCSAgc3RydWN0IHRpbWVzcGVjNjQgKnRvX3NldCwKKwkJCQkgIGNvbnN0IHN0cnVj dCB0aW1lc3BlYzY0ICpub3cpCit7CisJLyogQWxsb3dlZCBlcnJvciBpbiB0dl9uc2VjLCBhcmJp dGFyaWx5IHNldCB0byA1IGppZmZpZXMgaW4gbnMuICovCisJY29uc3QgdW5zaWduZWQgbG9uZyBU SU1FX1NFVF9OU0VDX0ZVWlogPSBUSUNLX05TRUMgKiA1OworCXN0cnVjdCB0aW1lc3BlYzY0IGRl bGF5ID0gey50dl9zZWMgPSAtMSwKKwkJCQkgICAudHZfbnNlYyA9IHNldF9vZmZzZXRfbnNlY307 CiAKLQkvKgotCSAqIFRoZSBjdXJyZW50IFJUQyBpbiB1c2Ugd2lsbCBwcm92aWRlIHRoZSB0YXJn ZXRfbnNlYyBpdCB3YW50cyB0byBiZQotCSAqIGNhbGxlZCBhdCwgYW5kIGRvZXMgcnRjX3R2X25z ZWNfb2sgaW50ZXJuYWxseS4KLQkgKi8KLQlyYyA9IHJ0Y19zZXRfbnRwX3RpbWUoYWRqdXN0LCAm dGFyZ2V0X25zZWMpOwotCWlmIChyYyA9PSAtRU5PREVWKQotCQlyZXR1cm47CisJKnRvX3NldCA9 IHRpbWVzcGVjNjRfYWRkKCpub3csIGRlbGF5KTsKKworCWlmICh0b19zZXQtPnR2X25zZWMgPCBU SU1FX1NFVF9OU0VDX0ZVWlopIHsKKwkJdG9fc2V0LT50dl9uc2VjID0gMDsKKwkJcmV0dXJuIHRy dWU7CisJfQogCi0Jc2NoZWRfc3luY19od19jbG9jayhub3csIHRhcmdldF9uc2VjLCByYyk7CisJ aWYgKHRvX3NldC0+dHZfbnNlYyA+IE5TRUNfUEVSX1NFQyAtIFRJTUVfU0VUX05TRUNfRlVaWikg eworCQl0b19zZXQtPnR2X3NlYysrOworCQl0b19zZXQtPnR2X25zZWMgPSAwOworCQlyZXR1cm4g dHJ1ZTsKKwl9CisJcmV0dXJuIGZhbHNlOwogfQogCiAjaWZkZWYgQ09ORklHX0dFTkVSSUNfQ01P U19VUERBVEUKQEAgLTU2MCw0OCArNTY5LDQ3IEBAIGludCBfX3dlYWsgdXBkYXRlX3BlcnNpc3Rl bnRfY2xvY2s2NChzdHJ1Y3QgdGltZXNwZWM2NCBub3c2NCkKIHsKIAlyZXR1cm4gLUVOT0RFVjsK IH0KKyNlbHNlCitzdGF0aWMgaW5saW5lIGludCB1cGRhdGVfcGVyc2lzdGVudF9jbG9jazY0KHN0 cnVjdCB0aW1lc3BlYzY0IG5vdzY0KQoreworCXJldHVybiAtRU5PREVWOworfQogI2VuZGlmCiAK LXN0YXRpYyBib29sIHN5bmNfY21vc19jbG9jayh2b2lkKQorI2lmZGVmIENPTkZJR19SVENfU1lT VE9IQworLyogU2F2ZSBOVFAgc3luY2hyb25pemVkIHRpbWUgdG8gdGhlIFJUQyAqLworc3RhdGlj IGludCB1cGRhdGVfcnRjKHN0cnVjdCB0aW1lc3BlYzY0ICp0b19zZXQsIHVuc2lnbmVkIGxvbmcg Km9mZnNldF9uc2VjKQogewotCXN0YXRpYyBib29sIG5vX2Ntb3M7Ci0Jc3RydWN0IHRpbWVzcGVj NjQgbm93OwotCXN0cnVjdCB0aW1lc3BlYzY0IGFkanVzdDsKLQlpbnQgcmMgPSAtRVBST1RPOwot CWxvbmcgdGFyZ2V0X25zZWMgPSBOU0VDX1BFUl9TRUMgLyAyOworCXN0cnVjdCBydGNfZGV2aWNl ICpydGM7CisJc3RydWN0IHJ0Y190aW1lIHRtOworCWludCBlcnIgPSAtRU5PREVWOwogCi0JaWYg KCFJU19FTkFCTEVEKENPTkZJR19HRU5FUklDX0NNT1NfVVBEQVRFKSkKLQkJcmV0dXJuIGZhbHNl OworCXJ0YyA9IHJ0Y19jbGFzc19vcGVuKENPTkZJR19SVENfU1lTVE9IQ19ERVZJQ0UpOworCWlm ICghcnRjKQorCQlyZXR1cm4gLUVOT0RFVjsKIAotCWlmIChub19jbW9zKQotCQlyZXR1cm4gZmFs c2U7CisJaWYgKCFydGMtPm9wcyB8fCAhcnRjLT5vcHMtPnNldF90aW1lKQorCQlnb3RvIG91dF9j bG9zZTsKIAotCS8qCi0JICogSGlzdG9yaWNhbGx5IHVwZGF0ZV9wZXJzaXN0ZW50X2Nsb2NrNjQo KSBoYXMgZm9sbG93ZWQgeDg2Ci0JICogc2VtYW50aWNzLCB3aGljaCBtYXRjaCB0aGUgTUMxNDY4 MThBL2V0YyBSVEMuIFRoaXMgUlRDIHdpbGwgc3RvcmUKLQkgKiAnYWRqdXN0JyBhbmQgdGhlbiBp biAuNXMgaXQgd2lsbCBhZHZhbmNlIG9uY2Ugc2Vjb25kLgotCSAqCi0JICogQXJjaGl0ZWN0dXJl cyBhcmUgc3Ryb25nbHkgZW5jb3VyYWdlZCB0byB1c2UgcnRjbGliIGFuZCBub3QKLQkgKiBpbXBs ZW1lbnQgdGhpcyBsZWdhY3kgQVBJLgotCSAqLwotCWt0aW1lX2dldF9yZWFsX3RzNjQoJm5vdyk7 Ci0JaWYgKHJ0Y190dl9uc2VjX29rKC0xICogdGFyZ2V0X25zZWMsICZhZGp1c3QsICZub3cpKSB7 Ci0JCWlmIChwZXJzaXN0ZW50X2Nsb2NrX2lzX2xvY2FsKQotCQkJYWRqdXN0LnR2X3NlYyAtPSAo c3lzX3R6LnR6X21pbnV0ZXN3ZXN0ICogNjApOwotCQlyYyA9IHVwZGF0ZV9wZXJzaXN0ZW50X2Ns b2NrNjQoYWRqdXN0KTsKLQkJLyoKLQkJICogVGhlIG1hY2hpbmUgZG9lcyBub3Qgc3VwcG9ydCB1 cGRhdGVfcGVyc2lzdGVudF9jbG9jazY0IGV2ZW4KLQkJICogdGhvdWdoIGl0IGRlZmluZXMgQ09O RklHX0dFTkVSSUNfQ01PU19VUERBVEUuCi0JCSAqLwotCQlpZiAocmMgPT0gLUVOT0RFVikgewot CQkJbm9fY21vcyA9IHRydWU7Ci0JCQlyZXR1cm4gZmFsc2U7Ci0JCX0KKwkvKiBGaXJzdCBjYWxs IG1pZ2h0IG5vdCBoYXZlIHRoZSBjb3JyZWN0IG9mZnNldCAqLworCWlmICgqb2Zmc2V0X25zZWMg PT0gcnRjLT5zZXRfb2Zmc2V0X25zZWMpIHsKKwkJcnRjX3RpbWU2NF90b190bSh0b19zZXQtPnR2 X3NlYywgJnRtKTsKKwkJZXJyID0gcnRjX3NldF90aW1lKHJ0YywgJnRtKTsKKwl9IGVsc2Ugewor CQkvKiBTdG9yZSB0aGUgdXBkYXRlIG9mZnNldCBhbmQgbGV0IHRoZSBjYWxsZXIgdHJ5IGFnYWlu ICovCisJCSpvZmZzZXRfbnNlYyA9IHJ0Yy0+c2V0X29mZnNldF9uc2VjOworCQllcnIgPSAtRUFH QUlOOwogCX0KLQotCXNjaGVkX3N5bmNfaHdfY2xvY2sobm93LCB0YXJnZXRfbnNlYywgcmMpOwot CXJldHVybiB0cnVlOworb3V0X2Nsb3NlOgorCXJ0Y19jbGFzc19jbG9zZShydGMpOworCXJldHVy biBlcnI7Cit9CisjZWxzZQorc3RhdGljIGlubGluZSBpbnQgdXBkYXRlX3J0YyhzdHJ1Y3QgdGlt ZXNwZWM2NCAqdG9fc2V0LCB1bnNpZ25lZCBsb25nICpvZmZzZXRfbnNlYykKK3sKKwlyZXR1cm4g LUVOT0RFVjsKIH0KKyNlbmRpZgogCiAvKgogICogSWYgd2UgaGF2ZSBhbiBleHRlcm5hbGx5IHN5 bmNocm9uaXplZCBMaW51eCBjbG9jaywgdGhlbiB1cGRhdGUgUlRDIGNsb2NrCkBAIC02MTMsMjQg KzYyMSw2NCBAQCBzdGF0aWMgYm9vbCBzeW5jX2Ntb3NfY2xvY2sodm9pZCkKICAqLwogc3RhdGlj IHZvaWQgc3luY19od19jbG9jayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiB7Ci0JaWYgKCFu dHBfc3luY2VkKCkpCi0JCXJldHVybjsKKwkvKgorCSAqIFRoZSBkZWZhdWx0IHN5bmNocm9uaXph dGlvbiBvZmZzZXQgaXMgNTAwbXMgZm9yIHRoZSBkZXByZWNhdGVkCisJICogdXBkYXRlX3BlcnNp c3RlbnRfY2xvY2s2NCgpIHVuZGVyIHRoZSBhc3N1bXB0aW9uIHRoYXQgaXQgdXNlcworCSAqIHRo ZSBpbmZhbW91cyBDTU9TIGNsb2NrIChNQzE0NjgxOCkuCisJICovCisJc3RhdGljIHVuc2lnbmVk IGxvbmcgb2Zmc2V0X25zZWMgPSBOU0VDX1BFUl9TRUMgLyAyOworCXN0cnVjdCB0aW1lc3BlYzY0 IG5vdywgdG9fc2V0OworCWludCByZXMgPSAtRUFHQUlOOwogCi0JaWYgKHN5bmNfY21vc19jbG9j aygpKQorCS8qCisJICogRG9uJ3QgdXBkYXRlIGlmIFNUQV9VTlNZTkMgaXMgc2V0IGFuZCBpZiBu dHBfbm90aWZ5X2Ntb3NfdGltZXIoKQorCSAqIG1hbmFnZWQgdG8gc2NoZWR1bGUgdGhlIHdvcmsg YmV0d2VlbiB0aGUgdGltZXIgZmlyaW5nIGFuZCB0aGUKKwkgKiB3b3JrIGJlaW5nIGFibGUgdG8g cmVhcm0gdGhlIHRpbWVyLiBXYWl0IGZvciB0aGUgdGltZXIgdG8gZXhwaXJlLgorCSAqLworCWlm ICghbnRwX3N5bmNlZCgpIHx8IGhydGltZXJfaXNfcXVldWVkKCZzeW5jX2hydGltZXIpKQogCQly ZXR1cm47CiAKLQlzeW5jX3J0Y19jbG9jaygpOworCWt0aW1lX2dldF9yZWFsX3RzNjQoJm5vdyk7 CisJLyogSWYgQG5vdyBpcyBub3QgaW4gdGhlIGFsbG93ZWQgd2luZG93LCB0cnkgYWdhaW4gKi8K KwlpZiAoIXJ0Y190dl9uc2VjX29rKG9mZnNldF9uc2VjLCAmdG9fc2V0LCAmbm93KSkKKwkJZ290 byByZWFybTsKKworCS8qIFRha2UgdGltZXpvbmUgYWRqdXN0ZWQgUlRDcyBpbnRvIGFjY291bnQg Ki8KKwlpZiAocGVyc2lzdGVudF9jbG9ja19pc19sb2NhbCkKKwkJdG9fc2V0LnR2X3NlYyAtPSAo c3lzX3R6LnR6X21pbnV0ZXN3ZXN0ICogNjApOworCisJLyogVHJ5IHRoZSBsZWdhY3kgUlRDIGZp cnN0LiAqLworCXJlcyA9IHVwZGF0ZV9wZXJzaXN0ZW50X2Nsb2NrNjQodG9fc2V0KTsKKwlpZiAo cmVzICE9IC1FTk9ERVYpCisJCWdvdG8gcmVhcm07CisKKwkvKiBUcnkgdGhlIFJUQyBjbGFzcyAq LworCXJlcyA9IHVwZGF0ZV9ydGMoJnRvX3NldCwgJm9mZnNldF9uc2VjKTsKKwlpZiAocmVzID09 IC1FTk9ERVYpCisJCXJldHVybjsKK3JlYXJtOgorCXNjaGVkX3N5bmNfaHdfY2xvY2sob2Zmc2V0 X25zZWMsIHJlcyAhPSAwKTsKIH0KIAogdm9pZCBudHBfbm90aWZ5X2Ntb3NfdGltZXIodm9pZCkK IHsKLQlpZiAoIW50cF9zeW5jZWQoKSkKLQkJcmV0dXJuOworCS8qCisJICogV2hlbiB0aGUgd29y ayBpcyBjdXJyZW50bHkgZXhlY3V0ZWQgYnV0IGhhcyBub3QgeWV0IHRoZSB0aW1lcgorCSAqIHJl YXJtZWQgdGhpcyBxdWV1ZXMgdGhlIHdvcmsgaW1tZWRpYXRlbHkgYWdhaW4uIE5vIGJpZyBpc3N1 ZSwKKwkgKiBqdXN0IGEgcG9pbnRsZXNzIHdvcmsgc2NoZWR1bGVkLgorCSAqLworCWlmIChudHBf c3luY2VkKCkgJiYgIWhydGltZXJfaXNfcXVldWVkKCZzeW5jX2hydGltZXIpKQorCQlxdWV1ZV93 b3JrKHN5c3RlbV9wb3dlcl9lZmZpY2llbnRfd3EsICZzeW5jX3dvcmspOworfQogCi0JaWYgKElT X0VOQUJMRUQoQ09ORklHX0dFTkVSSUNfQ01PU19VUERBVEUpIHx8Ci0JICAgIElTX0VOQUJMRUQo Q09ORklHX1JUQ19TWVNUT0hDKSkKLQkJcXVldWVfZGVsYXllZF93b3JrKHN5c3RlbV9wb3dlcl9l ZmZpY2llbnRfd3EsICZzeW5jX3dvcmssIDApOworc3RhdGljIHZvaWQgX19pbml0IG50cF9pbml0 X2Ntb3Nfc3luYyh2b2lkKQoreworCWhydGltZXJfaW5pdCgmc3luY19ocnRpbWVyLCBDTE9DS19S RUFMVElNRSwgSFJUSU1FUl9NT0RFX0FCUyk7CisJc3luY19ocnRpbWVyLmZ1bmN0aW9uID0gc3lu Y190aW1lcl9jYWxsYmFjazsKIH0KKyNlbHNlIC8qIENPTkZJR19HRU5FUklDX0NNT1NfVVBEQVRF KSB8fCBkZWZpbmVkKENPTkZJR19SVENfU1lTVE9IQykgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBf X2luaXQgbnRwX2luaXRfY21vc19zeW5jKHZvaWQpIHsgfQorI2VuZGlmIC8qICFDT05GSUdfR0VO RVJJQ19DTU9TX1VQREFURSkgfHwgZGVmaW5lZChDT05GSUdfUlRDX1NZU1RPSEMpICovCiAKIC8q CiAgKiBQcm9wYWdhdGUgYSBuZXcgdHhjLT5zdGF0dXMgdmFsdWUgaW50byB0aGUgTlRQIHN0YXRl OgpAQCAtMTA0NCw0ICsxMDkyLDUgQEAgX19zZXR1cCgibnRwX3RpY2tfYWRqPSIsIG50cF90aWNr X2Fkal9zZXR1cCk7CiB2b2lkIF9faW5pdCBudHBfaW5pdCh2b2lkKQogewogCW50cF9jbGVhcigp OworCW50cF9pbml0X2Ntb3Nfc3luYygpOwogfQpkaWZmIC0tZ2l0IGEva2VybmVsL3RpbWUvbnRw X2ludGVybmFsLmggYi9rZXJuZWwvdGltZS9udHBfaW50ZXJuYWwuaAppbmRleCA5MDhlY2FhNjVm YzMuLjIzZDFiNzRjMzA2NSAxMDA2NDQKLS0tIGEva2VybmVsL3RpbWUvbnRwX2ludGVybmFsLmgK KysrIGIva2VybmVsL3RpbWUvbnRwX2ludGVybmFsLmgKQEAgLTEyLDQgKzEyLDExIEBAIGV4dGVy biBpbnQgX19kb19hZGp0aW1leChzdHJ1Y3QgX19rZXJuZWxfdGltZXggKnR4YywKIAkJCSBjb25z dCBzdHJ1Y3QgdGltZXNwZWM2NCAqdHMsCiAJCQkgczMyICp0aW1lX3RhaSwgc3RydWN0IGF1ZGl0 X250cF9kYXRhICphZCk7CiBleHRlcm4gdm9pZCBfX2hhcmRwcHMoY29uc3Qgc3RydWN0IHRpbWVz cGVjNjQgKnBoYXNlX3RzLCBjb25zdCBzdHJ1Y3QgdGltZXNwZWM2NCAqcmF3X3RzKTsKKworI2lm IGRlZmluZWQoQ09ORklHX0dFTkVSSUNfQ01PU19VUERBVEUpIHx8IGRlZmluZWQoQ09ORklHX1JU Q19TWVNUT0hDKQorZXh0ZXJuIHZvaWQgbnRwX25vdGlmeV9jbW9zX3RpbWVyKHZvaWQpOworI2Vs c2UKK3N0YXRpYyBpbmxpbmUgdm9pZCBudHBfbm90aWZ5X2Ntb3NfdGltZXIodm9pZCkgeyB9Cisj ZW5kaWYKKwogI2VuZGlmIC8qIF9MSU5VWF9OVFBfSU5URVJOQUxfSCAqLwpkaWZmIC0tZ2l0IGEv a2VybmVsL3RpbWUvdGljay1icm9hZGNhc3QuYyBiL2tlcm5lbC90aW1lL3RpY2stYnJvYWRjYXN0 LmMKaW5kZXggMzZkNzQ2NGM4OTYyLi41YTIzODI5MzcyYzcgMTAwNjQ0Ci0tLSBhL2tlcm5lbC90 aW1lL3RpY2stYnJvYWRjYXN0LmMKKysrIGIva2VybmVsL3RpbWUvdGljay1icm9hZGNhc3QuYwpA QCAtMzMxLDcgKzMzMSw3IEBAIHN0YXRpYyB2b2lkIHRpY2tfaGFuZGxlX3BlcmlvZGljX2Jyb2Fk Y2FzdChzdHJ1Y3QgY2xvY2tfZXZlbnRfZGV2aWNlICpkZXYpCiAJYmNfbG9jYWwgPSB0aWNrX2Rv X3BlcmlvZGljX2Jyb2FkY2FzdCgpOwogCiAJaWYgKGNsb2NrZXZlbnRfc3RhdGVfb25lc2hvdChk ZXYpKSB7Ci0JCWt0aW1lX3QgbmV4dCA9IGt0aW1lX2FkZChkZXYtPm5leHRfZXZlbnQsIHRpY2tf cGVyaW9kKTsKKwkJa3RpbWVfdCBuZXh0ID0ga3RpbWVfYWRkX25zKGRldi0+bmV4dF9ldmVudCwg VElDS19OU0VDKTsKIAogCQljbG9ja2V2ZW50c19wcm9ncmFtX2V2ZW50KGRldiwgbmV4dCwgdHJ1 ZSk7CiAJfQpAQCAtODc3LDYgKzg3NywyMiBAQCBzdGF0aWMgdm9pZCB0aWNrX2Jyb2FkY2FzdF9p bml0X25leHRfZXZlbnQoc3RydWN0IGNwdW1hc2sgKm1hc2ssCiAJfQogfQogCitzdGF0aWMgaW5s aW5lIGt0aW1lX3QgdGlja19nZXRfbmV4dF9wZXJpb2Qodm9pZCkKK3sKKwlrdGltZV90IG5leHQ7 CisKKwkvKgorCSAqIFByb3RlY3QgYWdhaW5zdCBjb25jdXJyZW50IHVwZGF0ZXMgKHN0b3JlIC9s b2FkIHRlYXJpbmcgb24KKwkgKiAzMmJpdCkuIEl0IGRvZXMgbm90IG1hdHRlciBpZiB0aGUgdGlt ZSBpcyBhbHJlYWR5IGluIHRoZQorCSAqIHBhc3QuIFRoZSBicm9hZGNhc3QgZGV2aWNlIHdoaWNo IGlzIGFib3V0IHRvIGJlIHByb2dyYW1tZWQgd2lsbAorCSAqIGZpcmUgaW4gYW55IGNhc2UuCisJ ICovCisJcmF3X3NwaW5fbG9jaygmamlmZmllc19sb2NrKTsKKwluZXh0ID0gdGlja19uZXh0X3Bl cmlvZDsKKwlyYXdfc3Bpbl91bmxvY2soJmppZmZpZXNfbG9jayk7CisJcmV0dXJuIG5leHQ7Cit9 CisKIC8qKgogICogdGlja19icm9hZGNhc3Rfc2V0dXBfb25lc2hvdCAtIHNldHVwIHRoZSBicm9h ZGNhc3QgZGV2aWNlCiAgKi8KQEAgLTkwNSwxMCArOTIxLDExIEBAIHN0YXRpYyB2b2lkIHRpY2tf YnJvYWRjYXN0X3NldHVwX29uZXNob3Qoc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSAqYmMpCiAJ CQkgICB0aWNrX2Jyb2FkY2FzdF9vbmVzaG90X21hc2ssIHRtcG1hc2spOwogCiAJCWlmICh3YXNf cGVyaW9kaWMgJiYgIWNwdW1hc2tfZW1wdHkodG1wbWFzaykpIHsKKwkJCWt0aW1lX3QgbmV4dGV2 dCA9IHRpY2tfZ2V0X25leHRfcGVyaW9kKCk7CisKIAkJCWNsb2NrZXZlbnRzX3N3aXRjaF9zdGF0 ZShiYywgQ0xPQ0tfRVZUX1NUQVRFX09ORVNIT1QpOwotCQkJdGlja19icm9hZGNhc3RfaW5pdF9u ZXh0X2V2ZW50KHRtcG1hc2ssCi0JCQkJCQkgICAgICAgdGlja19uZXh0X3BlcmlvZCk7Ci0JCQl0 aWNrX2Jyb2FkY2FzdF9zZXRfZXZlbnQoYmMsIGNwdSwgdGlja19uZXh0X3BlcmlvZCk7CisJCQl0 aWNrX2Jyb2FkY2FzdF9pbml0X25leHRfZXZlbnQodG1wbWFzaywgbmV4dGV2dCk7CisJCQl0aWNr X2Jyb2FkY2FzdF9zZXRfZXZlbnQoYmMsIGNwdSwgbmV4dGV2dCk7CiAJCX0gZWxzZQogCQkJYmMt Pm5leHRfZXZlbnQgPSBLVElNRV9NQVg7CiAJfSBlbHNlIHsKZGlmZiAtLWdpdCBhL2tlcm5lbC90 aW1lL3RpY2stY29tbW9uLmMgYi9rZXJuZWwvdGltZS90aWNrLWNvbW1vbi5jCmluZGV4IDZjOWMz NDJkZDBlNS4uYTAzNzY0ZGY1MzY2IDEwMDY0NAotLS0gYS9rZXJuZWwvdGltZS90aWNrLWNvbW1v bi5jCisrKyBiL2tlcm5lbC90aW1lL3RpY2stY29tbW9uLmMKQEAgLTI3LDEwICsyNywxMSBAQAog ICovCiBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgdGlja19kZXZpY2UsIHRpY2tfY3B1X2RldmljZSk7 CiAvKgotICogVGljayBuZXh0IGV2ZW50OiBrZWVwcyB0cmFjayBvZiB0aGUgdGljayB0aW1lCisg KiBUaWNrIG5leHQgZXZlbnQ6IGtlZXBzIHRyYWNrIG9mIHRoZSB0aWNrIHRpbWUuIEl0J3MgdXBk YXRlZCBieSB0aGUKKyAqIENQVSB3aGljaCBoYW5kbGVzIHRoZSB0aWNrIGFuZCBwcm90ZWN0ZWQg YnkgamlmZmllc19sb2NrLiBUaGVyZSBpcworICogbm8gcmVxdWlyZW1lbnQgdG8gd3JpdGUgaG9s ZCB0aGUgamlmZmllcyBzZXFjb3VudCBmb3IgaXQuCiAgKi8KIGt0aW1lX3QgdGlja19uZXh0X3Bl cmlvZDsKLWt0aW1lX3QgdGlja19wZXJpb2Q7CiAKIC8qCiAgKiB0aWNrX2RvX3RpbWVyX2NwdSBp cyBhIHRpbWVyIGNvcmUgaW50ZXJuYWwgdmFyaWFibGUgd2hpY2ggaG9sZHMgdGhlIENQVSBOUgpA QCAtODgsNyArODksNyBAQCBzdGF0aWMgdm9pZCB0aWNrX3BlcmlvZGljKGludCBjcHUpCiAJCXdy aXRlX3NlcWNvdW50X2JlZ2luKCZqaWZmaWVzX3NlcSk7CiAKIAkJLyogS2VlcCB0cmFjayBvZiB0 aGUgbmV4dCB0aWNrIGV2ZW50ICovCi0JCXRpY2tfbmV4dF9wZXJpb2QgPSBrdGltZV9hZGQodGlj a19uZXh0X3BlcmlvZCwgdGlja19wZXJpb2QpOworCQl0aWNrX25leHRfcGVyaW9kID0ga3RpbWVf YWRkX25zKHRpY2tfbmV4dF9wZXJpb2QsIFRJQ0tfTlNFQyk7CiAKIAkJZG9fdGltZXIoMSk7CiAJ CXdyaXRlX3NlcWNvdW50X2VuZCgmamlmZmllc19zZXEpOwpAQCAtMTI3LDcgKzEyOCw3IEBAIHZv aWQgdGlja19oYW5kbGVfcGVyaW9kaWMoc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSAqZGV2KQog CQkgKiBTZXR1cCB0aGUgbmV4dCBwZXJpb2QgZm9yIGRldmljZXMsIHdoaWNoIGRvIG5vdCBoYXZl CiAJCSAqIHBlcmlvZGljIG1vZGU6CiAJCSAqLwotCQluZXh0ID0ga3RpbWVfYWRkKG5leHQsIHRp Y2tfcGVyaW9kKTsKKwkJbmV4dCA9IGt0aW1lX2FkZF9ucyhuZXh0LCBUSUNLX05TRUMpOwogCiAJ CWlmICghY2xvY2tldmVudHNfcHJvZ3JhbV9ldmVudChkZXYsIG5leHQsIGZhbHNlKSkKIAkJCXJl dHVybjsKQEAgLTE3Myw3ICsxNzQsNyBAQCB2b2lkIHRpY2tfc2V0dXBfcGVyaW9kaWMoc3RydWN0 IGNsb2NrX2V2ZW50X2RldmljZSAqZGV2LCBpbnQgYnJvYWRjYXN0KQogCQlmb3IgKDs7KSB7CiAJ CQlpZiAoIWNsb2NrZXZlbnRzX3Byb2dyYW1fZXZlbnQoZGV2LCBuZXh0LCBmYWxzZSkpCiAJCQkJ cmV0dXJuOwotCQkJbmV4dCA9IGt0aW1lX2FkZChuZXh0LCB0aWNrX3BlcmlvZCk7CisJCQluZXh0 ID0ga3RpbWVfYWRkX25zKG5leHQsIFRJQ0tfTlNFQyk7CiAJCX0KIAl9CiB9CkBAIC0yMjAsNyAr MjIxLDYgQEAgc3RhdGljIHZvaWQgdGlja19zZXR1cF9kZXZpY2Uoc3RydWN0IHRpY2tfZGV2aWNl ICp0ZCwKIAkJCXRpY2tfZG9fdGltZXJfY3B1ID0gY3B1OwogCiAJCQl0aWNrX25leHRfcGVyaW9k ID0ga3RpbWVfZ2V0KCk7Ci0JCQl0aWNrX3BlcmlvZCA9IE5TRUNfUEVSX1NFQyAvIEhaOwogI2lm ZGVmIENPTkZJR19OT19IWl9GVUxMCiAJCQkvKgogCQkJICogVGhlIGJvb3QgQ1BVIG1heSBiZSBu b2h6X2Z1bGwsIGluIHdoaWNoIGNhc2Ugc2V0CmRpZmYgLS1naXQgYS9rZXJuZWwvdGltZS90aWNr LWludGVybmFsLmggYi9rZXJuZWwvdGltZS90aWNrLWludGVybmFsLmgKaW5kZXggN2IyNDk2MTM2 NzI5Li43YTk4MWM5ZTg3YTQgMTAwNjQ0Ci0tLSBhL2tlcm5lbC90aW1lL3RpY2staW50ZXJuYWwu aAorKysgYi9rZXJuZWwvdGltZS90aWNrLWludGVybmFsLmgKQEAgLTE1LDcgKzE1LDYgQEAKIAog REVDTEFSRV9QRVJfQ1BVKHN0cnVjdCB0aWNrX2RldmljZSwgdGlja19jcHVfZGV2aWNlKTsKIGV4 dGVybiBrdGltZV90IHRpY2tfbmV4dF9wZXJpb2Q7Ci1leHRlcm4ga3RpbWVfdCB0aWNrX3Blcmlv ZDsKIGV4dGVybiBpbnQgdGlja19kb190aW1lcl9jcHUgX19yZWFkX21vc3RseTsKIAogZXh0ZXJu IHZvaWQgdGlja19zZXR1cF9wZXJpb2RpYyhzdHJ1Y3QgY2xvY2tfZXZlbnRfZGV2aWNlICpkZXYs IGludCBicm9hZGNhc3QpOwpkaWZmIC0tZ2l0IGEva2VybmVsL3RpbWUvdGljay1zY2hlZC5jIGIv a2VybmVsL3RpbWUvdGljay1zY2hlZC5jCmluZGV4IDgxNjMyY2Q1ZTNiNy4uYTllNjg5MzY4MjJk IDEwMDY0NAotLS0gYS9rZXJuZWwvdGltZS90aWNrLXNjaGVkLmMKKysrIGIva2VybmVsL3RpbWUv dGljay1zY2hlZC5jCkBAIC0yMCw2ICsyMCw3IEBACiAjaW5jbHVkZSA8bGludXgvc2NoZWQvY2xv Y2suaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC9zdGF0Lmg+CiAjaW5jbHVkZSA8bGludXgvc2No ZWQvbm9oei5oPgorI2luY2x1ZGUgPGxpbnV4L3NjaGVkL2xvYWRhdmcuaD4KICNpbmNsdWRlIDxs aW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9pcnFfd29yay5oPgogI2luY2x1ZGUgPGxp bnV4L3Bvc2l4LXRpbWVycy5oPgpAQCAtNDQsNyArNDUsOSBAQCBzdHJ1Y3QgdGlja19zY2hlZCAq dGlja19nZXRfdGlja19zY2hlZChpbnQgY3B1KQogCiAjaWYgZGVmaW5lZChDT05GSUdfTk9fSFpf Q09NTU9OKSB8fCBkZWZpbmVkKENPTkZJR19ISUdIX1JFU19USU1FUlMpCiAvKgotICogVGhlIHRp bWUsIHdoZW4gdGhlIGxhc3QgamlmZnkgdXBkYXRlIGhhcHBlbmVkLiBQcm90ZWN0ZWQgYnkgamlm Zmllc19sb2NrLgorICogVGhlIHRpbWUsIHdoZW4gdGhlIGxhc3QgamlmZnkgdXBkYXRlIGhhcHBl bmVkLiBXcml0ZSBhY2Nlc3MgbXVzdCBob2xkCisgKiBqaWZmaWVzX2xvY2sgYW5kIGppZmZpZXNf c2VxLiB0aWNrX25vaHpfbmV4dF9ldmVudCgpIG5lZWRzIHRvIGdldCBhCisgKiBjb25zaXN0ZW50 IHZpZXcgb2YgamlmZmllcyBhbmQgbGFzdF9qaWZmaWVzX3VwZGF0ZS4KICAqLwogc3RhdGljIGt0 aW1lX3QgbGFzdF9qaWZmaWVzX3VwZGF0ZTsKIApAQCAtNTMsNTAgKzU2LDk3IEBAIHN0YXRpYyBr dGltZV90IGxhc3RfamlmZmllc191cGRhdGU7CiAgKi8KIHN0YXRpYyB2b2lkIHRpY2tfZG9fdXBk YXRlX2ppZmZpZXM2NChrdGltZV90IG5vdykKIHsKLQl1bnNpZ25lZCBsb25nIHRpY2tzID0gMDsK LQlrdGltZV90IGRlbHRhOworCXVuc2lnbmVkIGxvbmcgdGlja3MgPSAxOworCWt0aW1lX3QgZGVs dGEsIG5leHRwOwogCiAJLyoKLQkgKiBEbyBhIHF1aWNrIGNoZWNrIHdpdGhvdXQgaG9sZGluZyBq aWZmaWVzX2xvY2s6Ci0JICogVGhlIFJFQURfT05DRSgpIHBhaXJzIHdpdGggdHdvIHVwZGF0ZXMg ZG9uZSBsYXRlciBpbiB0aGlzIGZ1bmN0aW9uLgorCSAqIDY0Yml0IGNhbiBkbyBhIHF1aWNrIGNo ZWNrIHdpdGhvdXQgaG9sZGluZyBqaWZmaWVzIGxvY2sgYW5kCisJICogd2l0aG91dCBsb29raW5n IGF0IHRoZSBzZXF1ZW5jZSBjb3VudC4gVGhlIHNtcF9sb2FkX2FjcXVpcmUoKQorCSAqIHBhaXJz IHdpdGggdGhlIHVwZGF0ZSBkb25lIGxhdGVyIGluIHRoaXMgZnVuY3Rpb24uCisJICoKKwkgKiAz MmJpdCBjYW5ub3QgZG8gdGhhdCBiZWNhdXNlIHRoZSBzdG9yZSBvZiB0aWNrX25leHRfcGVyaW9k CisJICogY29uc2lzdHMgb2YgdHdvIDMyYml0IHN0b3JlcyBhbmQgdGhlIGZpcnN0IHN0b3JlIGNv dWxkIG1vdmUgaXQKKwkgKiB0byBhIHJhbmRvbSBwb2ludCBpbiB0aGUgZnV0dXJlLgogCSAqLwot CWRlbHRhID0ga3RpbWVfc3ViKG5vdywgUkVBRF9PTkNFKGxhc3RfamlmZmllc191cGRhdGUpKTsK LQlpZiAoZGVsdGEgPCB0aWNrX3BlcmlvZCkKLQkJcmV0dXJuOworCWlmIChJU19FTkFCTEVEKENP TkZJR182NEJJVCkpIHsKKwkJaWYgKGt0aW1lX2JlZm9yZShub3csIHNtcF9sb2FkX2FjcXVpcmUo JnRpY2tfbmV4dF9wZXJpb2QpKSkKKwkJCXJldHVybjsKKwl9IGVsc2UgeworCQl1bnNpZ25lZCBp bnQgc2VxOwogCi0JLyogUmVldmFsdWF0ZSB3aXRoIGppZmZpZXNfbG9jayBoZWxkICovCisJCS8q CisJCSAqIEF2b2lkIGNvbnRlbnRpb24gb24gamlmZmllc19sb2NrIGFuZCBwcm90ZWN0IHRoZSBx dWljaworCQkgKiBjaGVjayB3aXRoIHRoZSBzZXF1ZW5jZSBjb3VudC4KKwkJICovCisJCWRvIHsK KwkJCXNlcSA9IHJlYWRfc2VxY291bnRfYmVnaW4oJmppZmZpZXNfc2VxKTsKKwkJCW5leHRwID0g dGlja19uZXh0X3BlcmlvZDsKKwkJfSB3aGlsZSAocmVhZF9zZXFjb3VudF9yZXRyeSgmamlmZmll c19zZXEsIHNlcSkpOworCisJCWlmIChrdGltZV9iZWZvcmUobm93LCBuZXh0cCkpCisJCQlyZXR1 cm47CisJfQorCisJLyogUXVpY2sgY2hlY2sgZmFpbGVkLCBpLmUuIHVwZGF0ZSBpcyByZXF1aXJl ZC4gKi8KIAlyYXdfc3Bpbl9sb2NrKCZqaWZmaWVzX2xvY2spOworCS8qCisJICogUmVldmFsdWF0 ZSB3aXRoIHRoZSBsb2NrIGhlbGQuIEFub3RoZXIgQ1BVIG1pZ2h0IGhhdmUgZG9uZSB0aGUKKwkg KiB1cGRhdGUgYWxyZWFkeS4KKwkgKi8KKwlpZiAoa3RpbWVfYmVmb3JlKG5vdywgdGlja19uZXh0 X3BlcmlvZCkpIHsKKwkJcmF3X3NwaW5fdW5sb2NrKCZqaWZmaWVzX2xvY2spOworCQlyZXR1cm47 CisJfQorCiAJd3JpdGVfc2VxY291bnRfYmVnaW4oJmppZmZpZXNfc2VxKTsKIAotCWRlbHRhID0g a3RpbWVfc3ViKG5vdywgbGFzdF9qaWZmaWVzX3VwZGF0ZSk7Ci0JaWYgKGRlbHRhID49IHRpY2tf cGVyaW9kKSB7CisJZGVsdGEgPSBrdGltZV9zdWIobm93LCB0aWNrX25leHRfcGVyaW9kKTsKKwlp ZiAodW5saWtlbHkoZGVsdGEgPj0gVElDS19OU0VDKSkgeworCQkvKiBTbG93IHBhdGggZm9yIGxv bmcgaWRsZSBzbGVlcCB0aW1lcyAqLworCQlzNjQgaW5jciA9IFRJQ0tfTlNFQzsKIAotCQlkZWx0 YSA9IGt0aW1lX3N1YihkZWx0YSwgdGlja19wZXJpb2QpOwotCQkvKiBQYWlycyB3aXRoIHRoZSBs b2NrbGVzcyByZWFkIGluIHRoaXMgZnVuY3Rpb24uICovCi0JCVdSSVRFX09OQ0UobGFzdF9qaWZm aWVzX3VwZGF0ZSwKLQkJCSAgIGt0aW1lX2FkZChsYXN0X2ppZmZpZXNfdXBkYXRlLCB0aWNrX3Bl cmlvZCkpOworCQl0aWNrcyArPSBrdGltZV9kaXZucyhkZWx0YSwgaW5jcik7CiAKLQkJLyogU2xv dyBwYXRoIGZvciBsb25nIHRpbWVvdXRzICovCi0JCWlmICh1bmxpa2VseShkZWx0YSA+PSB0aWNr X3BlcmlvZCkpIHsKLQkJCXM2NCBpbmNyID0ga3RpbWVfdG9fbnModGlja19wZXJpb2QpOworCQls YXN0X2ppZmZpZXNfdXBkYXRlID0ga3RpbWVfYWRkX25zKGxhc3RfamlmZmllc191cGRhdGUsCisJ CQkJCQkgICBpbmNyICogdGlja3MpOworCX0gZWxzZSB7CisJCWxhc3RfamlmZmllc191cGRhdGUg PSBrdGltZV9hZGRfbnMobGFzdF9qaWZmaWVzX3VwZGF0ZSwKKwkJCQkJCSAgIFRJQ0tfTlNFQyk7 CisJfQogCi0JCQl0aWNrcyA9IGt0aW1lX2Rpdm5zKGRlbHRhLCBpbmNyKTsKKwkvKiBBZHZhbmNl IGppZmZpZXMgdG8gY29tcGxldGUgdGhlIGppZmZpZXNfc2VxIHByb3RlY3RlZCBqb2IgKi8KKwlq aWZmaWVzXzY0ICs9IHRpY2tzOwogCi0JCQkvKiBQYWlycyB3aXRoIHRoZSBsb2NrbGVzcyByZWFk IGluIHRoaXMgZnVuY3Rpb24uICovCi0JCQlXUklURV9PTkNFKGxhc3RfamlmZmllc191cGRhdGUs Ci0JCQkJICAga3RpbWVfYWRkX25zKGxhc3RfamlmZmllc191cGRhdGUsCi0JCQkJCQlpbmNyICog dGlja3MpKTsKLQkJfQotCQlkb190aW1lcigrK3RpY2tzKTsKKwkvKgorCSAqIEtlZXAgdGhlIHRp Y2tfbmV4dF9wZXJpb2QgdmFyaWFibGUgdXAgdG8gZGF0ZS4KKwkgKi8KKwluZXh0cCA9IGt0aW1l X2FkZF9ucyhsYXN0X2ppZmZpZXNfdXBkYXRlLCBUSUNLX05TRUMpOwogCi0JCS8qIEtlZXAgdGhl IHRpY2tfbmV4dF9wZXJpb2QgdmFyaWFibGUgdXAgdG8gZGF0ZSAqLwotCQl0aWNrX25leHRfcGVy aW9kID0ga3RpbWVfYWRkKGxhc3RfamlmZmllc191cGRhdGUsIHRpY2tfcGVyaW9kKTsKKwlpZiAo SVNfRU5BQkxFRChDT05GSUdfNjRCSVQpKSB7CisJCS8qCisJCSAqIFBhaXJzIHdpdGggc21wX2xv YWRfYWNxdWlyZSgpIGluIHRoZSBsb2NrbGVzcyBxdWljaworCQkgKiBjaGVjayBhYm92ZSBhbmQg ZW5zdXJlcyB0aGF0IHRoZSB1cGRhdGUgdG8gamlmZmllc182NCBpcworCQkgKiBub3QgcmVvcmRl cmVkIHZzLiB0aGUgc3RvcmUgdG8gdGlja19uZXh0X3BlcmlvZCwgbmVpdGhlcgorCQkgKiBieSB0 aGUgY29tcGlsZXIgbm9yIGJ5IHRoZSBDUFUuCisJCSAqLworCQlzbXBfc3RvcmVfcmVsZWFzZSgm dGlja19uZXh0X3BlcmlvZCwgbmV4dHApOwogCX0gZWxzZSB7Ci0JCXdyaXRlX3NlcWNvdW50X2Vu ZCgmamlmZmllc19zZXEpOwotCQlyYXdfc3Bpbl91bmxvY2soJmppZmZpZXNfbG9jayk7Ci0JCXJl dHVybjsKKwkJLyoKKwkJICogQSBwbGFpbiBzdG9yZSBpcyBnb29kIGVub3VnaCBvbiAzMmJpdCBh cyB0aGUgcXVpY2sgY2hlY2sKKwkJICogYWJvdmUgaXMgcHJvdGVjdGVkIGJ5IHRoZSBzZXF1ZW5j ZSBjb3VudC4KKwkJICovCisJCXRpY2tfbmV4dF9wZXJpb2QgPSBuZXh0cDsKIAl9CisKKwkvKgor CSAqIFJlbGVhc2UgdGhlIHNlcXVlbmNlIGNvdW50LiBjYWxjX2dsb2JhbF9sb2FkKCkgYmVsb3cg aXMgbm90CisJICogcHJvdGVjdGVkIGJ5IGl0LCBidXQgamlmZmllc19sb2NrIG5lZWRzIHRvIGJl IGhlbGQgdG8gcHJldmVudAorCSAqIGNvbmN1cnJlbnQgaW52b2NhdGlvbnMuCisJICovCiAJd3Jp dGVfc2VxY291bnRfZW5kKCZqaWZmaWVzX3NlcSk7CisKKwljYWxjX2dsb2JhbF9sb2FkKCk7CisK IAlyYXdfc3Bpbl91bmxvY2soJmppZmZpZXNfbG9jayk7CiAJdXBkYXRlX3dhbGxfdGltZSgpOwog fQpAQCAtNjYxLDcgKzcxMSw3IEBAIHN0YXRpYyB2b2lkIHRpY2tfbm9oel9yZXN0YXJ0KHN0cnVj dCB0aWNrX3NjaGVkICp0cywga3RpbWVfdCBub3cpCiAJaHJ0aW1lcl9zZXRfZXhwaXJlcygmdHMt PnNjaGVkX3RpbWVyLCB0cy0+bGFzdF90aWNrKTsKIAogCS8qIEZvcndhcmQgdGhlIHRpbWUgdG8g ZXhwaXJlIGluIHRoZSBmdXR1cmUgKi8KLQlocnRpbWVyX2ZvcndhcmQoJnRzLT5zY2hlZF90aW1l ciwgbm93LCB0aWNrX3BlcmlvZCk7CisJaHJ0aW1lcl9mb3J3YXJkKCZ0cy0+c2NoZWRfdGltZXIs IG5vdywgVElDS19OU0VDKTsKIAogCWlmICh0cy0+bm9oel9tb2RlID09IE5PSFpfTU9ERV9ISUdI UkVTKSB7CiAJCWhydGltZXJfc3RhcnRfZXhwaXJlcygmdHMtPnNjaGVkX3RpbWVyLApAQCAtMTIz MCw3ICsxMjgwLDcgQEAgc3RhdGljIHZvaWQgdGlja19ub2h6X2hhbmRsZXIoc3RydWN0IGNsb2Nr X2V2ZW50X2RldmljZSAqZGV2KQogCWlmICh1bmxpa2VseSh0cy0+dGlja19zdG9wcGVkKSkKIAkJ cmV0dXJuOwogCi0JaHJ0aW1lcl9mb3J3YXJkKCZ0cy0+c2NoZWRfdGltZXIsIG5vdywgdGlja19w ZXJpb2QpOworCWhydGltZXJfZm9yd2FyZCgmdHMtPnNjaGVkX3RpbWVyLCBub3csIFRJQ0tfTlNF Qyk7CiAJdGlja19wcm9ncmFtX2V2ZW50KGhydGltZXJfZ2V0X2V4cGlyZXMoJnRzLT5zY2hlZF90 aW1lciksIDEpOwogfQogCkBAIC0xMjY3LDcgKzEzMTcsNyBAQCBzdGF0aWMgdm9pZCB0aWNrX25v aHpfc3dpdGNoX3RvX25vaHoodm9pZCkKIAluZXh0ID0gdGlja19pbml0X2ppZmZ5X3VwZGF0ZSgp OwogCiAJaHJ0aW1lcl9zZXRfZXhwaXJlcygmdHMtPnNjaGVkX3RpbWVyLCBuZXh0KTsKLQlocnRp bWVyX2ZvcndhcmRfbm93KCZ0cy0+c2NoZWRfdGltZXIsIHRpY2tfcGVyaW9kKTsKKwlocnRpbWVy X2ZvcndhcmRfbm93KCZ0cy0+c2NoZWRfdGltZXIsIFRJQ0tfTlNFQyk7CiAJdGlja19wcm9ncmFt X2V2ZW50KGhydGltZXJfZ2V0X2V4cGlyZXMoJnRzLT5zY2hlZF90aW1lciksIDEpOwogCXRpY2tf bm9oel9hY3RpdmF0ZSh0cywgTk9IWl9NT0RFX0xPV1JFUyk7CiB9CkBAIC0xMzMzLDcgKzEzODMs NyBAQCBzdGF0aWMgZW51bSBocnRpbWVyX3Jlc3RhcnQgdGlja19zY2hlZF90aW1lcihzdHJ1Y3Qg aHJ0aW1lciAqdGltZXIpCiAJaWYgKHVubGlrZWx5KHRzLT50aWNrX3N0b3BwZWQpKQogCQlyZXR1 cm4gSFJUSU1FUl9OT1JFU1RBUlQ7CiAKLQlocnRpbWVyX2ZvcndhcmQodGltZXIsIG5vdywgdGlj a19wZXJpb2QpOworCWhydGltZXJfZm9yd2FyZCh0aW1lciwgbm93LCBUSUNLX05TRUMpOwogCiAJ cmV0dXJuIEhSVElNRVJfUkVTVEFSVDsKIH0KQEAgLTEzNjcsMTMgKzE0MTcsMTMgQEAgdm9pZCB0 aWNrX3NldHVwX3NjaGVkX3RpbWVyKHZvaWQpCiAKIAkvKiBPZmZzZXQgdGhlIHRpY2sgdG8gYXZl cnQgamlmZmllc19sb2NrIGNvbnRlbnRpb24uICovCiAJaWYgKHNjaGVkX3NrZXdfdGljaykgewot CQl1NjQgb2Zmc2V0ID0ga3RpbWVfdG9fbnModGlja19wZXJpb2QpID4+IDE7CisJCXU2NCBvZmZz ZXQgPSBUSUNLX05TRUMgPj4gMTsKIAkJZG9fZGl2KG9mZnNldCwgbnVtX3Bvc3NpYmxlX2NwdXMo KSk7CiAJCW9mZnNldCAqPSBzbXBfcHJvY2Vzc29yX2lkKCk7CiAJCWhydGltZXJfYWRkX2V4cGly ZXNfbnMoJnRzLT5zY2hlZF90aW1lciwgb2Zmc2V0KTsKIAl9CiAKLQlocnRpbWVyX2ZvcndhcmQo JnRzLT5zY2hlZF90aW1lciwgbm93LCB0aWNrX3BlcmlvZCk7CisJaHJ0aW1lcl9mb3J3YXJkKCZ0 cy0+c2NoZWRfdGltZXIsIG5vdywgVElDS19OU0VDKTsKIAlocnRpbWVyX3N0YXJ0X2V4cGlyZXMo JnRzLT5zY2hlZF90aW1lciwgSFJUSU1FUl9NT0RFX0FCU19QSU5ORURfSEFSRCk7CiAJdGlja19u b2h6X2FjdGl2YXRlKHRzLCBOT0haX01PREVfSElHSFJFUyk7CiB9CmRpZmYgLS1naXQgYS9rZXJu ZWwvdGltZS90aW1lY29udi5jIGIva2VybmVsL3RpbWUvdGltZWNvbnYuYwppbmRleCA1ODllMGE1 NTIxMjkuLjYyZTNiNDY3MTdhNiAxMDA2NDQKLS0tIGEva2VybmVsL3RpbWUvdGltZWNvbnYuYwor KysgYi9rZXJuZWwvdGltZS90aW1lY29udi5jCkBAIC03MCwxMCArNzAsMTAgQEAgc3RhdGljIGNv bnN0IHVuc2lnbmVkIHNob3J0IF9fbW9uX3lkYXlbMl1bMTNdID0gewogLyoqCiAgKiB0aW1lNjRf dG9fdG0gLSBjb252ZXJ0cyB0aGUgY2FsZW5kYXIgdGltZSB0byBsb2NhbCBicm9rZW4tZG93biB0 aW1lCiAgKgotICogQHRvdGFsc2Vjcwl0aGUgbnVtYmVyIG9mIHNlY29uZHMgZWxhcHNlZCBzaW5j ZSAwMDowMDowMCBvbiBKYW51YXJ5IDEsIDE5NzAsCisgKiBAdG90YWxzZWNzOgl0aGUgbnVtYmVy IG9mIHNlY29uZHMgZWxhcHNlZCBzaW5jZSAwMDowMDowMCBvbiBKYW51YXJ5IDEsIDE5NzAsCiAg KgkJQ29vcmRpbmF0ZWQgVW5pdmVyc2FsIFRpbWUgKFVUQykuCi0gKiBAb2Zmc2V0CW9mZnNldCBz ZWNvbmRzIGFkZGluZyB0byB0b3RhbHNlY3MuCi0gKiBAcmVzdWx0CXBvaW50ZXIgdG8gc3RydWN0 IHRtIHZhcmlhYmxlIHRvIHJlY2VpdmUgYnJva2VuLWRvd24gdGltZQorICogQG9mZnNldDoJb2Zm c2V0IHNlY29uZHMgYWRkaW5nIHRvIHRvdGFsc2Vjcy4KKyAqIEByZXN1bHQ6CXBvaW50ZXIgdG8g c3RydWN0IHRtIHZhcmlhYmxlIHRvIHJlY2VpdmUgYnJva2VuLWRvd24gdGltZQogICovCiB2b2lk IHRpbWU2NF90b190bSh0aW1lNjRfdCB0b3RhbHNlY3MsIGludCBvZmZzZXQsIHN0cnVjdCB0bSAq cmVzdWx0KQogewpkaWZmIC0tZ2l0IGEva2VybmVsL3RpbWUvdGltZWtlZXBpbmcuYyBiL2tlcm5l bC90aW1lL3RpbWVrZWVwaW5nLmMKaW5kZXggNjg1OGEzMTM2NGI2Li43NDUwM2MwMTUxZTUgMTAw NjQ0Ci0tLSBhL2tlcm5lbC90aW1lL3RpbWVrZWVwaW5nLmMKKysrIGIva2VybmVsL3RpbWUvdGlt ZWtlZXBpbmcuYwpAQCAtNDA3LDYgKzQwNyw3IEBAIHN0YXRpYyBpbmxpbmUgdTY0IHRpbWVrZWVw aW5nX2N5Y2xlc190b19ucyhjb25zdCBzdHJ1Y3QgdGtfcmVhZF9iYXNlICp0a3IsIHU2NCBjCiAv KioKICAqIHVwZGF0ZV9mYXN0X3RpbWVrZWVwZXIgLSBVcGRhdGUgdGhlIGZhc3QgYW5kIE5NSSBz YWZlIG1vbm90b25pYyB0aW1la2VlcGVyLgogICogQHRrcjogVGltZWtlZXBpbmcgcmVhZG91dCBi YXNlIGZyb20gd2hpY2ggd2UgdGFrZSB0aGUgdXBkYXRlCisgKiBAdGtmOiBQb2ludGVyIHRvIE5N SSBzYWZlIHRpbWVrZWVwZXIKICAqCiAgKiBXZSB3YW50IHRvIHVzZSB0aGlzIGZyb20gYW55IGNv bnRleHQgaW5jbHVkaW5nIE5NSSBhbmQgdHJhY2luZyAvCiAgKiBpbnN0cnVtZW50aW5nIHRoZSB0 aW1la2VlcGluZyBjb2RlIGl0c2VsZi4KQEAgLTQzNiw2ICs0MzcsMjcgQEAgc3RhdGljIHZvaWQg dXBkYXRlX2Zhc3RfdGltZWtlZXBlcihjb25zdCBzdHJ1Y3QgdGtfcmVhZF9iYXNlICp0a3IsCiAJ bWVtY3B5KGJhc2UgKyAxLCBiYXNlLCBzaXplb2YoKmJhc2UpKTsKIH0KIAorc3RhdGljIF9fYWx3 YXlzX2lubGluZSB1NjQgX19rdGltZV9nZXRfZmFzdF9ucyhzdHJ1Y3QgdGtfZmFzdCAqdGtmKQor eworCXN0cnVjdCB0a19yZWFkX2Jhc2UgKnRrcjsKKwl1bnNpZ25lZCBpbnQgc2VxOworCXU2NCBu b3c7CisKKwlkbyB7CisJCXNlcSA9IHJhd19yZWFkX3NlcWNvdW50X2xhdGNoKCZ0a2YtPnNlcSk7 CisJCXRrciA9IHRrZi0+YmFzZSArIChzZXEgJiAweDAxKTsKKwkJbm93ID0ga3RpbWVfdG9fbnMo dGtyLT5iYXNlKTsKKworCQlub3cgKz0gdGltZWtlZXBpbmdfZGVsdGFfdG9fbnModGtyLAorCQkJ CWNsb2Nrc291cmNlX2RlbHRhKAorCQkJCQl0a19jbG9ja19yZWFkKHRrciksCisJCQkJCXRrci0+ Y3ljbGVfbGFzdCwKKwkJCQkJdGtyLT5tYXNrKSk7CisJfSB3aGlsZSAocmVhZF9zZXFjb3VudF9s YXRjaF9yZXRyeSgmdGtmLT5zZXEsIHNlcSkpOworCisJcmV0dXJuIG5vdzsKK30KKwogLyoqCiAg KiBrdGltZV9nZXRfbW9ub19mYXN0X25zIC0gRmFzdCBOTUkgc2FmZSBhY2Nlc3MgdG8gY2xvY2sg bW9ub3RvbmljCiAgKgpAQCAtNDYyLDM5ICs0ODQsMjQgQEAgc3RhdGljIHZvaWQgdXBkYXRlX2Zh c3RfdGltZWtlZXBlcihjb25zdCBzdHJ1Y3QgdGtfcmVhZF9iYXNlICp0a3IsCiAgKgogICogU28g cmVhZGVyIDYgd2lsbCBvYnNlcnZlIHRpbWUgZ29pbmcgYmFja3dhcmRzIHZlcnN1cyByZWFkZXIg NS4KICAqCi0gKiBXaGlsZSBvdGhlciBDUFVzIGFyZSBsaWtlbHkgdG8gYmUgYWJsZSBvYnNlcnZl IHRoYXQsIHRoZSBvbmx5IHdheQorICogV2hpbGUgb3RoZXIgQ1BVcyBhcmUgbGlrZWx5IHRvIGJl IGFibGUgdG8gb2JzZXJ2ZSB0aGF0LCB0aGUgb25seSB3YXkKICAqIGZvciBhIENQVSBsb2NhbCBv YnNlcnZhdGlvbiBpcyB3aGVuIGFuIE5NSSBoaXRzIGluIHRoZSBtaWRkbGUgb2YKICAqIHRoZSB1 cGRhdGUuIFRpbWVzdGFtcHMgdGFrZW4gZnJvbSB0aGF0IE5NSSBjb250ZXh0IG1pZ2h0IGJlIGFo ZWFkCiAgKiBvZiB0aGUgZm9sbG93aW5nIHRpbWVzdGFtcHMuIENhbGxlcnMgbmVlZCB0byBiZSBh d2FyZSBvZiB0aGF0IGFuZAogICogZGVhbCB3aXRoIGl0LgogICovCi1zdGF0aWMgX19hbHdheXNf aW5saW5lIHU2NCBfX2t0aW1lX2dldF9mYXN0X25zKHN0cnVjdCB0a19mYXN0ICp0a2YpCi17Ci0J c3RydWN0IHRrX3JlYWRfYmFzZSAqdGtyOwotCXVuc2lnbmVkIGludCBzZXE7Ci0JdTY0IG5vdzsK LQotCWRvIHsKLQkJc2VxID0gcmF3X3JlYWRfc2VxY291bnRfbGF0Y2goJnRrZi0+c2VxKTsKLQkJ dGtyID0gdGtmLT5iYXNlICsgKHNlcSAmIDB4MDEpOwotCQlub3cgPSBrdGltZV90b19ucyh0a3It PmJhc2UpOwotCi0JCW5vdyArPSB0aW1la2VlcGluZ19kZWx0YV90b19ucyh0a3IsCi0JCQkJY2xv Y2tzb3VyY2VfZGVsdGEoCi0JCQkJCXRrX2Nsb2NrX3JlYWQodGtyKSwKLQkJCQkJdGtyLT5jeWNs ZV9sYXN0LAotCQkJCQl0a3ItPm1hc2spKTsKLQl9IHdoaWxlIChyZWFkX3NlcWNvdW50X2xhdGNo X3JldHJ5KCZ0a2YtPnNlcSwgc2VxKSk7Ci0KLQlyZXR1cm4gbm93OwotfQotCiB1NjQga3RpbWVf Z2V0X21vbm9fZmFzdF9ucyh2b2lkKQogewogCXJldHVybiBfX2t0aW1lX2dldF9mYXN0X25zKCZ0 a19mYXN0X21vbm8pOwogfQogRVhQT1JUX1NZTUJPTF9HUEwoa3RpbWVfZ2V0X21vbm9fZmFzdF9u cyk7CiAKKy8qKgorICoga3RpbWVfZ2V0X3Jhd19mYXN0X25zIC0gRmFzdCBOTUkgc2FmZSBhY2Nl c3MgdG8gY2xvY2sgbW9ub3RvbmljIHJhdworICoKKyAqIENvbnRyYXJ5IHRvIGt0aW1lX2dldF9t b25vX2Zhc3RfbnMoKSB0aGlzIGlzIGFsd2F5cyBjb3JyZWN0IGJlY2F1c2UgdGhlCisgKiBjb252 ZXJzaW9uIGZhY3RvciBpcyBub3QgYWZmZWN0ZWQgYnkgTlRQL1BUUCBjb3JyZWN0aW9uLgorICov CiB1NjQga3RpbWVfZ2V0X3Jhd19mYXN0X25zKHZvaWQpCiB7CiAJcmV0dXJuIF9fa3RpbWVfZ2V0 X2Zhc3RfbnMoJnRrX2Zhc3RfcmF3KTsKQEAgLTUyMSw2ICs1MjgsOSBAQCBFWFBPUlRfU1lNQk9M X0dQTChrdGltZV9nZXRfcmF3X2Zhc3RfbnMpOwogICogKDIpIE9uIDMyLWJpdCBzeXN0ZW1zLCB0 aGUgNjQtYml0IGJvb3Qgb2Zmc2V0ICh0ay0+b2Zmc19ib290KSBtYXkgYmUKICAqIHBhcnRpYWxs eSB1cGRhdGVkLiAgU2luY2UgdGhlIHRrLT5vZmZzX2Jvb3QgdXBkYXRlIGlzIGEgcmFyZSBldmVu dCwgdGhpcwogICogc2hvdWxkIGJlIGEgcmFyZSBvY2N1cnJlbmNlIHdoaWNoIHBvc3Rwcm9jZXNz aW5nIHNob3VsZCBiZSBhYmxlIHRvIGhhbmRsZS4KKyAqCisgKiBUaGUgY2F2ZWF0cyB2cy4gdGlt ZXN0YW1wIG9yZGVyaW5nIGFzIGRvY3VtZW50ZWQgZm9yIGt0aW1lX2dldF9mYXN0X25zKCkKKyAq IGFwcGx5IGFzIHdlbGwuCiAgKi8KIHU2NCBub3RyYWNlIGt0aW1lX2dldF9ib290X2Zhc3RfbnMo dm9pZCkKIHsKQEAgLTUzMCw5ICs1NDAsNiBAQCB1NjQgbm90cmFjZSBrdGltZV9nZXRfYm9vdF9m YXN0X25zKHZvaWQpCiB9CiBFWFBPUlRfU1lNQk9MX0dQTChrdGltZV9nZXRfYm9vdF9mYXN0X25z KTsKIAotLyoKLSAqIFNlZSBjb21tZW50IGZvciBfX2t0aW1lX2dldF9mYXN0X25zKCkgdnMuIHRp bWVzdGFtcCBvcmRlcmluZwotICovCiBzdGF0aWMgX19hbHdheXNfaW5saW5lIHU2NCBfX2t0aW1l X2dldF9yZWFsX2Zhc3Qoc3RydWN0IHRrX2Zhc3QgKnRrZiwgdTY0ICptb25vKQogewogCXN0cnVj dCB0a19yZWFkX2Jhc2UgKnRrcjsKQEAgLTU1Nyw2ICs1NjQsOCBAQCBzdGF0aWMgX19hbHdheXNf aW5saW5lIHU2NCBfX2t0aW1lX2dldF9yZWFsX2Zhc3Qoc3RydWN0IHRrX2Zhc3QgKnRrZiwgdTY0 ICptb25vKQogCiAvKioKICAqIGt0aW1lX2dldF9yZWFsX2Zhc3RfbnM6IC0gTk1JIHNhZmUgYW5k IGZhc3QgYWNjZXNzIHRvIGNsb2NrIHJlYWx0aW1lLgorICoKKyAqIFNlZSBrdGltZV9nZXRfZmFz dF9ucygpIGZvciBkb2N1bWVudGF0aW9uIG9mIHRoZSB0aW1lIHN0YW1wIG9yZGVyaW5nLgogICov CiB1NjQga3RpbWVfZ2V0X3JlYWxfZmFzdF9ucyh2b2lkKQogewpAQCAtNjU0LDYgKzY2Myw3IEBA IHN0YXRpYyB2b2lkIHVwZGF0ZV9wdmNsb2NrX2d0b2Qoc3RydWN0IHRpbWVrZWVwZXIgKnRrLCBi b29sIHdhc19zZXQpCiAKIC8qKgogICogcHZjbG9ja19ndG9kX3JlZ2lzdGVyX25vdGlmaWVyIC0g cmVnaXN0ZXIgYSBwdmNsb2NrIHRpbWVkYXRhIHVwZGF0ZSBsaXN0ZW5lcgorICogQG5iOiBQb2lu dGVyIHRvIHRoZSBub3RpZmllciBibG9jayB0byByZWdpc3RlcgogICovCiBpbnQgcHZjbG9ja19n dG9kX3JlZ2lzdGVyX25vdGlmaWVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIpCiB7CkBAIC02 NzMsNiArNjgzLDcgQEAgRVhQT1JUX1NZTUJPTF9HUEwocHZjbG9ja19ndG9kX3JlZ2lzdGVyX25v dGlmaWVyKTsKIC8qKgogICogcHZjbG9ja19ndG9kX3VucmVnaXN0ZXJfbm90aWZpZXIgLSB1bnJl Z2lzdGVyIGEgcHZjbG9jawogICogdGltZWRhdGEgdXBkYXRlIGxpc3RlbmVyCisgKiBAbmI6IFBv aW50ZXIgdG8gdGhlIG5vdGlmaWVyIGJsb2NrIHRvIHVucmVnaXN0ZXIKICAqLwogaW50IHB2Y2xv Y2tfZ3RvZF91bnJlZ2lzdGVyX25vdGlmaWVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIpCiB7 CkBAIC03NjMsNiArNzc0LDcgQEAgc3RhdGljIHZvaWQgdGltZWtlZXBpbmdfdXBkYXRlKHN0cnVj dCB0aW1la2VlcGVyICp0aywgdW5zaWduZWQgaW50IGFjdGlvbikKIAogLyoqCiAgKiB0aW1la2Vl cGluZ19mb3J3YXJkX25vdyAtIHVwZGF0ZSBjbG9jayB0byB0aGUgY3VycmVudCB0aW1lCisgKiBA dGs6CQlQb2ludGVyIHRvIHRoZSB0aW1la2VlcGVyIHRvIHVwZGF0ZQogICoKICAqIEZvcndhcmQg dGhlIGN1cnJlbnQgY2xvY2sgdG8gdXBkYXRlIGl0cyBzdGF0ZSBzaW5jZSB0aGUgbGFzdCBjYWxs IHRvCiAgKiB1cGRhdGVfd2FsbF90aW1lKCkuIFRoaXMgaXMgdXNlZnVsIGJlZm9yZSBzaWduaWZp Y2FudCBjbG9jayBjaGFuZ2VzLApAQCAtMTMzOSw3ICsxMzUxLDcgQEAgRVhQT1JUX1NZTUJPTChk b19zZXR0aW1lb2ZkYXk2NCk7CiAKIC8qKgogICogdGltZWtlZXBpbmdfaW5qZWN0X29mZnNldCAt IEFkZHMgb3Igc3VidHJhY3RzIGZyb20gdGhlIGN1cnJlbnQgdGltZS4KLSAqIEB0djoJCXBvaW50 ZXIgdG8gdGhlIHRpbWVzcGVjIHZhcmlhYmxlIGNvbnRhaW5pbmcgdGhlIG9mZnNldAorICogQHRz OgkJUG9pbnRlciB0byB0aGUgdGltZXNwZWMgdmFyaWFibGUgY29udGFpbmluZyB0aGUgb2Zmc2V0 CiAgKgogICogQWRkcyBvciBzdWJ0cmFjdHMgYW4gb2Zmc2V0IHZhbHVlIGZyb20gdGhlIGN1cnJl bnQgdGltZS4KICAqLwpAQCAtMTQxNSw5ICsxNDI3LDggQEAgdm9pZCB0aW1la2VlcGluZ193YXJw X2Nsb2NrKHZvaWQpCiAJfQogfQogCi0vKioKKy8qCiAgKiBfX3RpbWVrZWVwaW5nX3NldF90YWlf b2Zmc2V0IC0gU2V0cyB0aGUgVEFJIG9mZnNldCBmcm9tIFVUQyBhbmQgbW9ub3RvbmljCi0gKgog ICovCiBzdGF0aWMgdm9pZCBfX3RpbWVrZWVwaW5nX3NldF90YWlfb2Zmc2V0KHN0cnVjdCB0aW1l a2VlcGVyICp0aywgczMyIHRhaV9vZmZzZXQpCiB7CkBAIC0xNDI1LDcgKzE0MzYsNyBAQCBzdGF0 aWMgdm9pZCBfX3RpbWVrZWVwaW5nX3NldF90YWlfb2Zmc2V0KHN0cnVjdCB0aW1la2VlcGVyICp0 aywgczMyIHRhaV9vZmZzZXQpCiAJdGstPm9mZnNfdGFpID0ga3RpbWVfYWRkKHRrLT5vZmZzX3Jl YWwsIGt0aW1lX3NldCh0YWlfb2Zmc2V0LCAwKSk7CiB9CiAKLS8qKgorLyoKICAqIGNoYW5nZV9j bG9ja3NvdXJjZSAtIFN3YXBzIGNsb2Nrc291cmNlcyBpZiBhIG5ldyBvbmUgaXMgYXZhaWxhYmxl CiAgKgogICogQWNjdW11bGF0ZXMgY3VycmVudCB0aW1lIGludGVydmFsIGFuZCBpbml0aWFsaXpl cyBuZXcgY2xvY2tzb3VyY2UKQEAgLTE1NDgsNiArMTU1OSw3IEBAIHU2NCB0aW1la2VlcGluZ19t YXhfZGVmZXJtZW50KHZvaWQpCiAKIC8qKgogICogcmVhZF9wZXJzaXN0ZW50X2Nsb2NrNjQgLSAg UmV0dXJuIHRpbWUgZnJvbSB0aGUgcGVyc2lzdGVudCBjbG9jay4KKyAqIEB0czogUG9pbnRlciB0 byB0aGUgc3RvcmFnZSBmb3IgdGhlIHJlYWRvdXQgdmFsdWUKICAqCiAgKiBXZWFrIGR1bW15IGZ1 bmN0aW9uIGZvciBhcmNoZXMgdGhhdCBkbyBub3QgeWV0IHN1cHBvcnQgaXQuCiAgKiBSZWFkcyB0 aGUgdGltZSBmcm9tIHRoZSBiYXR0ZXJ5IGJhY2tlZCBwZXJzaXN0ZW50IGNsb2NrLgpAQCAtMTU2 Niw4ICsxNTc4LDkgQEAgdm9pZCBfX3dlYWsgcmVhZF9wZXJzaXN0ZW50X2Nsb2NrNjQoc3RydWN0 IHRpbWVzcGVjNjQgKnRzKQogICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZnJvbSB0aGUgYm9vdC4KICAqCiAgKiBXZWFrIGR1bW15IGZ1bmN0aW9uIGZvciBhcmNoZXMg dGhhdCBkbyBub3QgeWV0IHN1cHBvcnQgaXQuCi0gKiB3YWxsX3RpbWUJLSBjdXJyZW50IHRpbWUg YXMgcmV0dXJuZWQgYnkgcGVyc2lzdGVudCBjbG9jawotICogYm9vdF9vZmZzZXQJLSBvZmZzZXQg dGhhdCBpcyBkZWZpbmVkIGFzIHdhbGxfdGltZSAtIGJvb3RfdGltZQorICogQHdhbGxfdGltZToJ LSBjdXJyZW50IHRpbWUgYXMgcmV0dXJuZWQgYnkgcGVyc2lzdGVudCBjbG9jaworICogQGJvb3Rf b2Zmc2V0OiAtIG9mZnNldCB0aGF0IGlzIGRlZmluZWQgYXMgd2FsbF90aW1lIC0gYm9vdF90aW1l CisgKgogICogVGhlIGRlZmF1bHQgZnVuY3Rpb24gY2FsY3VsYXRlcyBvZmZzZXQgYmFzZWQgb24g dGhlIGN1cnJlbnQgdmFsdWUgb2YKICAqIGxvY2FsX2Nsb2NrKCkuIFRoaXMgd2F5IGFyY2hpdGVj dHVyZXMgdGhhdCBzdXBwb3J0IHNjaGVkX2Nsb2NrKCkgYnV0IGRvbid0CiAgKiBzdXBwb3J0IGRl ZGljYXRlZCBib290IHRpbWUgY2xvY2sgd2lsbCBwcm92aWRlIHRoZSBiZXN0IGVzdGltYXRlIG9m IHRoZQpAQCAtMTY1Miw3ICsxNjY1LDggQEAgc3RhdGljIHN0cnVjdCB0aW1lc3BlYzY0IHRpbWVr ZWVwaW5nX3N1c3BlbmRfdGltZTsKIAogLyoqCiAgKiBfX3RpbWVrZWVwaW5nX2luamVjdF9zbGVl cHRpbWUgLSBJbnRlcm5hbCBmdW5jdGlvbiB0byBhZGQgc2xlZXAgaW50ZXJ2YWwKLSAqIEBkZWx0 YTogcG9pbnRlciB0byBhIHRpbWVzcGVjIGRlbHRhIHZhbHVlCisgKiBAdGs6CQlQb2ludGVyIHRv IHRoZSB0aW1la2VlcGVyIHRvIGJlIHVwZGF0ZWQKKyAqIEBkZWx0YToJUG9pbnRlciB0byB0aGUg ZGVsdGEgdmFsdWUgaW4gdGltZXNwZWM2NCBmb3JtYXQKICAqCiAgKiBUYWtlcyBhIHRpbWVzcGVj IG9mZnNldCBtZWFzdXJpbmcgYSBzdXNwZW5kIGludGVydmFsIGFuZCBwcm9wZXJseQogICogYWRk cyB0aGUgc2xlZXAgb2Zmc2V0IHRvIHRoZSB0aW1la2VlcGluZyB2YXJpYWJsZXMuCkBAIC0yMDIz LDEzICsyMDM3LDEyIEBAIHN0YXRpYyB2b2lkIHRpbWVrZWVwaW5nX2FkanVzdChzdHJ1Y3QgdGlt ZWtlZXBlciAqdGssIHM2NCBvZmZzZXQpCiAJfQogfQogCi0vKioKKy8qCiAgKiBhY2N1bXVsYXRl X25zZWNzX3RvX3NlY3MgLSBBY2N1bXVsYXRlcyBuc2VjcyBpbnRvIHNlY3MKICAqCiAgKiBIZWxw ZXIgZnVuY3Rpb24gdGhhdCBhY2N1bXVsYXRlcyB0aGUgbnNlY3MgZ3JlYXRlciB0aGFuIGEgc2Vj b25kCiAgKiBmcm9tIHRoZSB4dGltZV9uc2VjIGZpZWxkIHRvIHRoZSB4dGltZV9zZWNzIGZpZWxk LgogICogSXQgYWxzbyBjYWxscyBpbnRvIHRoZSBOVFAgY29kZSB0byBoYW5kbGUgbGVhcHNlY29u ZCBwcm9jZXNzaW5nLgotICoKICAqLwogc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgYWNjdW11 bGF0ZV9uc2Vjc190b19zZWNzKHN0cnVjdCB0aW1la2VlcGVyICp0aykKIHsKQEAgLTIwNzEsNyAr MjA4NCw3IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGFjY3VtdWxhdGVfbnNlY3NfdG9f c2VjcyhzdHJ1Y3QgdGltZWtlZXBlciAqdGspCiAJcmV0dXJuIGNsb2NrX3NldDsKIH0KIAotLyoq CisvKgogICogbG9nYXJpdGhtaWNfYWNjdW11bGF0aW9uIC0gc2hpZnRlZCBhY2N1bXVsYXRpb24g b2YgY3ljbGVzCiAgKgogICogVGhpcyBmdW5jdGlvbnMgYWNjdW11bGF0ZXMgYSBzaGlmdGVkIGlu dGVydmFsIG9mIGN5Y2xlcyBpbnRvCkBAIC0yMzE0LDcgKzIzMjcsNyBAQCBrdGltZV90IGt0aW1l X2dldF91cGRhdGVfb2Zmc2V0c19ub3codW5zaWduZWQgaW50ICpjd3NzZXEsIGt0aW1lX3QgKm9m ZnNfcmVhbCwKIAlyZXR1cm4gYmFzZTsKIH0KIAotLyoqCisvKgogICogdGltZWtlZXBpbmdfdmFs aWRhdGVfdGltZXggLSBFbnN1cmVzIHRoZSB0aW1leCBpcyBvayBmb3IgdXNlIGluIGRvX2FkanRp bWV4CiAgKi8KIHN0YXRpYyBpbnQgdGltZWtlZXBpbmdfdmFsaWRhdGVfdGltZXgoY29uc3Qgc3Ry dWN0IF9fa2VybmVsX3RpbWV4ICp0eGMpCmRpZmYgLS1naXQgYS9rZXJuZWwvdGltZS90aW1la2Vl cGluZy5oIGIva2VybmVsL3RpbWUvdGltZWtlZXBpbmcuaAppbmRleCAwOTk3MzdmNmYxMGMuLjZj MmNiZDllZjk5OSAxMDA2NDQKLS0tIGEva2VybmVsL3RpbWUvdGltZWtlZXBpbmcuaAorKysgYi9r ZXJuZWwvdGltZS90aW1la2VlcGluZy5oCkBAIC0yNiw3ICsyNiw3IEBAIGV4dGVybiB2b2lkIGRv X3RpbWVyKHVuc2lnbmVkIGxvbmcgdGlja3MpOwogZXh0ZXJuIHZvaWQgdXBkYXRlX3dhbGxfdGlt ZSh2b2lkKTsKIAogZXh0ZXJuIHJhd19zcGlubG9ja190IGppZmZpZXNfbG9jazsKLWV4dGVybiBz ZXFjb3VudF90IGppZmZpZXNfc2VxOworZXh0ZXJuIHNlcWNvdW50X3Jhd19zcGlubG9ja190IGpp ZmZpZXNfc2VxOwogCiAjZGVmaW5lIENTX05BTUVfTEVOCTMyCiAKZGlmZiAtLWdpdCBhL2tlcm5l bC90aW1lL3RpbWVyLmMgYi9rZXJuZWwvdGltZS90aW1lci5jCmluZGV4IGRlMzdlMzNhODY4ZC4u ZWJmM2IyNmQyNTAxIDEwMDY0NAotLS0gYS9rZXJuZWwvdGltZS90aW1lci5jCisrKyBiL2tlcm5l bC90aW1lL3RpbWVyLmMKQEAgLTEyODgsNyArMTI4OCw3IEBAIHN0YXRpYyB2b2lkIGRlbF90aW1l cl93YWl0X3J1bm5pbmcoc3RydWN0IHRpbWVyX2xpc3QgKnRpbWVyKQogCXUzMiB0ZjsKIAogCXRm ID0gUkVBRF9PTkNFKHRpbWVyLT5mbGFncyk7Ci0JaWYgKCEodGYgJiBUSU1FUl9NSUdSQVRJTkcp KSB7CisJaWYgKCEodGYgJiAoVElNRVJfTUlHUkFUSU5HIHwgVElNRVJfSVJRU0FGRSkpKSB7CiAJ CXN0cnVjdCB0aW1lcl9iYXNlICpiYXNlID0gZ2V0X3RpbWVyX2Jhc2UodGYpOwogCiAJCS8qCkBA IC0xMzcyLDYgKzEzNzIsMTMgQEAgaW50IGRlbF90aW1lcl9zeW5jKHN0cnVjdCB0aW1lcl9saXN0 ICp0aW1lcikKIAkgKi8KIAlXQVJOX09OKGluX2lycSgpICYmICEodGltZXItPmZsYWdzICYgVElN RVJfSVJRU0FGRSkpOwogCisJLyoKKwkgKiBNdXN0IGJlIGFibGUgdG8gc2xlZXAgb24gUFJFRU1Q VF9SVCBiZWNhdXNlIG9mIHRoZSBzbG93cGF0aCBpbgorCSAqIGRlbF90aW1lcl93YWl0X3J1bm5p bmcoKS4KKwkgKi8KKwlpZiAoSVNfRU5BQkxFRChDT05GSUdfUFJFRU1QVF9SVCkgJiYgISh0aW1l ci0+ZmxhZ3MgJiBUSU1FUl9JUlFTQUZFKSkKKwkJbG9ja2RlcF9hc3NlcnRfcHJlZW1wdGlvbl9l bmFibGVkKCk7CisKIAlkbyB7CiAJCXJldCA9IHRyeV90b19kZWxfdGltZXJfc3luYyh0aW1lcik7 CiAKQEAgLTE2OTgsMjkgKzE3MDUsNiBAQCB2b2lkIHRpbWVyX2NsZWFyX2lkbGUodm9pZCkKIH0K ICNlbmRpZgogCi0vKgotICogQ2FsbGVkIGZyb20gdGhlIHRpbWVyIGludGVycnVwdCBoYW5kbGVy IHRvIGNoYXJnZSBvbmUgdGljayB0byB0aGUgY3VycmVudAotICogcHJvY2Vzcy4gIHVzZXJfdGlj ayBpcyAxIGlmIHRoZSB0aWNrIGlzIHVzZXIgdGltZSwgMCBmb3Igc3lzdGVtLgotICovCi12b2lk IHVwZGF0ZV9wcm9jZXNzX3RpbWVzKGludCB1c2VyX3RpY2spCi17Ci0Jc3RydWN0IHRhc2tfc3Ry dWN0ICpwID0gY3VycmVudDsKLQotCVBSQU5ET01fQUREX05PSVNFKGppZmZpZXMsIHVzZXJfdGlj aywgcCwgMCk7Ci0KLQkvKiBOb3RlOiB0aGlzIHRpbWVyIGlycSBjb250ZXh0IG11c3QgYmUgYWNj b3VudGVkIGZvciBhcyB3ZWxsLiAqLwotCWFjY291bnRfcHJvY2Vzc190aWNrKHAsIHVzZXJfdGlj ayk7Ci0JcnVuX2xvY2FsX3RpbWVycygpOwotCXJjdV9zY2hlZF9jbG9ja19pcnEodXNlcl90aWNr KTsKLSNpZmRlZiBDT05GSUdfSVJRX1dPUksKLQlpZiAoaW5faXJxKCkpCi0JCWlycV93b3JrX3Rp Y2soKTsKLSNlbmRpZgotCXNjaGVkdWxlcl90aWNrKCk7Ci0JaWYgKElTX0VOQUJMRUQoQ09ORklH X1BPU0lYX1RJTUVSUykpCi0JCXJ1bl9wb3NpeF9jcHVfdGltZXJzKCk7Ci19Ci0KIC8qKgogICog X19ydW5fdGltZXJzIC0gcnVuIGFsbCBleHBpcmVkIHRpbWVycyAoaWYgYW55KSBvbiB0aGlzIENQ VS4KICAqIEBiYXNlOiB0aGUgdGltZXIgdmVjdG9yIHRvIGJlIHByb2Nlc3NlZC4KQEAgLTE3NzAs NyArMTc1NCw3IEBAIHN0YXRpYyBfX2xhdGVudF9lbnRyb3B5IHZvaWQgcnVuX3RpbWVyX3NvZnRp cnEoc3RydWN0IHNvZnRpcnFfYWN0aW9uICpoKQogLyoKICAqIENhbGxlZCBieSB0aGUgbG9jYWws IHBlci1DUFUgdGltZXIgaW50ZXJydXB0IG9uIFNNUC4KICAqLwotdm9pZCBydW5fbG9jYWxfdGlt ZXJzKHZvaWQpCitzdGF0aWMgdm9pZCBydW5fbG9jYWxfdGltZXJzKHZvaWQpCiB7CiAJc3RydWN0 IHRpbWVyX2Jhc2UgKmJhc2UgPSB0aGlzX2NwdV9wdHIoJnRpbWVyX2Jhc2VzW0JBU0VfU1REXSk7 CiAKQEAgLTE3ODcsNiArMTc3MSwyOSBAQCB2b2lkIHJ1bl9sb2NhbF90aW1lcnModm9pZCkKIAly YWlzZV9zb2Z0aXJxKFRJTUVSX1NPRlRJUlEpOwogfQogCisvKgorICogQ2FsbGVkIGZyb20gdGhl IHRpbWVyIGludGVycnVwdCBoYW5kbGVyIHRvIGNoYXJnZSBvbmUgdGljayB0byB0aGUgY3VycmVu dAorICogcHJvY2Vzcy4gIHVzZXJfdGljayBpcyAxIGlmIHRoZSB0aWNrIGlzIHVzZXIgdGltZSwg MCBmb3Igc3lzdGVtLgorICovCit2b2lkIHVwZGF0ZV9wcm9jZXNzX3RpbWVzKGludCB1c2VyX3Rp Y2spCit7CisJc3RydWN0IHRhc2tfc3RydWN0ICpwID0gY3VycmVudDsKKworCVBSQU5ET01fQURE X05PSVNFKGppZmZpZXMsIHVzZXJfdGljaywgcCwgMCk7CisKKwkvKiBOb3RlOiB0aGlzIHRpbWVy IGlycSBjb250ZXh0IG11c3QgYmUgYWNjb3VudGVkIGZvciBhcyB3ZWxsLiAqLworCWFjY291bnRf cHJvY2Vzc190aWNrKHAsIHVzZXJfdGljayk7CisJcnVuX2xvY2FsX3RpbWVycygpOworCXJjdV9z Y2hlZF9jbG9ja19pcnEodXNlcl90aWNrKTsKKyNpZmRlZiBDT05GSUdfSVJRX1dPUksKKwlpZiAo aW5faXJxKCkpCisJCWlycV93b3JrX3RpY2soKTsKKyNlbmRpZgorCXNjaGVkdWxlcl90aWNrKCk7 CisJaWYgKElTX0VOQUJMRUQoQ09ORklHX1BPU0lYX1RJTUVSUykpCisJCXJ1bl9wb3NpeF9jcHVf dGltZXJzKCk7Cit9CisKIC8qCiAgKiBTaW5jZSBzY2hlZHVsZV90aW1lb3V0KCkncyB0aW1lciBp cyBkZWZpbmVkIG9uIHRoZSBzdGFjaywgaXQgbXVzdCBzdG9yZQogICogdGhlIHRhcmdldCB0YXNr IG9uIHRoZSBzdGFjayBhcyB3ZWxsLgpkaWZmIC0tZ2l0IGEva2VybmVsL3RpbWUvdGltZXJfbGlz dC5jIGIva2VybmVsL3RpbWUvdGltZXJfbGlzdC5jCmluZGV4IGFjYjMyNmY1ZjUwYS4uNjkzOTE0 MGFiN2M1IDEwMDY0NAotLS0gYS9rZXJuZWwvdGltZS90aW1lcl9saXN0LmMKKysrIGIva2VybmVs L3RpbWUvdGltZXJfbGlzdC5jCkBAIC00MiwyNCArNDIsMTEgQEAgc3RhdGljIHZvaWQgU0VRX3By aW50ZihzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogCXZhX2VuZChh cmdzKTsKIH0KIAotc3RhdGljIHZvaWQgcHJpbnRfbmFtZV9vZmZzZXQoc3RydWN0IHNlcV9maWxl ICptLCB2b2lkICpzeW0pCi17Ci0JY2hhciBzeW1uYW1lW0tTWU1fTkFNRV9MRU5dOwotCi0JaWYg KGxvb2t1cF9zeW1ib2xfbmFtZSgodW5zaWduZWQgbG9uZylzeW0sIHN5bW5hbWUpIDwgMCkKLQkJ U0VRX3ByaW50ZihtLCAiPCVwSz4iLCBzeW0pOwotCWVsc2UKLQkJU0VRX3ByaW50ZihtLCAiJXMi LCBzeW1uYW1lKTsKLX0KLQogc3RhdGljIHZvaWQKIHByaW50X3RpbWVyKHN0cnVjdCBzZXFfZmls ZSAqbSwgc3RydWN0IGhydGltZXIgKnRhZGRyLCBzdHJ1Y3QgaHJ0aW1lciAqdGltZXIsCiAJICAg IGludCBpZHgsIHU2NCBub3cpCiB7Ci0JU0VRX3ByaW50ZihtLCAiICMlZDogIiwgaWR4KTsKLQlw cmludF9uYW1lX29mZnNldChtLCB0YWRkcik7Ci0JU0VRX3ByaW50ZihtLCAiLCAiKTsKLQlwcmlu dF9uYW1lX29mZnNldChtLCB0aW1lci0+ZnVuY3Rpb24pOworCVNFUV9wcmludGYobSwgIiAjJWQ6 IDwlcEs+LCAlcHMiLCBpZHgsIHRhZGRyLCB0aW1lci0+ZnVuY3Rpb24pOwogCVNFUV9wcmludGYo bSwgIiwgUzolMDJ4IiwgdGltZXItPnN0YXRlKTsKIAlTRVFfcHJpbnRmKG0sICJcbiIpOwogCVNF UV9wcmludGYobSwgIiAjIGV4cGlyZXMgYXQgJUx1LSVMdSBuc2VjcyBbaW4gJUxkIHRvICVMZCBu c2Vjc11cbiIsCkBAIC0xMTYsOSArMTAzLDcgQEAgcHJpbnRfYmFzZShzdHJ1Y3Qgc2VxX2ZpbGUg Km0sIHN0cnVjdCBocnRpbWVyX2Nsb2NrX2Jhc2UgKmJhc2UsIHU2NCBub3cpCiAKIAlTRVFfcHJp bnRmKG0sICIgIC5yZXNvbHV0aW9uOiAldSBuc2Vjc1xuIiwgaHJ0aW1lcl9yZXNvbHV0aW9uKTsK IAotCVNFUV9wcmludGYobSwgICAiICAuZ2V0X3RpbWU6ICAgIik7Ci0JcHJpbnRfbmFtZV9vZmZz ZXQobSwgYmFzZS0+Z2V0X3RpbWUpOwotCVNFUV9wcmludGYobSwgICAiXG4iKTsKKwlTRVFfcHJp bnRmKG0sICAgIiAgLmdldF90aW1lOiAgICVwc1xuIiwgYmFzZS0+Z2V0X3RpbWUpOwogI2lmZGVm IENPTkZJR19ISUdIX1JFU19USU1FUlMKIAlTRVFfcHJpbnRmKG0sICIgIC5vZmZzZXQ6ICAgICAl THUgbnNlY3NcbiIsCiAJCSAgICh1bnNpZ25lZCBsb25nIGxvbmcpIGt0aW1lX3RvX25zKGJhc2Ut Pm9mZnNldCkpOwpAQCAtMjE4LDQyICsyMDMsMjkgQEAgcHJpbnRfdGlja2RldmljZShzdHJ1Y3Qg c2VxX2ZpbGUgKm0sIHN0cnVjdCB0aWNrX2RldmljZSAqdGQsIGludCBjcHUpCiAJU0VRX3ByaW50 ZihtLCAiIG5leHRfZXZlbnQ6ICAgICAlTGQgbnNlY3NcbiIsCiAJCSAgICh1bnNpZ25lZCBsb25n IGxvbmcpIGt0aW1lX3RvX25zKGRldi0+bmV4dF9ldmVudCkpOwogCi0JU0VRX3ByaW50ZihtLCAi IHNldF9uZXh0X2V2ZW50OiAiKTsKLQlwcmludF9uYW1lX29mZnNldChtLCBkZXYtPnNldF9uZXh0 X2V2ZW50KTsKLQlTRVFfcHJpbnRmKG0sICJcbiIpOworCVNFUV9wcmludGYobSwgIiBzZXRfbmV4 dF9ldmVudDogJXBzXG4iLCBkZXYtPnNldF9uZXh0X2V2ZW50KTsKIAotCWlmIChkZXYtPnNldF9z dGF0ZV9zaHV0ZG93bikgewotCQlTRVFfcHJpbnRmKG0sICIgc2h1dGRvd246ICIpOwotCQlwcmlu dF9uYW1lX29mZnNldChtLCBkZXYtPnNldF9zdGF0ZV9zaHV0ZG93bik7Ci0JCVNFUV9wcmludGYo bSwgIlxuIik7Ci0JfQorCWlmIChkZXYtPnNldF9zdGF0ZV9zaHV0ZG93bikKKwkJU0VRX3ByaW50 ZihtLCAiIHNodXRkb3duOiAgICAgICAlcHNcbiIsCisJCQlkZXYtPnNldF9zdGF0ZV9zaHV0ZG93 bik7CiAKLQlpZiAoZGV2LT5zZXRfc3RhdGVfcGVyaW9kaWMpIHsKLQkJU0VRX3ByaW50ZihtLCAi IHBlcmlvZGljOiAiKTsKLQkJcHJpbnRfbmFtZV9vZmZzZXQobSwgZGV2LT5zZXRfc3RhdGVfcGVy aW9kaWMpOwotCQlTRVFfcHJpbnRmKG0sICJcbiIpOwotCX0KKwlpZiAoZGV2LT5zZXRfc3RhdGVf cGVyaW9kaWMpCisJCVNFUV9wcmludGYobSwgIiBwZXJpb2RpYzogICAgICAgJXBzXG4iLAorCQkJ ZGV2LT5zZXRfc3RhdGVfcGVyaW9kaWMpOwogCi0JaWYgKGRldi0+c2V0X3N0YXRlX29uZXNob3Qp IHsKLQkJU0VRX3ByaW50ZihtLCAiIG9uZXNob3Q6ICAiKTsKLQkJcHJpbnRfbmFtZV9vZmZzZXQo bSwgZGV2LT5zZXRfc3RhdGVfb25lc2hvdCk7Ci0JCVNFUV9wcmludGYobSwgIlxuIik7Ci0JfQor CWlmIChkZXYtPnNldF9zdGF0ZV9vbmVzaG90KQorCQlTRVFfcHJpbnRmKG0sICIgb25lc2hvdDog ICAgICAgICVwc1xuIiwKKwkJCWRldi0+c2V0X3N0YXRlX29uZXNob3QpOwogCi0JaWYgKGRldi0+ c2V0X3N0YXRlX29uZXNob3Rfc3RvcHBlZCkgewotCQlTRVFfcHJpbnRmKG0sICIgb25lc2hvdCBz dG9wcGVkOiAiKTsKLQkJcHJpbnRfbmFtZV9vZmZzZXQobSwgZGV2LT5zZXRfc3RhdGVfb25lc2hv dF9zdG9wcGVkKTsKLQkJU0VRX3ByaW50ZihtLCAiXG4iKTsKLQl9CisJaWYgKGRldi0+c2V0X3N0 YXRlX29uZXNob3Rfc3RvcHBlZCkKKwkJU0VRX3ByaW50ZihtLCAiIG9uZXNob3Qgc3RvcHBlZDog JXBzXG4iLAorCQkJZGV2LT5zZXRfc3RhdGVfb25lc2hvdF9zdG9wcGVkKTsKIAotCWlmIChkZXYt PnRpY2tfcmVzdW1lKSB7Ci0JCVNFUV9wcmludGYobSwgIiByZXN1bWU6ICAgIik7Ci0JCXByaW50 X25hbWVfb2Zmc2V0KG0sIGRldi0+dGlja19yZXN1bWUpOwotCQlTRVFfcHJpbnRmKG0sICJcbiIp OwotCX0KKwlpZiAoZGV2LT50aWNrX3Jlc3VtZSkKKwkJU0VRX3ByaW50ZihtLCAiIHJlc3VtZTog ICAgICAgICAlcHNcbiIsCisJCQlkZXYtPnRpY2tfcmVzdW1lKTsKIAotCVNFUV9wcmludGYobSwg IiBldmVudF9oYW5kbGVyOiAgIik7Ci0JcHJpbnRfbmFtZV9vZmZzZXQobSwgZGV2LT5ldmVudF9o YW5kbGVyKTsKKwlTRVFfcHJpbnRmKG0sICIgZXZlbnRfaGFuZGxlcjogICVwc1xuIiwgZGV2LT5l dmVudF9oYW5kbGVyKTsKIAlTRVFfcHJpbnRmKG0sICJcbiIpOwogCVNFUV9wcmludGYobSwgIiBy ZXRyaWVzOiAgICAgICAgJWx1XG4iLCBkZXYtPnJldHJpZXMpOwogCVNFUV9wcmludGYobSwgIlxu Iik7Cgo=