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.8 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 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 EF972C11F66 for ; Tue, 29 Jun 2021 14:39:05 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C61C661DC0 for ; Tue, 29 Jun 2021 14:39:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234590AbhF2Olb (ORCPT ); Tue, 29 Jun 2021 10:41:31 -0400 Received: from Galois.linutronix.de ([193.142.43.55]:54736 "EHLO galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234532AbhF2OlS (ORCPT ); Tue, 29 Jun 2021 10:41:18 -0400 Date: Tue, 29 Jun 2021 14:35:15 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1624977529; 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=q+R1YupzrbnEiOe9QyQsnygRhlgJdpLrNU6Nwx5vej8=; b=km9B/dQzfNKWHTtPca1z9wi2SFKbhxZQ864NiJUNaqVEx0JyH4b8h1fe1IsjL+7EFemHxM 9U/i8uqrU3U6IweHR8lM50ctzSWg0NZJH+mSnxoYzFqivOzcv7lwp1A669cTUkVynES9jr vpphrCYiC4hIXV5dUJ9rnKeXpt2wQ9NaVNWq18xTKFioHkQCaD5XSUa5JzesUKHc9+tDY7 1HILxjKbecsL9SisPcgy+dAcfH6h3AFHUQTLY0Rq+nMI6p9ZYHwly3tqtFkL5CevR2A7Dz RUmHlklg+7YFVV4sPWmpEVNcB6d0011R0fHwwC2tQ4Bekt+QdfCla0LpbpA8CA== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1624977529; 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=q+R1YupzrbnEiOe9QyQsnygRhlgJdpLrNU6Nwx5vej8=; b=9a7W9JLu+QRJjvkR68WFcBdl5xDIGc5U9ESyqqEWzPAIvT6TLJ7Gb9bjznMsiRhClWbJ8j 6iZg7JJMIafF1iCA== From: Thomas Gleixner To: Linus Torvalds Cc: linux-kernel@vger.kernel.org, x86@kernel.org Subject: [GIT pull] timers/core for v5.14-rc1 References: <162497731214.6531.6083197571290189651.tglx@nanos> Message-ID: <162497731576.6531.7816162765274356961.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 Z2l0IHRpbWVycy1jb3JlLTIwMjEtMDYtMjkKCnVwIHRvOiAgMmQwYTllYjIzY2NmOiB0aW1lL2t1 bml0OiBBZGQgbWlzc2luZyBNT0RVTEVfTElDRU5TRSgpCgpUaW1lIGFuZCBjbG9ja3NvdXJjZS9j bG9ja2V2ZW50IHJlbGF0ZWQgdXBkYXRlczoKCiBDb3JlIGNoYW5nZXM6CiAKICAgLSBJbmZyYXN0 cnVjdHVyZSB0byBzdXBwb3J0IHBlciBDUFUgImJyb2FkY2FzdCIgZGV2aWNlcyBmb3IgcGVyIENQ VQogICAgIGNsb2NrZXZlbnQgZGV2aWNlcyB3aGljaCBzdG9wIGluIGRlZXAgaWRsZSBzdGF0ZXMu IFRoaXMgYWxsb3dzIHRvCiAgICAgdXRpbGl6ZSB0aGUgbW9yZSBlZmZpY2llbnQgYXJjaGl0ZWN0 ZWQgdGltZXIgb24gY2VydGFpbiBBUk0gU29DcyBmb3IKICAgICBub3JtYWwgb3BlcmF0aW9uIGlu c3RlYWQgb2YgcGVybWFuZW50ZWx5IHVzaW5nIHRoZSBzbG93IHRvIGFjY2VzcyBTb0MKICAgICBz cGVjaWZpYyBjbG9ja2V2ZW50IGRldmljZS4KCiAgIC0gUHJpbnQgdGhlIG5hbWUgb2YgdGhlIGJy b2FkY2FzdC93YWtldXAgZGV2aWNlIGluIC9wcm9jL3RpbWVyX2xpc3QKCiAgIC0gTWFrZSB0aGUg Y2xvY2tzb3VyY2Ugd2F0Y2hkb2cgbW9yZSByb2J1c3QgYWdhaW5zdCBkZWxheXMgYmV0d2Vlbgog ICAgIHJlYWRpbmcgdGhlIGN1cnJlbnQgYWN0aXZlIGNsb2Nrc291cmNlIGFuZCB0aGUgd2F0Y2hk b2cgY2xvY2tzb3VyY2UuCiAgICAgU3VjaCBkZWxheXMgY2FuIGJlIGNhdXNlZCBieSBOTUlzLCBT TUlzIGFuZCB2Q1BVIHByZWVtcHRpb24uICBIYW5kbGUKICAgICB0aGlzIGJ5IHJlYWRpbmcgdGhl IHdhdGNoZG9nIGNsb2Nrc291cmNlIHR3aWNlLCBpLmUuIGJlZm9yZSBhbmQgYWZ0ZXIKICAgICBy ZWFkaW5nIHRoZSBjdXJyZW50IGFjdGl2ZSBjbG9ja3NvdXJjZS4gSW4gY2FzZSB0aGF0IHRoZSB0 d28gd2F0Y2hkb2cKICAgICByZWFkcyBzaG93cyBhbiBleGNlc3NpdmUgdGltZSBkZWx0YSwgdGhl IHJlYWQgc2VxdWVuY2UgaXMgcmVwZWF0ZWQgdXAKICAgICB0byAzIHRpbWVzLgoKICAgLSBJbXBy b3ZlIHRoZSBkZWJ1ZyBvdXRwdXQgYW5kIGFkZCBhIHRlc3QgbW9kdWxlIGZvciB0aGUgd2F0Y2hk b2cKICAgICBtZWNoYW5pc20uCgogICAtIFJlaW1wbGVtZW50YXRpb24gb2YgdGhlIHZlbmVyYWJs ZSB0aW1lNjRfdG9fdG0oKSBmdW5jdGlvbiB3aXRoIGEKICAgICBmYXN0ZXIgYW5kIHNpZ25pZmlj YW50bHkgc21hbGxlciB2ZXJzaW9uLiBTdHJhaWdodCBmcm9tIHRoZSBzb3VyY2UsCiAgICAgaS5l LiB0aGUgYXV0aG9yIG9mIHRoZSByZWxhdGVkIHJlc2VhcmNoIHBhcGVyIGNvbnRyaWJ1dGVkIHRo aXMhCgogRHJpdmVyIGNoYW5nZXM6CgogICAtIE5vIG5ldyBkcml2ZXJzLCBub3QgZXZlbiBuZXcg ZGV2aWNlIHRyZWUgYmluZGluZ3MhCgogICAtIEZpeGVzLCBpbXByb3ZlbWVudHMgYW5kIGNsZWFu dXBzIGFuZCBhbGwgb3ZlciB0aGUgcGxhY2UuCgpUaGFua3MsCgoJdGdseAoKLS0tLS0tLS0tLS0t LS0tLS0tPgpBbmRyZWEgTWVyZWxsbyAoMik6CiAgICAgIGNsb2Nrc291cmNlL2RyaXZlcnMvYXJt X2dsb2JhbF90aW1lcjogSW1wbGVtZW50IHJhdGUgY29tcGVuc2F0aW9uIHdoZW5ldmVyIHNvdXJj ZSBjbG9jayBjaGFuZ2VzCiAgICAgIGFybTogenlucTogZG9uJ3QgZGlzYWJsZSBDT05GSUdfQVJN X0dMT0JBTF9USU1FUiBkdWUgdG8gQ09ORklHX0NQVV9GUkVRIGFueW1vcmUKCkJhb2t1biBMaSAo Mik6CiAgICAgIGNsb2NrZXZlbnRzOiBBZGQgbWlzc2luZyBwYXJhbWV0ZXIgZG9jdW1lbnRhdGlv bgogICAgICBjbG9ja2V2ZW50czogVXNlIGxpc3RfbW92ZSgpIGluc3RlYWQgb2YgbGlzdF9kZWwo KS9saXN0X2FkZCgpCgpDYXNzaW8gTmVyaSAoMSk6CiAgICAgIHRpbWU6IEltcHJvdmUgcGVyZm9y bWFuY2Ugb2YgdGltZTY0X3RvX3RtKCkKCkV2YW4gQmVubiAoMSk6CiAgICAgIGNsb2Nrc291cmNl L2RyaXZlcnMvbWVkaWF0ZWs6IEFjayBhbmQgZGlzYWJsZSBpbnRlcnJ1cHRzIG9uIHN1c3BlbmQK CkZlbmcgVGFuZyAoMSk6CiAgICAgIGNsb2Nrc291cmNlOiBQcmludCBkZXZpYXRpb24gaW4gbmFu b3NlY29uZHMgd2hlbiBhIGNsb2Nrc291cmNlIGJlY29tZXMgdW5zdGFibGUKCkppc2hlbmcgWmhh bmcgKDEpOgogICAgICBjbG9ja3NvdXJjZS9kcml2ZXJzL2FybV9hcmNoX3RpbWVyOiBSZW1vdmUg YXJjaF90aW1lcl9yYXRlMQoKS3J6eXN6dG9mIEtvemxvd3NraSAoNCk6CiAgICAgIGNsb2Nrc291 cmNlL2RyaXZlcnMvc2Ftc3VuZ19wd206IE1pbm9yIHdoaXRlc3BhY2UgY2xlYW51cAogICAgICBj bG9ja3NvdXJjZS9kcml2ZXJzL3NhbXN1bmdfcHdtOiBDb25zdGlmeSBwYXNzZWQgc3RydWN0dXJl CiAgICAgIGNsb2Nrc291cmNlL2RyaXZlcnMvc2Ftc3VuZ19wd206IENsZWFudXAgb24gaW5pdCBl cnJvcgogICAgICBjbG9ja3NvdXJjZS9kcml2ZXJzL3NhbXN1bmdfcHdtOiBDb25zdGlmeSBzb3Vy Y2UgSU8gbWVtb3J5CgpQYXVsIEUuIE1jS2VubmV5ICg1KToKICAgICAgY2xvY2tzb3VyY2U6IFJl dHJ5IGNsb2NrIHJlYWQgaWYgbG9uZyBkZWxheXMgZGV0ZWN0ZWQKICAgICAgY2xvY2tzb3VyY2U6 IENoZWNrIHBlci1DUFUgY2xvY2sgc3luY2hyb25pemF0aW9uIHdoZW4gbWFya2VkIHVuc3RhYmxl CiAgICAgIGNsb2Nrc291cmNlOiBMaW1pdCBudW1iZXIgb2YgQ1BVcyBjaGVja2VkIGZvciBjbG9j ayBzeW5jaHJvbml6YXRpb24KICAgICAgY2xvY2tzb3VyY2U6IFJlZHVjZSBjbG9ja3NvdXJjZS1z a2V3IHRocmVzaG9sZAogICAgICBjbG9ja3NvdXJjZTogUHJvdmlkZSBrZXJuZWwgbW9kdWxlIHRv IHRlc3QgY2xvY2tzb3VyY2Ugd2F0Y2hkb2cKClNhbXVlbCBIb2xsYW5kICgxKToKICAgICAgY2xv Y2tzb3VyY2UvYXJtX2FyY2hfdGltZXI6IEltcHJvdmUgQWxsd2lubmVyIEE2NCB0aW1lciB3b3Jr YXJvdW5kCgpUaG9tYXMgR2xlaXhuZXIgKDEpOgogICAgICB0aW1lL2t1bml0OiBBZGQgbWlzc2lu ZyBNT0RVTEVfTElDRU5TRSgpCgpUb255IExpbmRncmVuICgyKToKICAgICAgY2xvY2tzb3VyY2Uv ZHJpdmVycy90aW1lci10aS1kbTogU2F2ZSBhbmQgcmVzdG9yZSB0aW1lciBUSU9DUF9DRkcKICAg ICAgY2xvY2tzb3VyY2UvZHJpdmVycy90aW1lci10aS1kbTogRHJvcCB1bm5lY2Vzc2FyeSByZXN0 b3JlCgpXYW4gSmlhYmluZyAoMSk6CiAgICAgIGNsb2Nrc291cmNlL2RyaXZlcnMvYXJtX2dsb2Jh bF90aW1lcjogUmVtb3ZlIGR1cGxpY2F0ZWQgYXJndW1lbnQgaW4gYXJtX2dsb2JhbF90aW1lcgoK V2lsbCBEZWFjb24gKDUpOgogICAgICB0aWNrL2Jyb2FkY2FzdDogRHJvcCB1bm5lZWRlZCBDT05G SUdfR0VORVJJQ19DTE9DS0VWRU5UU19CUk9BRENBU1QgZ3VhcmQKICAgICAgdGljay9icm9hZGNh c3Q6IFNwbGl0IF9fdGlja19icm9hZGNhc3Rfb25lc2hvdF9jb250cm9sKCkgaW50byBhIGhlbHBl cgogICAgICB0aWNrL2Jyb2FkY2FzdDogUHJlZmVyIHBlci1jcHUgb25lc2hvdCB3YWtldXAgdGlt ZXJzIHRvIGJyb2FkY2FzdAogICAgICB0aWNrL2Jyb2FkY2FzdDogUHJvZ3JhbSB3YWtldXAgdGlt ZXIgd2hlbiBlbnRlcmluZyBpZGxlIGlmIHJlcXVpcmVkCiAgICAgIHRpbWVyX2xpc3Q6IFByaW50 IG5hbWUgb2YgcGVyLWNwdSB3YWtldXAgZGV2aWNlCgpZdWVIYWliaW5nICgxKToKICAgICAgY2xv Y2tldmVudHM6IFVzZSBERVZJQ0VfQVRUUl9bUk98V09dIG1hY3JvcwoKWm91IFdlaSAoMSk6CiAg ICAgIGNsb2Nrc291cmNlL2RyaXZlcnMvYXJtX2dsb2JhbF90aW1lcjogTWFrZSBzeW1ib2wgJ2d0 X2Nsa19yYXRlX2NoYW5nZV9uYicgc3RhdGljCgrlkajnkLDmnbAgKFpob3UgWWFuamllKSAoMSk6 CiAgICAgIGNsb2Nrc291cmNlL2RyaXZlcnMvaW5nZW5pYzogUmVuYW1lIHVucmVhc29uYWJsZSBh cnJheSBuYW1lcwoKCiBEb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2tlcm5lbC1wYXJhbWV0ZXJz LnR4dCB8ICAyMiArKysKIGFyY2gvYXJtL21hY2gtenlucS9LY29uZmlnICAgICAgICAgICAgICAg ICAgICAgIHwgICAyICstCiBhcmNoL3g4Ni9rZXJuZWwvdHNjLmMgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgNCArLQogZHJpdmVycy9jbG9ja3NvdXJjZS9LY29uZmlnICAgICAgICAgICAg ICAgICAgICAgfCAgMTQgKysKIGRyaXZlcnMvY2xvY2tzb3VyY2UvYXJtX2FyY2hfdGltZXIuYyAg ICAgICAgICAgIHwgICAzICstCiBkcml2ZXJzL2Nsb2Nrc291cmNlL2FybV9nbG9iYWxfdGltZXIu YyAgICAgICAgICB8IDEyMiArKysrKysrKysrKy0tCiBkcml2ZXJzL2Nsb2Nrc291cmNlL2luZ2Vu aWMtc3lzb3N0LmMgICAgICAgICAgICB8ICAxMCArLQogZHJpdmVycy9jbG9ja3NvdXJjZS9zYW1z dW5nX3B3bV90aW1lci5jICAgICAgICAgfCAgNDEgKysrLS0KIGRyaXZlcnMvY2xvY2tzb3VyY2Uv dGltZXItbWVkaWF0ZWsuYyAgICAgICAgICAgIHwgIDI0ICsrKwogZHJpdmVycy9jbG9ja3NvdXJj ZS90aW1lci10aS1kbS5jICAgICAgICAgICAgICAgfCAgIDkgKy0KIGluY2x1ZGUvY2xvY2tzb3Vy Y2Uvc2Ftc3VuZ19wd20uaCAgICAgICAgICAgICAgIHwgICAzICstCiBpbmNsdWRlL2Nsb2Nrc291 cmNlL3RpbWVyLXRpLWRtLmggICAgICAgICAgICAgICB8ICAgMSArCiBpbmNsdWRlL2xpbnV4L2Ns b2Nrc291cmNlLmggICAgICAgICAgICAgICAgICAgICB8ICAgOCArLQoga2VybmVsL3RpbWUvS2Nv bmZpZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDkgKwoga2VybmVsL3RpbWUvTWFr ZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKwoga2VybmVsL3RpbWUvY2xv Y2tldmVudHMuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMjMgKystCiBrZXJuZWwvdGltZS9j bG9ja3NvdXJjZS13ZHRlc3QuYyAgICAgICAgICAgICAgICB8IDIwMiArKysrKysrKysrKysrKysr KysrKysKIGtlcm5lbC90aW1lL2Nsb2Nrc291cmNlLmMgICAgICAgICAgICAgICAgICAgICAgIHwg MjI3ICsrKysrKysrKysrKysrKysrKysrKystLQoga2VybmVsL3RpbWUvamlmZmllcy5jICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgMTUgKy0KIGtlcm5lbC90aW1lL3RpY2stYnJvYWRjYXN0 LmMgICAgICAgICAgICAgICAgICAgIHwgMTQzICsrKysrKysrKysrKystLQoga2VybmVsL3RpbWUv dGljay1jb21tb24uYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGtlcm5lbC90aW1l L3RpY2staW50ZXJuYWwuaCAgICAgICAgICAgICAgICAgICAgIHwgICA1ICstCiBrZXJuZWwvdGlt ZS90aW1lX3Rlc3QuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICA5OSArKysrKysrKysrKwog a2VybmVsL3RpbWUvdGltZWNvbnYuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMjggKysr KysrKy0tLS0tLQoga2VybmVsL3RpbWUvdGltZXJfbGlzdC5jICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMTAgKy0KIGxpYi9LY29uZmlnLmRlYnVnICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDEyICsrCiAyNiBmaWxlcyBjaGFuZ2VkLCA5OTYgaW5zZXJ0aW9ucygrKSwgMTQ0IGRl bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGtlcm5lbC90aW1lL2Nsb2Nrc291cmNlLXdk dGVzdC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQga2VybmVsL3RpbWUvdGltZV90ZXN0LmMKCmRpZmYg LS1naXQgYS9Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dCBi L0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUva2VybmVsLXBhcmFtZXRlcnMudHh0CmluZGV4IGNi ODlkYmRlZGM0Ni4uNTkxMDQ4ZWQxMzY1IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2FkbWlu LWd1aWRlL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2FkbWluLWd1 aWRlL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dApAQCAtNTgxLDYgKzU4MSwyOCBAQAogCQkJbG9vcHMg Y2FuIGJlIGRlYnVnZ2VkIG1vcmUgZWZmZWN0aXZlbHkgb24gcHJvZHVjdGlvbgogCQkJc3lzdGVt cy4KIAorCWNsb2Nrc291cmNlLm1heF9jc3dkX3JlYWRfcmV0cmllcz0gW0tOTF0KKwkJCU51bWJl ciBvZiBjbG9ja3NvdXJjZV93YXRjaGRvZygpIHJldHJpZXMgZHVlIHRvCisJCQlleHRlcm5hbCBk ZWxheXMgYmVmb3JlIHRoZSBjbG9jayB3aWxsIGJlIG1hcmtlZAorCQkJdW5zdGFibGUuICBEZWZh dWx0cyB0byB0aHJlZSByZXRyaWVzLCB0aGF0IGlzLAorCQkJZm91ciBhdHRlbXB0cyB0byByZWFk IHRoZSBjbG9jayB1bmRlciB0ZXN0LgorCisJY2xvY2tzb3VyY2UudmVyaWZ5X25fY3B1cz0gW0tO TF0KKwkJCUxpbWl0IHRoZSBudW1iZXIgb2YgQ1BVcyBjaGVja2VkIGZvciBjbG9ja3NvdXJjZXMK KwkJCW1hcmtlZCB3aXRoIENMT0NLX1NPVVJDRV9WRVJJRllfUEVSQ1BVIHRoYXQKKwkJCWFyZSBt YXJrZWQgdW5zdGFibGUgZHVlIHRvIGV4Y2Vzc2l2ZSBza2V3LgorCQkJQSBuZWdhdGl2ZSB2YWx1 ZSBzYXlzIHRvIGNoZWNrIGFsbCBDUFVzLCB3aGlsZQorCQkJemVybyBzYXlzIG5vdCB0byBjaGVj ayBhbnkuICBWYWx1ZXMgbGFyZ2VyIHRoYW4KKwkJCW5yX2NwdV9pZHMgYXJlIHNpbGVudGx5IHRy dW5jYXRlZCB0byBucl9jcHVfaWRzLgorCQkJVGhlIGFjdHVhbCBDUFVzIGFyZSBjaG9zZW4gcmFu ZG9tbHksIHdpdGgKKwkJCW5vIHJlcGxhY2VtZW50IGlmIHRoZSBzYW1lIENQVSBpcyBjaG9zZW4g dHdpY2UuCisKKwljbG9ja3NvdXJjZS13ZHRlc3QuaG9sZG9mZj0gW0tOTF0KKwkJCVNldCB0aGUg dGltZSBpbiBzZWNvbmRzIHRoYXQgdGhlIGNsb2Nrc291cmNlCisJCQl3YXRjaGRvZyB0ZXN0IHdh aXRzIGJlZm9yZSBjb21tZW5jaW5nIGl0cyB0ZXN0cy4KKwkJCURlZmF1bHRzIHRvIHplcm8gd2hl biBidWlsdCBhcyBhIG1vZHVsZSBhbmQgdG8KKwkJCTEwIHNlY29uZHMgd2hlbiBidWlsdCBpbnRv IHRoZSBrZXJuZWwuCisKIAljbGVhcmNwdWlkPUJJVE5VTVssQklUTlVNLi4uXSBbWDg2XQogCQkJ RGlzYWJsZSBDUFVJRCBmZWF0dXJlIFggZm9yIHRoZSBrZXJuZWwuIFNlZQogCQkJYXJjaC94ODYv aW5jbHVkZS9hc20vY3B1ZmVhdHVyZXMuaCBmb3IgdGhlIHZhbGlkIGJpdApkaWZmIC0tZ2l0IGEv YXJjaC9hcm0vbWFjaC16eW5xL0tjb25maWcgYi9hcmNoL2FybS9tYWNoLXp5bnEvS2NvbmZpZwpp bmRleCA0M2ZiOTQxZGNkMDcuLmE1Njc0OGQ2NzFjNCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFj aC16eW5xL0tjb25maWcKKysrIGIvYXJjaC9hcm0vbWFjaC16eW5xL0tjb25maWcKQEAgLTYsNyAr Niw3IEBAIGNvbmZpZyBBUkNIX1pZTlEKIAlzZWxlY3QgQVJDSF9TVVBQT1JUU19CSUdfRU5ESUFO CiAJc2VsZWN0IEFSTV9BTUJBCiAJc2VsZWN0IEFSTV9HSUMKLQlzZWxlY3QgQVJNX0dMT0JBTF9U SU1FUiBpZiAhQ1BVX0ZSRVEKKwlzZWxlY3QgQVJNX0dMT0JBTF9USU1FUgogCXNlbGVjdCBDQURF TkNFX1RUQ19USU1FUgogCXNlbGVjdCBIQVZFX0FSTV9TQ1UgaWYgU01QCiAJc2VsZWN0IEhBVkVf QVJNX1RXRCBpZiBTTVAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC90c2MuYyBiL2FyY2gv eDg2L2tlcm5lbC90c2MuYwppbmRleCA1N2VjMDExOTIxODAuLjJlMDc2YTQ1OWEwYyAxMDA2NDQK LS0tIGEvYXJjaC94ODYva2VybmVsL3RzYy5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC90c2MuYwpA QCAtMTEyOCw2ICsxMTI4LDcgQEAgc3RhdGljIGludCB0c2NfY3NfZW5hYmxlKHN0cnVjdCBjbG9j a3NvdXJjZSAqY3MpCiBzdGF0aWMgc3RydWN0IGNsb2Nrc291cmNlIGNsb2Nrc291cmNlX3RzY19l YXJseSA9IHsKIAkubmFtZQkJCT0gInRzYy1lYXJseSIsCiAJLnJhdGluZwkJCT0gMjk5LAorCS51 bmNlcnRhaW50eV9tYXJnaW4JPSAzMiAqIE5TRUNfUEVSX01TRUMsCiAJLnJlYWQJCQk9IHJlYWRf dHNjLAogCS5tYXNrCQkJPSBDTE9DS1NPVVJDRV9NQVNLKDY0KSwKIAkuZmxhZ3MJCQk9IENMT0NL X1NPVVJDRV9JU19DT05USU5VT1VTIHwKQEAgLTExNTIsNyArMTE1Myw4IEBAIHN0YXRpYyBzdHJ1 Y3QgY2xvY2tzb3VyY2UgY2xvY2tzb3VyY2VfdHNjID0gewogCS5tYXNrCQkJPSBDTE9DS1NPVVJD RV9NQVNLKDY0KSwKIAkuZmxhZ3MJCQk9IENMT0NLX1NPVVJDRV9JU19DT05USU5VT1VTIHwKIAkJ CQkgIENMT0NLX1NPVVJDRV9WQUxJRF9GT1JfSFJFUyB8Ci0JCQkJICBDTE9DS19TT1VSQ0VfTVVT VF9WRVJJRlksCisJCQkJICBDTE9DS19TT1VSQ0VfTVVTVF9WRVJJRlkgfAorCQkJCSAgQ0xPQ0tf U09VUkNFX1ZFUklGWV9QRVJDUFUsCiAJLnZkc29fY2xvY2tfbW9kZQk9IFZEU09fQ0xPQ0tNT0RF X1RTQywKIAkuZW5hYmxlCQkJPSB0c2NfY3NfZW5hYmxlLAogCS5yZXN1bWUJCQk9IHRzY19yZXN1 bWUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsb2Nrc291cmNlL0tjb25maWcgYi9kcml2ZXJzL2Ns b2Nrc291cmNlL0tjb25maWcKaW5kZXggMzlhYTIxZDAxZTA1Li45ZmEyODIzNzcxNWEgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvY2xvY2tzb3VyY2UvS2NvbmZpZworKysgYi9kcml2ZXJzL2Nsb2Nrc291 cmNlL0tjb25maWcKQEAgLTM1OCw2ICszNTgsMjAgQEAgY29uZmlnIEFSTV9HTE9CQUxfVElNRVIK IAloZWxwCiAJICBUaGlzIG9wdGlvbiBlbmFibGVzIHN1cHBvcnQgZm9yIHRoZSBBUk0gZ2xvYmFs IHRpbWVyIHVuaXQuCiAKK2NvbmZpZyBBUk1fR1RfSU5JVElBTF9QUkVTQ0FMRVJfVkFMCisJaW50 ICJBUk0gZ2xvYmFsIHRpbWVyIGluaXRpYWwgcHJlc2NhbGVyIHZhbHVlIgorCWRlZmF1bHQgMiBp ZiBBUkNIX1pZTlEKKwlkZWZhdWx0IDEKKwlkZXBlbmRzIG9uIEFSTV9HTE9CQUxfVElNRVIKKwlo ZWxwCisJICBXaGVuIHRoZSBBUk0gZ2xvYmFsIHRpbWVyIGluaXRpYWxpemVzLCBpdHMgY3VycmVu dCByYXRlIGlzIGRlY2xhcmVkCisJICB0byB0aGUga2VybmVsIGFuZCBtYWludGFpbmVkIGZvcmV2 ZXIuIFNob3VsZCBpdCdzIHBhcmVudCBjbG9jaworCSAgY2hhbmdlLCB0aGUgZHJpdmVyIHRyaWVz IHRvIGZpeCB0aGUgdGltZXIncyBpbnRlcm5hbCBwcmVzY2FsZXIuCisJICBPbiBzb21lIG1hY2hz IChpLmUuIFp5bnEpIHRoZSBpbml0aWFsIHByZXNjYWxlciB2YWx1ZSB0aHVzIHBvc2VzCisJICBi b3VuZHMgYWJvdXQgaG93IG11Y2ggdGhlIHBhcmVudCBjbG9jayBpcyBhbGxvd2VkIHRvIGRlY3Jl YXNlIG9yCisJICBpbmNyZWFzZSB3cnQgdGhlIGluaXRpYWwgY2xvY2sgdmFsdWUuCisJICBUaGlz IGFmZmVjdHMgQ1BVX0ZSRVEgbWF4IGRlbHRhIGZyb20gdGhlIGluaXRpYWwgZnJlcXVlbmN5Lgor CiBjb25maWcgQVJNX1RJTUVSX1NQODA0CiAJYm9vbCAiU3VwcG9ydCBmb3IgRHVhbCBUaW1lciBT UDgwNCBtb2R1bGUiIGlmIENPTVBJTEVfVEVTVAogCWRlcGVuZHMgb24gR0VORVJJQ19TQ0hFRF9D TE9DSyAmJiBDTEtERVZfTE9PS1VQCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsb2Nrc291cmNlL2Fy bV9hcmNoX3RpbWVyLmMgYi9kcml2ZXJzL2Nsb2Nrc291cmNlL2FybV9hcmNoX3RpbWVyLmMKaW5k ZXggZmUxYTgyNjI3ZDU3Li5iZTZkNzQxZDQwNGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xvY2tz b3VyY2UvYXJtX2FyY2hfdGltZXIuYworKysgYi9kcml2ZXJzL2Nsb2Nrc291cmNlL2FybV9hcmNo X3RpbWVyLmMKQEAgLTY0LDcgKzY0LDYgQEAgc3RydWN0IGFyY2hfdGltZXIgewogI2RlZmluZSB0 b19hcmNoX3RpbWVyKGUpIGNvbnRhaW5lcl9vZihlLCBzdHJ1Y3QgYXJjaF90aW1lciwgZXZ0KQog CiBzdGF0aWMgdTMyIGFyY2hfdGltZXJfcmF0ZSBfX3JvX2FmdGVyX2luaXQ7Ci11MzIgYXJjaF90 aW1lcl9yYXRlMSBfX3JvX2FmdGVyX2luaXQ7CiBzdGF0aWMgaW50IGFyY2hfdGltZXJfcHBpW0FS Q0hfVElNRVJfTUFYX1RJTUVSX1BQSV0gX19yb19hZnRlcl9pbml0OwogCiBzdGF0aWMgY29uc3Qg Y2hhciAqYXJjaF90aW1lcl9wcGlfbmFtZXNbQVJDSF9USU1FUl9NQVhfVElNRVJfUFBJXSA9IHsK QEAgLTM2NSw3ICszNjQsNyBAQCBzdGF0aWMgdTY0IG5vdHJhY2UgYXJtNjRfODU4OTIxX3JlYWRf Y250dmN0X2VsMCh2b2lkKQogCWRvIHsJCQkJCQkJCVwKIAkJX3ZhbCA9IHJlYWRfc3lzcmVnKHJl Zyk7CQkJCVwKIAkJX3JldHJpZXMtLTsJCQkJCQlcCi0JfSB3aGlsZSAoKChfdmFsICsgMSkgJiBH RU5NQVNLKDksIDApKSA8PSAxICYmIF9yZXRyaWVzKTsJXAorCX0gd2hpbGUgKCgoX3ZhbCArIDEp ICYgR0VOTUFTSyg4LCAwKSkgPD0gMSAmJiBfcmV0cmllcyk7CVwKIAkJCQkJCQkJCVwKIAlXQVJO X09OX09OQ0UoIV9yZXRyaWVzKTsJCQkJCVwKIAlfdmFsOwkJCQkJCQkJXApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9jbG9ja3NvdXJjZS9hcm1fZ2xvYmFsX3RpbWVyLmMgYi9kcml2ZXJzL2Nsb2Nrc291 cmNlL2FybV9nbG9iYWxfdGltZXIuYwppbmRleCA4OGIyZDM4YTdhNjEuLjQ0YTYxZGM2ZjkzMiAx MDA2NDQKLS0tIGEvZHJpdmVycy9jbG9ja3NvdXJjZS9hcm1fZ2xvYmFsX3RpbWVyLmMKKysrIGIv ZHJpdmVycy9jbG9ja3NvdXJjZS9hcm1fZ2xvYmFsX3RpbWVyLmMKQEAgLTMxLDYgKzMxLDEwIEBA CiAjZGVmaW5lIEdUX0NPTlRST0xfQ09NUF9FTkFCTEUJCUJJVCgxKQkvKiBiYW5rZWQgKi8KICNk ZWZpbmUgR1RfQ09OVFJPTF9JUlFfRU5BQkxFCQlCSVQoMikJLyogYmFua2VkICovCiAjZGVmaW5l IEdUX0NPTlRST0xfQVVUT19JTkMJCUJJVCgzKQkvKiBiYW5rZWQgKi8KKyNkZWZpbmUgR1RfQ09O VFJPTF9QUkVTQ0FMRVJfU0hJRlQgICAgICA4CisjZGVmaW5lIEdUX0NPTlRST0xfUFJFU0NBTEVS X01BWCAgICAgICAgMHhGCisjZGVmaW5lIEdUX0NPTlRST0xfUFJFU0NBTEVSX01BU0sgICAgICAg KEdUX0NPTlRST0xfUFJFU0NBTEVSX01BWCA8PCBcCisJCQkJCSBHVF9DT05UUk9MX1BSRVNDQUxF Ul9TSElGVCkKIAogI2RlZmluZSBHVF9JTlRfU1RBVFVTCTB4MGMKICNkZWZpbmUgR1RfSU5UX1NU QVRVU19FVkVOVF9GTEFHCUJJVCgwKQpAQCAtMzksNiArNDMsNyBAQAogI2RlZmluZSBHVF9DT01Q MQkweDE0CiAjZGVmaW5lIEdUX0FVVE9fSU5DCTB4MTgKIAorI2RlZmluZSBNQVhfRl9FUlIgNTAK IC8qCiAgKiBXZSBhcmUgZXhwZWN0aW5nIHRvIGJlIGNsb2NrZWQgYnkgdGhlIEFSTSBwZXJpcGhl cmFsIGNsb2NrLgogICoKQEAgLTQ2LDcgKzUxLDggQEAKICAqIHRoZSB1bml0cyBmb3IgYWxsIG9w ZXJhdGlvbnMuCiAgKi8KIHN0YXRpYyB2b2lkIF9faW9tZW0gKmd0X2Jhc2U7Ci1zdGF0aWMgdW5z aWduZWQgbG9uZyBndF9jbGtfcmF0ZTsKK3N0YXRpYyBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgZ3Rf Y2xrX3JhdGVfY2hhbmdlX25iOworc3RhdGljIHUzMiBndF9wc3ZfbmV3LCBndF9wc3ZfYmNrLCBn dF90YXJnZXRfcmF0ZTsKIHN0YXRpYyBpbnQgZ3RfcHBpOwogc3RhdGljIHN0cnVjdCBjbG9ja19l dmVudF9kZXZpY2UgX19wZXJjcHUgKmd0X2V2dDsKIApAQCAtOTYsNyArMTAyLDEwIEBAIHN0YXRp YyB2b2lkIGd0X2NvbXBhcmVfc2V0KHVuc2lnbmVkIGxvbmcgZGVsdGEsIGludCBwZXJpb2RpYykK IAl1bnNpZ25lZCBsb25nIGN0cmw7CiAKIAljb3VudGVyICs9IGRlbHRhOwotCWN0cmwgPSBHVF9D T05UUk9MX1RJTUVSX0VOQUJMRTsKKwljdHJsID0gcmVhZGwoZ3RfYmFzZSArIEdUX0NPTlRST0wp OworCWN0cmwgJj0gfihHVF9DT05UUk9MX0NPTVBfRU5BQkxFIHwgR1RfQ09OVFJPTF9JUlFfRU5B QkxFIHwKKwkJICBHVF9DT05UUk9MX0FVVE9fSU5DKTsKKwljdHJsIHw9IEdUX0NPTlRST0xfVElN RVJfRU5BQkxFOwogCXdyaXRlbF9yZWxheGVkKGN0cmwsIGd0X2Jhc2UgKyBHVF9DT05UUk9MKTsK IAl3cml0ZWxfcmVsYXhlZChsb3dlcl8zMl9iaXRzKGNvdW50ZXIpLCBndF9iYXNlICsgR1RfQ09N UDApOwogCXdyaXRlbF9yZWxheGVkKHVwcGVyXzMyX2JpdHMoY291bnRlciksIGd0X2Jhc2UgKyBH VF9DT01QMSk7CkBAIC0xMjMsNyArMTMyLDcgQEAgc3RhdGljIGludCBndF9jbG9ja2V2ZW50X3No dXRkb3duKHN0cnVjdCBjbG9ja19ldmVudF9kZXZpY2UgKmV2dCkKIAogc3RhdGljIGludCBndF9j bG9ja2V2ZW50X3NldF9wZXJpb2RpYyhzdHJ1Y3QgY2xvY2tfZXZlbnRfZGV2aWNlICpldnQpCiB7 Ci0JZ3RfY29tcGFyZV9zZXQoRElWX1JPVU5EX0NMT1NFU1QoZ3RfY2xrX3JhdGUsIEhaKSwgMSk7 CisJZ3RfY29tcGFyZV9zZXQoRElWX1JPVU5EX0NMT1NFU1QoZ3RfdGFyZ2V0X3JhdGUsIEhaKSwg MSk7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTE3Nyw3ICsxODYsNyBAQCBzdGF0aWMgaW50IGd0X3N0 YXJ0aW5nX2NwdSh1bnNpZ25lZCBpbnQgY3B1KQogCWNsay0+Y3B1bWFzayA9IGNwdW1hc2tfb2Yo Y3B1KTsKIAljbGstPnJhdGluZyA9IDMwMDsKIAljbGstPmlycSA9IGd0X3BwaTsKLQljbG9ja2V2 ZW50c19jb25maWdfYW5kX3JlZ2lzdGVyKGNsaywgZ3RfY2xrX3JhdGUsCisJY2xvY2tldmVudHNf Y29uZmlnX2FuZF9yZWdpc3RlcihjbGssIGd0X3RhcmdldF9yYXRlLAogCQkJCQkxLCAweGZmZmZm ZmZmKTsKIAllbmFibGVfcGVyY3B1X2lycShjbGstPmlycSwgSVJRX1RZUEVfTk9ORSk7CiAJcmV0 dXJuIDA7CkBAIC0yMzIsOSArMjQxLDI4IEBAIHN0YXRpYyBzdHJ1Y3QgZGVsYXlfdGltZXIgZ3Rf ZGVsYXlfdGltZXIgPSB7CiAJLnJlYWRfY3VycmVudF90aW1lciA9IGd0X3JlYWRfbG9uZywKIH07 CiAKK3N0YXRpYyB2b2lkIGd0X3dyaXRlX3ByZXNjKHUzMiBwc3YpCit7CisJdTMyIHJlZzsKKwor CXJlZyA9IHJlYWRsKGd0X2Jhc2UgKyBHVF9DT05UUk9MKTsKKwlyZWcgJj0gfkdUX0NPTlRST0xf UFJFU0NBTEVSX01BU0s7CisJcmVnIHw9IHBzdiA8PCBHVF9DT05UUk9MX1BSRVNDQUxFUl9TSElG VDsKKwl3cml0ZWwocmVnLCBndF9iYXNlICsgR1RfQ09OVFJPTCk7Cit9CisKK3N0YXRpYyB1MzIg Z3RfcmVhZF9wcmVzYyh2b2lkKQoreworCXUzMiByZWc7CisKKwlyZWcgPSByZWFkbChndF9iYXNl ICsgR1RfQ09OVFJPTCk7CisJcmVnICY9IEdUX0NPTlRST0xfUFJFU0NBTEVSX01BU0s7CisJcmV0 dXJuIHJlZyA+PiBHVF9DT05UUk9MX1BSRVNDQUxFUl9TSElGVDsKK30KKwogc3RhdGljIHZvaWQg X19pbml0IGd0X2RlbGF5X3RpbWVyX2luaXQodm9pZCkKIHsKLQlndF9kZWxheV90aW1lci5mcmVx ID0gZ3RfY2xrX3JhdGU7CisJZ3RfZGVsYXlfdGltZXIuZnJlcSA9IGd0X3RhcmdldF9yYXRlOwog CXJlZ2lzdGVyX2N1cnJlbnRfdGltZXJfZGVsYXkoJmd0X2RlbGF5X3RpbWVyKTsKIH0KIApAQCAt MjQzLDE4ICsyNzEsODEgQEAgc3RhdGljIGludCBfX2luaXQgZ3RfY2xvY2tzb3VyY2VfaW5pdCh2 b2lkKQogCXdyaXRlbCgwLCBndF9iYXNlICsgR1RfQ09OVFJPTCk7CiAJd3JpdGVsKDAsIGd0X2Jh c2UgKyBHVF9DT1VOVEVSMCk7CiAJd3JpdGVsKDAsIGd0X2Jhc2UgKyBHVF9DT1VOVEVSMSk7Ci0J LyogZW5hYmxlcyB0aW1lciBvbiBhbGwgdGhlIGNvcmVzICovCi0Jd3JpdGVsKEdUX0NPTlRST0xf VElNRVJfRU5BQkxFLCBndF9iYXNlICsgR1RfQ09OVFJPTCk7CisJLyogc2V0IHByZXNjYWxlciBh bmQgZW5hYmxlIHRpbWVyIG9uIGFsbCB0aGUgY29yZXMgKi8KKwl3cml0ZWwoKChDT05GSUdfQVJN X0dUX0lOSVRJQUxfUFJFU0NBTEVSX1ZBTCAtIDEpIDw8CisJCUdUX0NPTlRST0xfUFJFU0NBTEVS X1NISUZUKQorCSAgICAgICB8IEdUX0NPTlRST0xfVElNRVJfRU5BQkxFLCBndF9iYXNlICsgR1Rf Q09OVFJPTCk7CiAKICNpZmRlZiBDT05GSUdfQ0xLU1JDX0FSTV9HTE9CQUxfVElNRVJfU0NIRURf Q0xPQ0sKLQlzY2hlZF9jbG9ja19yZWdpc3RlcihndF9zY2hlZF9jbG9ja19yZWFkLCA2NCwgZ3Rf Y2xrX3JhdGUpOworCXNjaGVkX2Nsb2NrX3JlZ2lzdGVyKGd0X3NjaGVkX2Nsb2NrX3JlYWQsIDY0 LCBndF90YXJnZXRfcmF0ZSk7CiAjZW5kaWYKLQlyZXR1cm4gY2xvY2tzb3VyY2VfcmVnaXN0ZXJf aHooJmd0X2Nsb2Nrc291cmNlLCBndF9jbGtfcmF0ZSk7CisJcmV0dXJuIGNsb2Nrc291cmNlX3Jl Z2lzdGVyX2h6KCZndF9jbG9ja3NvdXJjZSwgZ3RfdGFyZ2V0X3JhdGUpOworfQorCitzdGF0aWMg aW50IGd0X2Nsa19yYXRlX2NoYW5nZV9jYihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLAorCQkJ CSB1bnNpZ25lZCBsb25nIGV2ZW50LCB2b2lkICpkYXRhKQoreworCXN0cnVjdCBjbGtfbm90aWZp ZXJfZGF0YSAqbmRhdGEgPSBkYXRhOworCisJc3dpdGNoIChldmVudCkgeworCWNhc2UgUFJFX1JB VEVfQ0hBTkdFOgorCXsKKwkJaW50IHBzdjsKKworCQlwc3YgPSBESVZfUk9VTkRfQ0xPU0VTVChu ZGF0YS0+bmV3X3JhdGUsCisJCQkJCWd0X3RhcmdldF9yYXRlKTsKKworCQlpZiAoYWJzKGd0X3Rh cmdldF9yYXRlIC0gKG5kYXRhLT5uZXdfcmF0ZSAvIHBzdikpID4gTUFYX0ZfRVJSKQorCQkJcmV0 dXJuIE5PVElGWV9CQUQ7CisKKwkJcHN2LS07CisKKwkJLyogcHJlc2NhbGVyIHdpdGhpbiBsZWdh bCByYW5nZT8gKi8KKwkJaWYgKHBzdiA8IDAgfHwgcHN2ID4gR1RfQ09OVFJPTF9QUkVTQ0FMRVJf TUFYKQorCQkJcmV0dXJuIE5PVElGWV9CQUQ7CisKKwkJLyoKKwkJICogc3RvcmUgdGltZXIgY2xv Y2sgY3RybCByZWdpc3RlciBzbyB3ZSBjYW4gcmVzdG9yZSBpdCBpbiBjYXNlCisJCSAqIG9mIGFu IGFib3J0LgorCQkgKi8KKwkJZ3RfcHN2X2JjayA9IGd0X3JlYWRfcHJlc2MoKTsKKwkJZ3RfcHN2 X25ldyA9IHBzdjsKKwkJLyogc2NhbGUgZG93bjogYWRqdXN0IGRpdmlkZXIgaW4gcG9zdC1jaGFu Z2Ugbm90aWZpY2F0aW9uICovCisJCWlmIChuZGF0YS0+bmV3X3JhdGUgPCBuZGF0YS0+b2xkX3Jh dGUpCisJCQlyZXR1cm4gTk9USUZZX0RPTkU7CisKKwkJLyogc2NhbGUgdXA6IGFkanVzdCBkaXZp ZGVyIG5vdyAtIGJlZm9yZSBmcmVxdWVuY3kgY2hhbmdlICovCisJCWd0X3dyaXRlX3ByZXNjKHBz dik7CisJCWJyZWFrOworCX0KKwljYXNlIFBPU1RfUkFURV9DSEFOR0U6CisJCS8qIHNjYWxlIHVw OiBwcmUtY2hhbmdlIG5vdGlmaWNhdGlvbiBkaWQgdGhlIGFkanVzdG1lbnQgKi8KKwkJaWYgKG5k YXRhLT5uZXdfcmF0ZSA+IG5kYXRhLT5vbGRfcmF0ZSkKKwkJCXJldHVybiBOT1RJRllfT0s7CisK KwkJLyogc2NhbGUgZG93bjogYWRqdXN0IGRpdmlkZXIgbm93IC0gYWZ0ZXIgZnJlcXVlbmN5IGNo YW5nZSAqLworCQlndF93cml0ZV9wcmVzYyhndF9wc3ZfbmV3KTsKKwkJYnJlYWs7CisKKwljYXNl IEFCT1JUX1JBVEVfQ0hBTkdFOgorCQkvKiB3ZSBoYXZlIHRvIHVuZG8gdGhlIGFkanVzdG1lbnQg aW4gY2FzZSB3ZSBzY2FsZSB1cCAqLworCQlpZiAobmRhdGEtPm5ld19yYXRlIDwgbmRhdGEtPm9s ZF9yYXRlKQorCQkJcmV0dXJuIE5PVElGWV9PSzsKKworCQkvKiByZXN0b3JlIG9yaWdpbmFsIHJl Z2lzdGVyIHZhbHVlICovCisJCWd0X3dyaXRlX3ByZXNjKGd0X3Bzdl9iY2spOworCQlicmVhazsK KwlkZWZhdWx0OgorCQlyZXR1cm4gTk9USUZZX0RPTkU7CisJfQorCisJcmV0dXJuIE5PVElGWV9E T05FOwogfQogCiBzdGF0aWMgaW50IF9faW5pdCBnbG9iYWxfdGltZXJfb2ZfcmVnaXN0ZXIoc3Ry dWN0IGRldmljZV9ub2RlICpucCkKIHsKIAlzdHJ1Y3QgY2xrICpndF9jbGs7CisJc3RhdGljIHVu c2lnbmVkIGxvbmcgZ3RfY2xrX3JhdGU7CiAJaW50IGVyciA9IDA7CiAKIAkvKgpAQCAtMjkyLDEx ICszODMsMjAgQEAgc3RhdGljIGludCBfX2luaXQgZ2xvYmFsX3RpbWVyX29mX3JlZ2lzdGVyKHN0 cnVjdCBkZXZpY2Vfbm9kZSAqbnApCiAJfQogCiAJZ3RfY2xrX3JhdGUgPSBjbGtfZ2V0X3JhdGUo Z3RfY2xrKTsKKwlndF90YXJnZXRfcmF0ZSA9IGd0X2Nsa19yYXRlIC8gQ09ORklHX0FSTV9HVF9J TklUSUFMX1BSRVNDQUxFUl9WQUw7CisJZ3RfY2xrX3JhdGVfY2hhbmdlX25iLm5vdGlmaWVyX2Nh bGwgPQorCQlndF9jbGtfcmF0ZV9jaGFuZ2VfY2I7CisJZXJyID0gY2xrX25vdGlmaWVyX3JlZ2lz dGVyKGd0X2NsaywgJmd0X2Nsa19yYXRlX2NoYW5nZV9uYik7CisJaWYgKGVycikgeworCQlwcl93 YXJuKCJVbmFibGUgdG8gcmVnaXN0ZXIgY2xvY2sgbm90aWZpZXJcbiIpOworCQlnb3RvIG91dF9j bGs7CisJfQorCiAJZ3RfZXZ0ID0gYWxsb2NfcGVyY3B1KHN0cnVjdCBjbG9ja19ldmVudF9kZXZp Y2UpOwogCWlmICghZ3RfZXZ0KSB7CiAJCXByX3dhcm4oImdsb2JhbC10aW1lcjogY2FuJ3QgYWxs b2NhdGUgbWVtb3J5XG4iKTsKIAkJZXJyID0gLUVOT01FTTsKLQkJZ290byBvdXRfY2xrOworCQln b3RvIG91dF9jbGtfbmI7CiAJfQogCiAJZXJyID0gcmVxdWVzdF9wZXJjcHVfaXJxKGd0X3BwaSwg Z3RfY2xvY2tldmVudF9pbnRlcnJ1cHQsCkBAIC0zMjYsNiArNDI2LDggQEAgc3RhdGljIGludCBf X2luaXQgZ2xvYmFsX3RpbWVyX29mX3JlZ2lzdGVyKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCiAJ ZnJlZV9wZXJjcHVfaXJxKGd0X3BwaSwgZ3RfZXZ0KTsKIG91dF9mcmVlOgogCWZyZWVfcGVyY3B1 KGd0X2V2dCk7CitvdXRfY2xrX25iOgorCWNsa19ub3RpZmllcl91bnJlZ2lzdGVyKGd0X2Nsaywg Jmd0X2Nsa19yYXRlX2NoYW5nZV9uYik7CiBvdXRfY2xrOgogCWNsa19kaXNhYmxlX3VucHJlcGFy ZShndF9jbGspOwogb3V0X3VubWFwOgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbG9ja3NvdXJjZS9p bmdlbmljLXN5c29zdC5jIGIvZHJpdmVycy9jbG9ja3NvdXJjZS9pbmdlbmljLXN5c29zdC5jCmlu ZGV4IGU3N2Q1ODQ0OTAwNS4uYTEyOTg0MGYxNGY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsb2Nr c291cmNlL2luZ2VuaWMtc3lzb3N0LmMKKysrIGIvZHJpdmVycy9jbG9ja3NvdXJjZS9pbmdlbmlj LXN5c29zdC5jCkBAIC0xODYsNyArMTg2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfb3Bz IGluZ2VuaWNfb3N0X2dsb2JhbF90aW1lcl9vcHMgPSB7CiAKIHN0YXRpYyBjb25zdCBjaGFyICog Y29uc3QgaW5nZW5pY19vc3RfY2xrX3BhcmVudHNbXSA9IHsgImV4dCIgfTsKIAotc3RhdGljIGNv bnN0IHN0cnVjdCBpbmdlbmljX29zdF9jbGtfaW5mbyBpbmdlbmljX29zdF9jbGtfaW5mb1tdID0g eworc3RhdGljIGNvbnN0IHN0cnVjdCBpbmdlbmljX29zdF9jbGtfaW5mbyB4MTAwMF9vc3RfY2xr X2luZm9bXSA9IHsKIAlbT1NUX0NMS19QRVJDUFVfVElNRVJdID0gewogCQkuaW5pdF9kYXRhID0g ewogCQkJLm5hbWUgPSAicGVyY3B1IHRpbWVyIiwKQEAgLTQxNCwxNCArNDE0LDE0IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgaW5nZW5pY19zb2NfaW5mbyB4MTAwMF9zb2NfaW5mbyA9IHsKIAkubnVt X2NoYW5uZWxzID0gMiwKIH07CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIF9f bWF5YmVfdW51c2VkIGluZ2VuaWNfb3N0X29mX21hdGNoW10gX19pbml0Y29uc3QgPSB7Ci0JeyAu Y29tcGF0aWJsZSA9ICJpbmdlbmljLHgxMDAwLW9zdCIsIC5kYXRhID0gJngxMDAwX3NvY19pbmZv LCB9LAorc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgX19tYXliZV91bnVzZWQgaW5n ZW5pY19vc3Rfb2ZfbWF0Y2hlc1tdIF9faW5pdGNvbnN0ID0geworCXsgLmNvbXBhdGlibGUgPSAi aW5nZW5pYyx4MTAwMC1vc3QiLCAuZGF0YSA9ICZ4MTAwMF9zb2NfaW5mbyB9LAogCXsgLyogc2Vu dGluZWwgKi8gfQogfTsKIAogc3RhdGljIGludCBfX2luaXQgaW5nZW5pY19vc3RfcHJvYmUoc3Ry dWN0IGRldmljZV9ub2RlICpucCkKIHsKLQljb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkICppZCA9 IG9mX21hdGNoX25vZGUoaW5nZW5pY19vc3Rfb2ZfbWF0Y2gsIG5wKTsKKwljb25zdCBzdHJ1Y3Qg b2ZfZGV2aWNlX2lkICppZCA9IG9mX21hdGNoX25vZGUoaW5nZW5pY19vc3Rfb2ZfbWF0Y2hlcywg bnApOwogCXN0cnVjdCBpbmdlbmljX29zdCAqb3N0OwogCXVuc2lnbmVkIGludCBpOwogCWludCBy ZXQ7CkBAIC00NjIsNyArNDYyLDcgQEAgc3RhdGljIGludCBfX2luaXQgaW5nZW5pY19vc3RfcHJv YmUoc3RydWN0IGRldmljZV9ub2RlICpucCkKIAlvc3QtPmNsb2Nrcy0+bnVtID0gb3N0LT5zb2Nf aW5mby0+bnVtX2NoYW5uZWxzOwogCiAJZm9yIChpID0gMDsgaSA8IG9zdC0+Y2xvY2tzLT5udW07 IGkrKykgewotCQlyZXQgPSBpbmdlbmljX29zdF9yZWdpc3Rlcl9jbG9jayhvc3QsIGksICZpbmdl bmljX29zdF9jbGtfaW5mb1tpXSwgb3N0LT5jbG9ja3MpOworCQlyZXQgPSBpbmdlbmljX29zdF9y ZWdpc3Rlcl9jbG9jayhvc3QsIGksICZ4MTAwMF9vc3RfY2xrX2luZm9baV0sIG9zdC0+Y2xvY2tz KTsKIAkJaWYgKHJldCkgewogCQkJcHJfY3JpdCgiJXM6IENhbm5vdCByZWdpc3RlciBjbG9jayAl ZFxuIiwgX19mdW5jX18sIGkpOwogCQkJZ290byBlcnJfdW5yZWdpc3Rlcl9vc3RfY2xvY2tzOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9jbG9ja3NvdXJjZS9zYW1zdW5nX3B3bV90aW1lci5jIGIvZHJp dmVycy9jbG9ja3NvdXJjZS9zYW1zdW5nX3B3bV90aW1lci5jCmluZGV4IGY3NjAyMjlkMGM3Zi4u NmU0Njc4MWJjOWFjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsb2Nrc291cmNlL3NhbXN1bmdfcHdt X3RpbWVyLmMKKysrIGIvZHJpdmVycy9jbG9ja3NvdXJjZS9zYW1zdW5nX3B3bV90aW1lci5jCkBA IC00LDcgKzQsNyBAQAogICoJCWh0dHA6Ly93d3cuc2Ftc3VuZy5jb20vCiAgKgogICogc2Ftc3Vu ZyAtIENvbW1vbiBoci10aW1lciBzdXBwb3J0IChzM2MgYW5kIHM1cCkKLSovCisgKi8KIAogI2lu Y2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L2lycS5oPgpAQCAtMjIs NyArMjIsNiBAQAogCiAjaW5jbHVkZSA8Y2xvY2tzb3VyY2Uvc2Ftc3VuZ19wd20uaD4KIAotCiAv KgogICogQ2xvY2tzb3VyY2UgZHJpdmVyCiAgKi8KQEAgLTM4LDggKzM3LDggQEAKICNkZWZpbmUg VENGRzBfUFJFU0NBTEVSX01BU0sJCTB4ZmYKICNkZWZpbmUgVENGRzBfUFJFU0NBTEVSMV9TSElG VAkJOAogCi0jZGVmaW5lIFRDRkcxX1NISUZUKHgpCSAgCQkoKHgpICogNCkKLSNkZWZpbmUgVENG RzFfTVVYX01BU0sJICAJCTB4ZgorI2RlZmluZSBUQ0ZHMV9TSElGVCh4KQkJCSgoeCkgKiA0KQor I2RlZmluZSBUQ0ZHMV9NVVhfTUFTSwkJCTB4ZgogCiAvKgogICogRWFjaCBjaGFubmVsIG9jY3Vw aWVzIDQgYml0cyBpbiBUQ09OIHJlZ2lzdGVyLCBidXQgdGhlcmUgaXMgYSBnYXAgb2YgNApAQCAt NjIsNyArNjEsNyBAQCBFWFBPUlRfU1lNQk9MKHNhbXN1bmdfcHdtX2xvY2spOwogCiBzdHJ1Y3Qg c2Ftc3VuZ19wd21fY2xvY2tzb3VyY2UgewogCXZvaWQgX19pb21lbSAqYmFzZTsKLQl2b2lkIF9f aW9tZW0gKnNvdXJjZV9yZWc7CisJY29uc3Qgdm9pZCBfX2lvbWVtICpzb3VyY2VfcmVnOwogCXVu c2lnbmVkIGludCBpcnFbU0FNU1VOR19QV01fTlVNXTsKIAlzdHJ1Y3Qgc2Ftc3VuZ19wd21fdmFy aWFudCB2YXJpYW50OwogCkBAIC0xODMsNyArMTgyLDcgQEAgc3RhdGljIHZvaWQgc2Ftc3VuZ190 aW1lX3N0YXJ0KHVuc2lnbmVkIGludCBjaGFubmVsLCBib29sIHBlcmlvZGljKQogfQogCiBzdGF0 aWMgaW50IHNhbXN1bmdfc2V0X25leHRfZXZlbnQodW5zaWduZWQgbG9uZyBjeWNsZXMsCi0JCQkJ c3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSAqZXZ0KQorCQkJCSAgc3RydWN0IGNsb2NrX2V2ZW50 X2RldmljZSAqZXZ0KQogewogCS8qCiAJICogVGhpcyBjaGVjayBpcyBuZWVkZWQgdG8gYWNjb3Vu dCBmb3IgaW50ZXJuYWwgcm91bmRpbmcKQEAgLTIyNSw2ICsyMjQsNyBAQCBzdGF0aWMgdm9pZCBz YW1zdW5nX2Nsb2NrZXZlbnRfcmVzdW1lKHN0cnVjdCBjbG9ja19ldmVudF9kZXZpY2UgKmNldikK IAogCWlmIChwd20udmFyaWFudC5oYXNfdGludF9jc3RhdCkgewogCQl1MzIgbWFzayA9ICgxIDw8 IHB3bS5ldmVudF9pZCk7CisKIAkJd3JpdGVsKG1hc2sgfCAobWFzayA8PCA1KSwgcHdtLmJhc2Ug KyBSRUdfVElOVF9DU1RBVCk7CiAJfQogfQpAQCAtMjQ4LDYgKzI0OCw3IEBAIHN0YXRpYyBpcnFy ZXR1cm5fdCBzYW1zdW5nX2Nsb2NrX2V2ZW50X2lzcihpbnQgaXJxLCB2b2lkICpkZXZfaWQpCiAK IAlpZiAocHdtLnZhcmlhbnQuaGFzX3RpbnRfY3N0YXQpIHsKIAkJdTMyIG1hc2sgPSAoMSA8PCBw d20uZXZlbnRfaWQpOworCiAJCXdyaXRlbChtYXNrIHwgKG1hc2sgPDwgNSksIHB3bS5iYXNlICsg UkVHX1RJTlRfQ1NUQVQpOwogCX0KIApAQCAtMjcyLDcgKzI3Myw3IEBAIHN0YXRpYyB2b2lkIF9f aW5pdCBzYW1zdW5nX2Nsb2NrZXZlbnRfaW5pdCh2b2lkKQogCiAJdGltZV9ldmVudF9kZXZpY2Uu Y3B1bWFzayA9IGNwdW1hc2tfb2YoMCk7CiAJY2xvY2tldmVudHNfY29uZmlnX2FuZF9yZWdpc3Rl cigmdGltZV9ldmVudF9kZXZpY2UsCi0JCQkJCQljbG9ja19yYXRlLCAxLCBwd20udGNudF9tYXgp OworCQkJCQljbG9ja19yYXRlLCAxLCBwd20udGNudF9tYXgpOwogCiAJaXJxX251bWJlciA9IHB3 bS5pcnFbcHdtLmV2ZW50X2lkXTsKIAlpZiAocmVxdWVzdF9pcnEoaXJxX251bWJlciwgc2Ftc3Vu Z19jbG9ja19ldmVudF9pc3IsCkBAIC0yODIsNiArMjgzLDcgQEAgc3RhdGljIHZvaWQgX19pbml0 IHNhbXN1bmdfY2xvY2tldmVudF9pbml0KHZvaWQpCiAKIAlpZiAocHdtLnZhcmlhbnQuaGFzX3Rp bnRfY3N0YXQpIHsKIAkJdTMyIG1hc2sgPSAoMSA8PCBwd20uZXZlbnRfaWQpOworCiAJCXdyaXRl bChtYXNrIHwgKG1hc2sgPDwgNSksIHB3bS5iYXNlICsgUkVHX1RJTlRfQ1NUQVQpOwogCX0KIH0K QEAgLTM0Nyw3ICszNDksNyBAQCBzdGF0aWMgaW50IF9faW5pdCBzYW1zdW5nX2Nsb2Nrc291cmNl X2luaXQodm9pZCkKIAkJcHdtLnNvdXJjZV9yZWcgPSBwd20uYmFzZSArIHB3bS5zb3VyY2VfaWQg KiAweDBjICsgMHgxNDsKIAogCXNjaGVkX2Nsb2NrX3JlZ2lzdGVyKHNhbXN1bmdfcmVhZF9zY2hl ZF9jbG9jaywKLQkJCQkJCXB3bS52YXJpYW50LmJpdHMsIGNsb2NrX3JhdGUpOworCQkJICAgICBw d20udmFyaWFudC5iaXRzLCBjbG9ja19yYXRlKTsKIAogCXNhbXN1bmdfY2xvY2tzb3VyY2UubWFz ayA9IENMT0NLU09VUkNFX01BU0socHdtLnZhcmlhbnQuYml0cyk7CiAJcmV0dXJuIGNsb2Nrc291 cmNlX3JlZ2lzdGVyX2h6KCZzYW1zdW5nX2Nsb2Nrc291cmNlLCBjbG9ja19yYXRlKTsKQEAgLTM5 OCw3ICs0MDAsOCBAQCBzdGF0aWMgaW50IF9faW5pdCBfc2Ftc3VuZ19wd21fY2xvY2tzb3VyY2Vf aW5pdCh2b2lkKQogfQogCiB2b2lkIF9faW5pdCBzYW1zdW5nX3B3bV9jbG9ja3NvdXJjZV9pbml0 KHZvaWQgX19pb21lbSAqYmFzZSwKLQkJCXVuc2lnbmVkIGludCAqaXJxcywgc3RydWN0IHNhbXN1 bmdfcHdtX3ZhcmlhbnQgKnZhcmlhbnQpCisJCQkJCSB1bnNpZ25lZCBpbnQgKmlycXMsCisJCQkJ CSBjb25zdCBzdHJ1Y3Qgc2Ftc3VuZ19wd21fdmFyaWFudCAqdmFyaWFudCkKIHsKIAlwd20uYmFz ZSA9IGJhc2U7CiAJbWVtY3B5KCZwd20udmFyaWFudCwgdmFyaWFudCwgc2l6ZW9mKHB3bS52YXJp YW50KSk7CkBAIC00MTgsNyArNDIxLDcgQEAgc3RhdGljIGludCBfX2luaXQgc2Ftc3VuZ19wd21f YWxsb2Moc3RydWN0IGRldmljZV9ub2RlICpucCwKIAlzdHJ1Y3QgcHJvcGVydHkgKnByb3A7CiAJ Y29uc3QgX19iZTMyICpjdXI7CiAJdTMyIHZhbDsKLQlpbnQgaTsKKwlpbnQgaSwgcmV0OwogCiAJ bWVtY3B5KCZwd20udmFyaWFudCwgdmFyaWFudCwgc2l6ZW9mKHB3bS52YXJpYW50KSk7CiAJZm9y IChpID0gMDsgaSA8IFNBTVNVTkdfUFdNX05VTTsgKytpKQpAQCAtNDQxLDEwICs0NDQsMjQgQEAg c3RhdGljIGludCBfX2luaXQgc2Ftc3VuZ19wd21fYWxsb2Moc3RydWN0IGRldmljZV9ub2RlICpu cCwKIAlwd20udGltZXJjbGsgPSBvZl9jbGtfZ2V0X2J5X25hbWUobnAsICJ0aW1lcnMiKTsKIAlp ZiAoSVNfRVJSKHB3bS50aW1lcmNsaykpIHsKIAkJcHJfY3JpdCgiZmFpbGVkIHRvIGdldCB0aW1l cnMgY2xvY2sgZm9yIHRpbWVyXG4iKTsKLQkJcmV0dXJuIFBUUl9FUlIocHdtLnRpbWVyY2xrKTsK KwkJcmV0ID0gUFRSX0VSUihwd20udGltZXJjbGspOworCQlnb3RvIGVycl9jbGs7CiAJfQogCi0J cmV0dXJuIF9zYW1zdW5nX3B3bV9jbG9ja3NvdXJjZV9pbml0KCk7CisJcmV0ID0gX3NhbXN1bmdf cHdtX2Nsb2Nrc291cmNlX2luaXQoKTsKKwlpZiAocmV0KQorCQlnb3RvIGVycl9jbG9ja3NvdXJj ZTsKKworCXJldHVybiAwOworCitlcnJfY2xvY2tzb3VyY2U6CisJY2xrX3B1dChwd20udGltZXJj bGspOworCXB3bS50aW1lcmNsayA9IE5VTEw7CitlcnJfY2xrOgorCWlvdW5tYXAocHdtLmJhc2Up OworCXB3bS5iYXNlID0gTlVMTDsKKworCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBjb25zdCBz dHJ1Y3Qgc2Ftc3VuZ19wd21fdmFyaWFudCBzM2MyNHh4X3ZhcmlhbnQgPSB7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2Nsb2Nrc291cmNlL3RpbWVyLW1lZGlhdGVrLmMgYi9kcml2ZXJzL2Nsb2Nrc291 cmNlL3RpbWVyLW1lZGlhdGVrLmMKaW5kZXggOTMxOGVkY2Q4OTYzLi5hYjYzYjk1ZTQxNGYgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvY2xvY2tzb3VyY2UvdGltZXItbWVkaWF0ZWsuYworKysgYi9kcml2 ZXJzL2Nsb2Nrc291cmNlL3RpbWVyLW1lZGlhdGVrLmMKQEAgLTI0MSw2ICsyNDEsMjggQEAgc3Rh dGljIHZvaWQgbXRrX2dwdF9lbmFibGVfaXJxKHN0cnVjdCB0aW1lcl9vZiAqdG8sIHU4IHRpbWVy KQogCSAgICAgICB0aW1lcl9vZl9iYXNlKHRvKSArIEdQVF9JUlFfRU5fUkVHKTsKIH0KIAorc3Rh dGljIHZvaWQgbXRrX2dwdF9yZXN1bWUoc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSAqY2xrKQor eworCXN0cnVjdCB0aW1lcl9vZiAqdG8gPSB0b190aW1lcl9vZihjbGspOworCisJbXRrX2dwdF9l bmFibGVfaXJxKHRvLCBUSU1FUl9DTEtfRVZUKTsKK30KKworc3RhdGljIHZvaWQgbXRrX2dwdF9z dXNwZW5kKHN0cnVjdCBjbG9ja19ldmVudF9kZXZpY2UgKmNsaykKK3sKKwlzdHJ1Y3QgdGltZXJf b2YgKnRvID0gdG9fdGltZXJfb2YoY2xrKTsKKworCS8qIERpc2FibGUgYWxsIGludGVycnVwdHMg Ki8KKwl3cml0ZWwoMHgwLCB0aW1lcl9vZl9iYXNlKHRvKSArIEdQVF9JUlFfRU5fUkVHKTsKKwor CS8qCisJICogVGhpcyBpcyBjYWxsZWQgd2l0aCBpbnRlcnJ1cHRzIGRpc2FibGVkLAorCSAqIHNv IHdlIG5lZWQgdG8gYWNrIGFueSBpbnRlcnJ1cHQgdGhhdCBpcyBwZW5kaW5nCisJICogb3IgZm9y IGV4YW1wbGUgQVRGIHdpbGwgcHJldmVudCBhIHN1c3BlbmQgZnJvbSBjb21wbGV0aW5nLgorCSAq LworCXdyaXRlbCgweDNmLCB0aW1lcl9vZl9iYXNlKHRvKSArIEdQVF9JUlFfQUNLX1JFRyk7Cit9 CisKIHN0YXRpYyBzdHJ1Y3QgdGltZXJfb2YgdG8gPSB7CiAJLmZsYWdzID0gVElNRVJfT0ZfSVJR IHwgVElNRVJfT0ZfQkFTRSB8IFRJTUVSX09GX0NMT0NLLAogCkBAIC0yODYsNiArMzA4LDggQEAg c3RhdGljIGludCBfX2luaXQgbXRrX2dwdF9pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSkK IAl0by5jbGtldnQuc2V0X3N0YXRlX29uZXNob3QgPSBtdGtfZ3B0X2Nsa2V2dF9zaHV0ZG93bjsK IAl0by5jbGtldnQudGlja19yZXN1bWUgPSBtdGtfZ3B0X2Nsa2V2dF9zaHV0ZG93bjsKIAl0by5j bGtldnQuc2V0X25leHRfZXZlbnQgPSBtdGtfZ3B0X2Nsa2V2dF9uZXh0X2V2ZW50OworCXRvLmNs a2V2dC5zdXNwZW5kID0gbXRrX2dwdF9zdXNwZW5kOworCXRvLmNsa2V2dC5yZXN1bWUgPSBtdGtf Z3B0X3Jlc3VtZTsKIAl0by5vZl9pcnEuaGFuZGxlciA9IG10a19ncHRfaW50ZXJydXB0OwogCiAJ cmV0ID0gdGltZXJfb2ZfaW5pdChub2RlLCAmdG8pOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbG9j a3NvdXJjZS90aW1lci10aS1kbS5jIGIvZHJpdmVycy9jbG9ja3NvdXJjZS90aW1lci10aS1kbS5j CmluZGV4IDMzZWVhYmY5YzNkMS4uM2U1MmM1MjI2YzRkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Ns b2Nrc291cmNlL3RpbWVyLXRpLWRtLmMKKysrIGIvZHJpdmVycy9jbG9ja3NvdXJjZS90aW1lci10 aS1kbS5jCkBAIC03OCw2ICs3OCw5IEBAIHN0YXRpYyB2b2lkIG9tYXBfZG1fdGltZXJfd3JpdGVf cmVnKHN0cnVjdCBvbWFwX2RtX3RpbWVyICp0aW1lciwgdTMyIHJlZywKIAogc3RhdGljIHZvaWQg b21hcF90aW1lcl9yZXN0b3JlX2NvbnRleHQoc3RydWN0IG9tYXBfZG1fdGltZXIgKnRpbWVyKQog eworCV9fb21hcF9kbV90aW1lcl93cml0ZSh0aW1lciwgT01BUF9USU1FUl9PQ1BfQ0ZHX09GRlNF VCwKKwkJCSAgICAgIHRpbWVyLT5jb250ZXh0Lm9jcF9jZmcsIDApOworCiAJb21hcF9kbV90aW1l cl93cml0ZV9yZWcodGltZXIsIE9NQVBfVElNRVJfV0FLRVVQX0VOX1JFRywKIAkJCQl0aW1lci0+ Y29udGV4dC50d2VyKTsKIAlvbWFwX2RtX3RpbWVyX3dyaXRlX3JlZyh0aW1lciwgT01BUF9USU1F Ul9DT1VOVEVSX1JFRywKQEAgLTk1LDYgKzk4LDkgQEAgc3RhdGljIHZvaWQgb21hcF90aW1lcl9y ZXN0b3JlX2NvbnRleHQoc3RydWN0IG9tYXBfZG1fdGltZXIgKnRpbWVyKQogCiBzdGF0aWMgdm9p ZCBvbWFwX3RpbWVyX3NhdmVfY29udGV4dChzdHJ1Y3Qgb21hcF9kbV90aW1lciAqdGltZXIpCiB7 CisJdGltZXItPmNvbnRleHQub2NwX2NmZyA9CisJCV9fb21hcF9kbV90aW1lcl9yZWFkKHRpbWVy LCBPTUFQX1RJTUVSX09DUF9DRkdfT0ZGU0VULCAwKTsKKwogCXRpbWVyLT5jb250ZXh0LnRjbHIg PQogCQkJb21hcF9kbV90aW1lcl9yZWFkX3JlZyh0aW1lciwgT01BUF9USU1FUl9DVFJMX1JFRyk7 CiAJdGltZXItPmNvbnRleHQudHdlciA9CkBAIC0xMjIsNyArMTI4LDggQEAgc3RhdGljIGludCBv bWFwX3RpbWVyX2NvbnRleHRfbm90aWZpZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwKIAkJ CWJyZWFrOwogCQlvbWFwX3RpbWVyX3NhdmVfY29udGV4dCh0aW1lcik7CiAJCWJyZWFrOwotCWNh c2UgQ1BVX0NMVVNURVJfUE1fRU5URVJfRkFJTEVEOgorCWNhc2UgQ1BVX0NMVVNURVJfUE1fRU5U RVJfRkFJTEVEOgkvKiBObyBuZWVkIHRvIHJlc3RvcmUgY29udGV4dCAqLworCQlicmVhazsKIAlj YXNlIENQVV9DTFVTVEVSX1BNX0VYSVQ6CiAJCWlmICgodGltZXItPmNhcGFiaWxpdHkgJiBPTUFQ X1RJTUVSX0FMV09OKSB8fAogCQkgICAgIWF0b21pY19yZWFkKCZ0aW1lci0+ZW5hYmxlZCkpCmRp ZmYgLS1naXQgYS9pbmNsdWRlL2Nsb2Nrc291cmNlL3NhbXN1bmdfcHdtLmggYi9pbmNsdWRlL2Ns b2Nrc291cmNlL3NhbXN1bmdfcHdtLmgKaW5kZXggYzM5NTIzOGQwOTIyLi45YjQzNWNhYTk1ZmUg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY2xvY2tzb3VyY2Uvc2Ftc3VuZ19wd20uaAorKysgYi9pbmNs dWRlL2Nsb2Nrc291cmNlL3NhbXN1bmdfcHdtLmgKQEAgLTI3LDYgKzI3LDcgQEAgc3RydWN0IHNh bXN1bmdfcHdtX3ZhcmlhbnQgewogfTsKIAogdm9pZCBzYW1zdW5nX3B3bV9jbG9ja3NvdXJjZV9p bml0KHZvaWQgX19pb21lbSAqYmFzZSwKLQkJdW5zaWduZWQgaW50ICppcnFzLCBzdHJ1Y3Qgc2Ft c3VuZ19wd21fdmFyaWFudCAqdmFyaWFudCk7CisJCQkJICB1bnNpZ25lZCBpbnQgKmlycXMsCisJ CQkJICBjb25zdCBzdHJ1Y3Qgc2Ftc3VuZ19wd21fdmFyaWFudCAqdmFyaWFudCk7CiAKICNlbmRp ZiAvKiBfX0NMT0NLU09VUkNFX1NBTVNVTkdfUFdNX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUv Y2xvY2tzb3VyY2UvdGltZXItdGktZG0uaCBiL2luY2x1ZGUvY2xvY2tzb3VyY2UvdGltZXItdGkt ZG0uaAppbmRleCA0YzYxZGFkZTg4MzUuLmY2ZGE4YTEzMjYzOSAxMDA2NDQKLS0tIGEvaW5jbHVk ZS9jbG9ja3NvdXJjZS90aW1lci10aS1kbS5oCisrKyBiL2luY2x1ZGUvY2xvY2tzb3VyY2UvdGlt ZXItdGktZG0uaApAQCAtNzQsNiArNzQsNyBAQAogI2RlZmluZSBPTUFQX1RJTUVSX0VSUkFUQV9J MTAzX0k3NjcJCQkweDgwMDAwMDAwCiAKIHN0cnVjdCB0aW1lcl9yZWdzIHsKKwl1MzIgb2NwX2Nm ZzsKIAl1MzIgdGlkcjsKIAl1MzIgdGllcjsKIAl1MzIgdHdlcjsKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvbGludXgvY2xvY2tzb3VyY2UuaCBiL2luY2x1ZGUvbGludXgvY2xvY2tzb3VyY2UuaAppbmRl eCBkNmFiNDE2ZWUyZDIuLjFkNDJkNGIxNzMyNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9j bG9ja3NvdXJjZS5oCisrKyBiL2luY2x1ZGUvbGludXgvY2xvY2tzb3VyY2UuaApAQCAtNDMsNiAr NDMsOCBAQCBzdHJ1Y3QgbW9kdWxlOwogICogQHNoaWZ0OgkJQ3ljbGUgdG8gbmFub3NlY29uZCBk aXZpc29yIChwb3dlciBvZiB0d28pCiAgKiBAbWF4X2lkbGVfbnM6CU1heGltdW0gaWRsZSB0aW1l IHBlcm1pdHRlZCBieSB0aGUgY2xvY2tzb3VyY2UgKG5zZWNzKQogICogQG1heGFkajoJCU1heGlt dW0gYWRqdXN0bWVudCB2YWx1ZSB0byBtdWx0ICh+MTElKQorICogQHVuY2VydGFpbnR5X21hcmdp bjoJTWF4aW11bSB1bmNlcnRhaW50eSBpbiBuYW5vc2Vjb25kcyBwZXIgaGFsZiBzZWNvbmQuCisg KgkJCVplcm8gc2F5cyB0byB1c2UgZGVmYXVsdCBXQVRDSERPR19USFJFU0hPTEQuCiAgKiBAYXJj aGRhdGE6CQlPcHRpb25hbCBhcmNoLXNwZWNpZmljIGRhdGEKICAqIEBtYXhfY3ljbGVzOgkJTWF4 aW11bSBzYWZlIGN5Y2xlIHZhbHVlIHdoaWNoIHdvbid0IG92ZXJmbG93IG9uCiAgKgkJCW11bHRp cGxpY2F0aW9uCkBAIC05OCw2ICsxMDAsNyBAQCBzdHJ1Y3QgY2xvY2tzb3VyY2UgewogCXUzMgkJ CXNoaWZ0OwogCXU2NAkJCW1heF9pZGxlX25zOwogCXUzMgkJCW1heGFkajsKKwl1MzIJCQl1bmNl cnRhaW50eV9tYXJnaW47CiAjaWZkZWYgQ09ORklHX0FSQ0hfQ0xPQ0tTT1VSQ0VfREFUQQogCXN0 cnVjdCBhcmNoX2Nsb2Nrc291cmNlX2RhdGEgYXJjaGRhdGE7CiAjZW5kaWYKQEAgLTEzNyw3ICsx NDAsNyBAQCBzdHJ1Y3QgY2xvY2tzb3VyY2UgewogI2RlZmluZSBDTE9DS19TT1VSQ0VfVU5TVEFC TEUJCQkweDQwCiAjZGVmaW5lIENMT0NLX1NPVVJDRV9TVVNQRU5EX05PTlNUT1AJCTB4ODAKICNk ZWZpbmUgQ0xPQ0tfU09VUkNFX1JFU0VMRUNUCQkJMHgxMDAKLQorI2RlZmluZSBDTE9DS19TT1VS Q0VfVkVSSUZZX1BFUkNQVQkJMHgyMDAKIC8qIHNpbXBsaWZ5IGluaXRpYWxpemF0aW9uIG9mIG1h c2sgZmllbGQgKi8KICNkZWZpbmUgQ0xPQ0tTT1VSQ0VfTUFTSyhiaXRzKSBHRU5NQVNLX1VMTCgo Yml0cykgLSAxLCAwKQogCkBAIC0yODgsNCArMjkxLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHRp bWVyX3Byb2JlKHZvaWQpIHt9CiAjZGVmaW5lIFRJTUVSX0FDUElfREVDTEFSRShuYW1lLCB0YWJs ZV9pZCwgZm4pCQlcCiAJQUNQSV9ERUNMQVJFX1BST0JFX0VOVFJZKHRpbWVyLCBuYW1lLCB0YWJs ZV9pZCwgMCwgTlVMTCwgMCwgZm4pCiAKK2V4dGVybiB1bG9uZyBtYXhfY3N3ZF9yZWFkX3JldHJp ZXM7Cit2b2lkIGNsb2Nrc291cmNlX3ZlcmlmeV9wZXJjcHUoc3RydWN0IGNsb2Nrc291cmNlICpj cyk7CisKICNlbmRpZiAvKiBfTElOVVhfQ0xPQ0tTT1VSQ0VfSCAqLwpkaWZmIC0tZ2l0IGEva2Vy bmVsL3RpbWUvS2NvbmZpZyBiL2tlcm5lbC90aW1lL0tjb25maWcKaW5kZXggODNlMTU4ZDAxNmJh Li4zNjEwYjFiZWYxNDIgMTAwNjQ0Ci0tLSBhL2tlcm5lbC90aW1lL0tjb25maWcKKysrIGIva2Vy bmVsL3RpbWUvS2NvbmZpZwpAQCAtNjQsNiArNjQsMTUgQEAgY29uZmlnIExFR0FDWV9USU1FUl9U SUNLCiAJICBsYWNrIHN1cHBvcnQgZm9yIHRoZSBnZW5lcmljIGNsb2NrZXZlbnQgZnJhbWV3b3Jr LgogCSAgTmV3IHBsYXRmb3JtcyBzaG91bGQgdXNlIGdlbmVyaWMgY2xvY2tldmVudHMgaW5zdGVh ZC4KIAorY29uZmlnIFRJTUVfS1VOSVRfVEVTVAorCXRyaXN0YXRlICJLVW5pdCB0ZXN0IGZvciBr ZXJuZWwvdGltZSBmdW5jdGlvbnMiIGlmICFLVU5JVF9BTExfVEVTVFMKKwlkZXBlbmRzIG9uIEtV TklUCisJZGVmYXVsdCBLVU5JVF9BTExfVEVTVFMKKwloZWxwCisJICBFbmFibGUgdGhpcyBvcHRp b24gdG8gdGVzdCBSVEMgbGlicmFyeSBmdW5jdGlvbnMuCisKKwkgIElmIHVuc3VyZSwgc2F5IE4u CisKIGlmIEdFTkVSSUNfQ0xPQ0tFVkVOVFMKIG1lbnUgIlRpbWVycyBzdWJzeXN0ZW0iCiAKZGlm ZiAtLWdpdCBhL2tlcm5lbC90aW1lL01ha2VmaWxlIGIva2VybmVsL3RpbWUvTWFrZWZpbGUKaW5k ZXggMWZiMWMxZWY2YTE5Li43ZTg3NWU2M2ZmM2IgMTAwNjQ0Ci0tLSBhL2tlcm5lbC90aW1lL01h a2VmaWxlCisrKyBiL2tlcm5lbC90aW1lL01ha2VmaWxlCkBAIC0yMSwzICsyMSw1IEBAIG9iai0k KENPTkZJR19IQVZFX0dFTkVSSUNfVkRTTykJCQkrPSB2c3lzY2FsbC5vCiBvYmotJChDT05GSUdf REVCVUdfRlMpCQkJCSs9IHRpbWVrZWVwaW5nX2RlYnVnLm8KIG9iai0kKENPTkZJR19URVNUX1VE RUxBWSkJCQkrPSB0ZXN0X3VkZWxheS5vCiBvYmotJChDT05GSUdfVElNRV9OUykJCQkJKz0gbmFt ZXNwYWNlLm8KK29iai0kKENPTkZJR19URVNUX0NMT0NLU09VUkNFX1dBVENIRE9HKQkJKz0gY2xv Y2tzb3VyY2Utd2R0ZXN0Lm8KK29iai0kKENPTkZJR19USU1FX0tVTklUX1RFU1QpCQkJKz0gdGlt ZV90ZXN0Lm8KZGlmZiAtLWdpdCBhL2tlcm5lbC90aW1lL2Nsb2NrZXZlbnRzLmMgYi9rZXJuZWwv dGltZS9jbG9ja2V2ZW50cy5jCmluZGV4IGY1NDkwMjIyZTEzNC4uMDAzY2NmMzM4ZDIwIDEwMDY0 NAotLS0gYS9rZXJuZWwvdGltZS9jbG9ja2V2ZW50cy5jCisrKyBiL2tlcm5lbC90aW1lL2Nsb2Nr ZXZlbnRzLmMKQEAgLTM0Nyw4ICszNDcsNyBAQCBzdGF0aWMgdm9pZCBjbG9ja2V2ZW50c19ub3Rp ZnlfcmVsZWFzZWQodm9pZCkKIAl3aGlsZSAoIWxpc3RfZW1wdHkoJmNsb2NrZXZlbnRzX3JlbGVh c2VkKSkgewogCQlkZXYgPSBsaXN0X2VudHJ5KGNsb2NrZXZlbnRzX3JlbGVhc2VkLm5leHQsCiAJ CQkJIHN0cnVjdCBjbG9ja19ldmVudF9kZXZpY2UsIGxpc3QpOwotCQlsaXN0X2RlbCgmZGV2LT5s aXN0KTsKLQkJbGlzdF9hZGQoJmRldi0+bGlzdCwgJmNsb2NrZXZlbnRfZGV2aWNlcyk7CisJCWxp c3RfbW92ZSgmZGV2LT5saXN0LCAmY2xvY2tldmVudF9kZXZpY2VzKTsKIAkJdGlja19jaGVja19u ZXdfZGV2aWNlKGRldik7CiAJfQogfQpAQCAtNTc2LDggKzU3NSw3IEBAIHZvaWQgY2xvY2tldmVu dHNfZXhjaGFuZ2VfZGV2aWNlKHN0cnVjdCBjbG9ja19ldmVudF9kZXZpY2UgKm9sZCwKIAlpZiAo b2xkKSB7CiAJCW1vZHVsZV9wdXQob2xkLT5vd25lcik7CiAJCWNsb2NrZXZlbnRzX3N3aXRjaF9z dGF0ZShvbGQsIENMT0NLX0VWVF9TVEFURV9ERVRBQ0hFRCk7Ci0JCWxpc3RfZGVsKCZvbGQtPmxp c3QpOwotCQlsaXN0X2FkZCgmb2xkLT5saXN0LCAmY2xvY2tldmVudHNfcmVsZWFzZWQpOworCQls aXN0X21vdmUoJm9sZC0+bGlzdCwgJmNsb2NrZXZlbnRzX3JlbGVhc2VkKTsKIAl9CiAKIAlpZiAo bmV3KSB7CkBAIC02MjksNiArNjI3LDcgQEAgdm9pZCB0aWNrX29mZmxpbmVfY3B1KHVuc2lnbmVk IGludCBjcHUpCiAKIC8qKgogICogdGlja19jbGVhbnVwX2RlYWRfY3B1IC0gQ2xlYW51cCB0aGUg dGljayBhbmQgY2xvY2tldmVudHMgb2YgYSBkZWFkIGNwdQorICogQGNwdToJVGhlIGRlYWQgQ1BV CiAgKi8KIHZvaWQgdGlja19jbGVhbnVwX2RlYWRfY3B1KGludCBjcHUpCiB7CkBAIC02NjgsOSAr NjY3LDkgQEAgc3RhdGljIHN0cnVjdCBidXNfdHlwZSBjbG9ja2V2ZW50c19zdWJzeXMgPSB7CiBz dGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IGRldmljZSwgdGlja19wZXJjcHVfZGV2KTsKIHN0 YXRpYyBzdHJ1Y3QgdGlja19kZXZpY2UgKnRpY2tfZ2V0X3RpY2tfZGV2KHN0cnVjdCBkZXZpY2Ug KmRldik7CiAKLXN0YXRpYyBzc2l6ZV90IHN5c2ZzX3Nob3dfY3VycmVudF90aWNrX2RldihzdHJ1 Y3QgZGV2aWNlICpkZXYsCi0JCQkJCSAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAot CQkJCQkgICBjaGFyICpidWYpCitzdGF0aWMgc3NpemVfdCBjdXJyZW50X2RldmljZV9zaG93KHN0 cnVjdCBkZXZpY2UgKmRldiwKKwkJCQkgICBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwK KwkJCQkgICBjaGFyICpidWYpCiB7CiAJc3RydWN0IHRpY2tfZGV2aWNlICp0ZDsKIAlzc2l6ZV90 IGNvdW50ID0gMDsKQEAgLTY4MiwxMiArNjgxLDEyIEBAIHN0YXRpYyBzc2l6ZV90IHN5c2ZzX3No b3dfY3VycmVudF90aWNrX2RldihzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJcmF3X3NwaW5fdW5sb2Nr X2lycSgmY2xvY2tldmVudHNfbG9jayk7CiAJcmV0dXJuIGNvdW50OwogfQotc3RhdGljIERFVklD RV9BVFRSKGN1cnJlbnRfZGV2aWNlLCAwNDQ0LCBzeXNmc19zaG93X2N1cnJlbnRfdGlja19kZXYs IE5VTEwpOworc3RhdGljIERFVklDRV9BVFRSX1JPKGN1cnJlbnRfZGV2aWNlKTsKIAogLyogV2Ug ZG9uJ3Qgc3VwcG9ydCB0aGUgYWJvbWluYXRpb24gb2YgcmVtb3ZhYmxlIGJyb2FkY2FzdCBkZXZp Y2VzICovCi1zdGF0aWMgc3NpemVfdCBzeXNmc191bmJpbmRfdGlja19kZXYoc3RydWN0IGRldmlj ZSAqZGV2LAotCQkJCSAgICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCi0JCQkJICAg ICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCkKK3N0YXRpYyBzc2l6ZV90IHVuYmluZF9k ZXZpY2Vfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAorCQkJCSAgIHN0cnVjdCBkZXZpY2VfYXR0 cmlidXRlICphdHRyLAorCQkJCSAgIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KQogewog CWNoYXIgbmFtZVtDU19OQU1FX0xFTl07CiAJc3NpemVfdCByZXQgPSBzeXNmc19nZXRfdW5hbWUo YnVmLCBuYW1lLCBjb3VudCk7CkBAIC03MTQsNyArNzEzLDcgQEAgc3RhdGljIHNzaXplX3Qgc3lz ZnNfdW5iaW5kX3RpY2tfZGV2KHN0cnVjdCBkZXZpY2UgKmRldiwKIAltdXRleF91bmxvY2soJmNs b2NrZXZlbnRzX211dGV4KTsKIAlyZXR1cm4gcmV0ID8gcmV0IDogY291bnQ7CiB9Ci1zdGF0aWMg REVWSUNFX0FUVFIodW5iaW5kX2RldmljZSwgMDIwMCwgTlVMTCwgc3lzZnNfdW5iaW5kX3RpY2tf ZGV2KTsKK3N0YXRpYyBERVZJQ0VfQVRUUl9XTyh1bmJpbmRfZGV2aWNlKTsKIAogI2lmZGVmIENP TkZJR19HRU5FUklDX0NMT0NLRVZFTlRTX0JST0FEQ0FTVAogc3RhdGljIHN0cnVjdCBkZXZpY2Ug dGlja19iY19kZXYgPSB7CmRpZmYgLS1naXQgYS9rZXJuZWwvdGltZS9jbG9ja3NvdXJjZS13ZHRl c3QuYyBiL2tlcm5lbC90aW1lL2Nsb2Nrc291cmNlLXdkdGVzdC5jCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMDFkZjEyMzk1YzBlCi0tLSAvZGV2L251bGwKKysrIGIv a2VybmVsL3RpbWUvY2xvY2tzb3VyY2Utd2R0ZXN0LmMKQEAgLTAsMCArMSwyMDIgQEAKKy8vIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKworLyoKKyAqIFVuaXQgdGVzdCBmb3IgdGhl IGNsb2Nrc291cmNlIHdhdGNoZG9nLgorICoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBGYWNlYm9v aywgSW5jLgorICoKKyAqIEF1dGhvcjogUGF1bCBFLiBNY0tlbm5leSA8cGF1bG1ja0BrZXJuZWwu b3JnPgorICovCisjZGVmaW5lIHByX2ZtdChmbXQpIEtCVUlMRF9NT0ROQU1FICI6ICIgZm10CisK KyNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9jbG9ja3NvdXJjZS5o PgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNp bmNsdWRlIDxsaW51eC9zY2hlZC5oPiAvKiBmb3Igc3Bpbl91bmxvY2tfaXJxKCkgdXNpbmcgcHJl ZW1wdF9jb3VudCgpIG02OGsgKi8KKyNpbmNsdWRlIDxsaW51eC90aWNrLmg+CisjaW5jbHVkZSA8 bGludXgva3RocmVhZC5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGlu dXgvcHJhbmRvbS5oPgorI2luY2x1ZGUgPGxpbnV4L2NwdS5oPgorCitNT0RVTEVfTElDRU5TRSgi R1BMIik7CitNT0RVTEVfQVVUSE9SKCJQYXVsIEUuIE1jS2VubmV5IDxwYXVsbWNrQGtlcm5lbC5v cmc+Iik7CisKK3N0YXRpYyBpbnQgaG9sZG9mZiA9IElTX0JVSUxUSU4oQ09ORklHX1RFU1RfQ0xP Q0tTT1VSQ0VfV0FUQ0hET0cpID8gMTAgOiAwOworbW9kdWxlX3BhcmFtKGhvbGRvZmYsIGludCwg MDQ0NCk7CitNT0RVTEVfUEFSTV9ERVNDKGhvbGRvZmYsICJUaW1lIHRvIHdhaXQgdG8gc3RhcnQg dGVzdCAocykuIik7CisKKy8qIFdhdGNoZG9nIGt0aHJlYWQncyB0YXNrX3N0cnVjdCBwb2ludGVy IGZvciBkZWJ1ZyBwdXJwb3Nlcy4gKi8KK3N0YXRpYyBzdHJ1Y3QgdGFza19zdHJ1Y3QgKndkdGVz dF90YXNrOworCitzdGF0aWMgdTY0IHdkdGVzdF9qaWZmaWVzX3JlYWQoc3RydWN0IGNsb2Nrc291 cmNlICpjcykKK3sKKwlyZXR1cm4gKHU2NClqaWZmaWVzOworfQorCisvKiBBc3N1bWUgSFogPiAx MDAuICovCisjZGVmaW5lIEpJRkZJRVNfU0hJRlQJOAorCitzdGF0aWMgc3RydWN0IGNsb2Nrc291 cmNlIGNsb2Nrc291cmNlX3dkdGVzdF9qaWZmaWVzID0geworCS5uYW1lCQkJPSAid2R0ZXN0LWpp ZmZpZXMiLAorCS5yYXRpbmcJCQk9IDEsIC8qIGxvd2VzdCB2YWxpZCByYXRpbmcqLworCS51bmNl cnRhaW50eV9tYXJnaW4JPSBUSUNLX05TRUMsCisJLnJlYWQJCQk9IHdkdGVzdF9qaWZmaWVzX3Jl YWQsCisJLm1hc2sJCQk9IENMT0NLU09VUkNFX01BU0soMzIpLAorCS5mbGFncwkJCT0gQ0xPQ0tf U09VUkNFX01VU1RfVkVSSUZZLAorCS5tdWx0CQkJPSBUSUNLX05TRUMgPDwgSklGRklFU19TSElG VCwgLyogZGV0YWlscyBhYm92ZSAqLworCS5zaGlmdAkJCT0gSklGRklFU19TSElGVCwKKwkubWF4 X2N5Y2xlcwkJPSAxMCwKK307CisKK3N0YXRpYyBpbnQgd2R0ZXN0X2t0aW1lX3JlYWRfbmRlbGF5 czsKK3N0YXRpYyBib29sIHdkdGVzdF9rdGltZV9yZWFkX2Z1eno7CisKK3N0YXRpYyB1NjQgd2R0 ZXN0X2t0aW1lX3JlYWQoc3RydWN0IGNsb2Nrc291cmNlICpjcykKK3sKKwlpbnQgd2tybiA9IFJF QURfT05DRSh3ZHRlc3Rfa3RpbWVfcmVhZF9uZGVsYXlzKTsKKwlzdGF0aWMgaW50IHNpZ24gPSAx OworCXU2NCByZXQ7CisKKwlpZiAod2tybikgeworCQl1ZGVsYXkoY3MtPnVuY2VydGFpbnR5X21h cmdpbiAvIDI1MCk7CisJCVdSSVRFX09OQ0Uod2R0ZXN0X2t0aW1lX3JlYWRfbmRlbGF5cywgd2ty biAtIDEpOworCX0KKwlyZXQgPSBrdGltZV9nZXRfcmVhbF9mYXN0X25zKCk7CisJaWYgKFJFQURf T05DRSh3ZHRlc3Rfa3RpbWVfcmVhZF9mdXp6KSkgeworCQlzaWduID0gLXNpZ247CisJCXJldCA9 IHJldCArIHNpZ24gKiAxMDAgKiBOU0VDX1BFUl9NU0VDOworCX0KKwlyZXR1cm4gcmV0OworfQor CitzdGF0aWMgdm9pZCB3ZHRlc3Rfa3RpbWVfY3NfbWFya191bnN0YWJsZShzdHJ1Y3QgY2xvY2tz b3VyY2UgKmNzKQoreworCXByX2luZm8oIi0tLSBNYXJraW5nICVzIHVuc3RhYmxlIGR1ZSB0byBj bG9ja3NvdXJjZSB3YXRjaGRvZy5cbiIsIGNzLT5uYW1lKTsKK30KKworI2RlZmluZSBLVElNRV9G TEFHUyAoQ0xPQ0tfU09VUkNFX0lTX0NPTlRJTlVPVVMgfCBcCisJCSAgICAgQ0xPQ0tfU09VUkNF X1ZBTElEX0ZPUl9IUkVTIHwgXAorCQkgICAgIENMT0NLX1NPVVJDRV9NVVNUX1ZFUklGWSB8IFwK KwkJICAgICBDTE9DS19TT1VSQ0VfVkVSSUZZX1BFUkNQVSkKKworc3RhdGljIHN0cnVjdCBjbG9j a3NvdXJjZSBjbG9ja3NvdXJjZV93ZHRlc3Rfa3RpbWUgPSB7CisJLm5hbWUJCQk9ICJ3ZHRlc3Qt a3RpbWUiLAorCS5yYXRpbmcJCQk9IDMwMCwKKwkucmVhZAkJCT0gd2R0ZXN0X2t0aW1lX3JlYWQs CisJLm1hc2sJCQk9IENMT0NLU09VUkNFX01BU0soNjQpLAorCS5mbGFncwkJCT0gS1RJTUVfRkxB R1MsCisJLm1hcmtfdW5zdGFibGUJCT0gd2R0ZXN0X2t0aW1lX2NzX21hcmtfdW5zdGFibGUsCisJ Lmxpc3QJCQk9IExJU1RfSEVBRF9JTklUKGNsb2Nrc291cmNlX3dkdGVzdF9rdGltZS5saXN0KSwK K307CisKKy8qIFJlc2V0IHRoZSBjbG9ja3NvdXJjZSBpZiBuZWVkZWQuICovCitzdGF0aWMgdm9p ZCB3ZHRlc3Rfa3RpbWVfY2xvY2tzb3VyY2VfcmVzZXQodm9pZCkKK3sKKwlpZiAoY2xvY2tzb3Vy Y2Vfd2R0ZXN0X2t0aW1lLmZsYWdzICYgQ0xPQ0tfU09VUkNFX1VOU1RBQkxFKSB7CisJCWNsb2Nr c291cmNlX3VucmVnaXN0ZXIoJmNsb2Nrc291cmNlX3dkdGVzdF9rdGltZSk7CisJCWNsb2Nrc291 cmNlX3dkdGVzdF9rdGltZS5mbGFncyA9IEtUSU1FX0ZMQUdTOworCQlzY2hlZHVsZV90aW1lb3V0 X3VuaW50ZXJydXB0aWJsZShIWiAvIDEwKTsKKwkJY2xvY2tzb3VyY2VfcmVnaXN0ZXJfa2h6KCZj bG9ja3NvdXJjZV93ZHRlc3Rfa3RpbWUsIDEwMDAgKiAxMDAwKTsKKwl9Cit9CisKKy8qIFJ1biB0 aGUgc3BlY2lmaWVkIHNlcmllcyBvZiB3YXRjaGRvZyB0ZXN0cy4gKi8KK3N0YXRpYyBpbnQgd2R0 ZXN0X2Z1bmModm9pZCAqYXJnKQoreworCXVuc2lnbmVkIGxvbmcgajEsIGoyOworCWNoYXIgKnM7 CisJaW50IGk7CisKKwlzY2hlZHVsZV90aW1lb3V0X3VuaW50ZXJydXB0aWJsZShob2xkb2ZmICog SFopOworCisJLyoKKwkgKiBWZXJpZnkgdGhhdCBqaWZmaWVzLWxpa2UgY2xvY2tzb3VyY2VzIGdl dCB0aGUgbWFudWFsbHkKKwkgKiBzcGVjaWZpZWQgdW5jZXJ0YWludHkgbWFyZ2luLgorCSAqLwor CXByX2luZm8oIi0tLSBWZXJpZnkgamlmZmllcy1saWtlIHVuY2VydGFpbnR5IG1hcmdpbi5cbiIp OworCV9fY2xvY2tzb3VyY2VfcmVnaXN0ZXIoJmNsb2Nrc291cmNlX3dkdGVzdF9qaWZmaWVzKTsK KwlXQVJOX09OX09OQ0UoY2xvY2tzb3VyY2Vfd2R0ZXN0X2ppZmZpZXMudW5jZXJ0YWludHlfbWFy Z2luICE9IFRJQ0tfTlNFQyk7CisKKwlqMSA9IGNsb2Nrc291cmNlX3dkdGVzdF9qaWZmaWVzLnJl YWQoJmNsb2Nrc291cmNlX3dkdGVzdF9qaWZmaWVzKTsKKwlzY2hlZHVsZV90aW1lb3V0X3VuaW50 ZXJydXB0aWJsZShIWik7CisJajIgPSBjbG9ja3NvdXJjZV93ZHRlc3RfamlmZmllcy5yZWFkKCZj bG9ja3NvdXJjZV93ZHRlc3RfamlmZmllcyk7CisJV0FSTl9PTl9PTkNFKGoxID09IGoyKTsKKwor CWNsb2Nrc291cmNlX3VucmVnaXN0ZXIoJmNsb2Nrc291cmNlX3dkdGVzdF9qaWZmaWVzKTsKKwor CS8qCisJICogVmVyaWZ5IHRoYXQgdHNjLWxpa2UgY2xvY2tzb3VyY2VzIGFyZSBhc3NpZ25lZCBh IHJlYXNvbmFibGUKKwkgKiB1bmNlcnRhaW50eSBtYXJnaW4uCisJICovCisJcHJfaW5mbygiLS0t IFZlcmlmeSB0c2MtbGlrZSB1bmNlcnRhaW50eSBtYXJnaW4uXG4iKTsKKwljbG9ja3NvdXJjZV9y ZWdpc3Rlcl9raHooJmNsb2Nrc291cmNlX3dkdGVzdF9rdGltZSwgMTAwMCAqIDEwMDApOworCVdB Uk5fT05fT05DRShjbG9ja3NvdXJjZV93ZHRlc3Rfa3RpbWUudW5jZXJ0YWludHlfbWFyZ2luIDwg TlNFQ19QRVJfVVNFQyk7CisKKwlqMSA9IGNsb2Nrc291cmNlX3dkdGVzdF9rdGltZS5yZWFkKCZj bG9ja3NvdXJjZV93ZHRlc3Rfa3RpbWUpOworCXVkZWxheSgxKTsKKwlqMiA9IGNsb2Nrc291cmNl X3dkdGVzdF9rdGltZS5yZWFkKCZjbG9ja3NvdXJjZV93ZHRlc3Rfa3RpbWUpOworCXByX2luZm8o Ii0tLSB0c2MtbGlrZSB0aW1lczogJWx1IC0gJWx1ID0gJWx1LlxuIiwgajIsIGoxLCBqMiAtIGox KTsKKwlXQVJOX09OX09OQ0UodGltZV9iZWZvcmUoajIsIGoxICsgTlNFQ19QRVJfVVNFQykpOwor CisJLyogVmVyaWZ5IHRzYy1saWtlIHN0YWJpbGl0eSB3aXRoIHZhcmlvdXMgbnVtYmVycyBvZiBl cnJvcnMgaW5qZWN0ZWQuICovCisJZm9yIChpID0gMDsgaSA8PSBtYXhfY3N3ZF9yZWFkX3JldHJp ZXMgKyAxOyBpKyspIHsKKwkJaWYgKGkgPD0gMSAmJiBpIDwgbWF4X2Nzd2RfcmVhZF9yZXRyaWVz KQorCQkJcyA9ICIiOworCQllbHNlIGlmIChpIDw9IG1heF9jc3dkX3JlYWRfcmV0cmllcykKKwkJ CXMgPSAiLCBleHBlY3QgbWVzc2FnZSI7CisJCWVsc2UKKwkJCXMgPSAiLCBleHBlY3QgY2xvY2sg c2tldyI7CisJCXByX2luZm8oIi0tLSBXYXRjaGRvZyB3aXRoICVkeCBlcnJvciBpbmplY3Rpb24s ICVsdSByZXRyaWVzJXMuXG4iLCBpLCBtYXhfY3N3ZF9yZWFkX3JldHJpZXMsIHMpOworCQlXUklU RV9PTkNFKHdkdGVzdF9rdGltZV9yZWFkX25kZWxheXMsIGkpOworCQlzY2hlZHVsZV90aW1lb3V0 X3VuaW50ZXJydXB0aWJsZSgyICogSFopOworCQlXQVJOX09OX09OQ0UoUkVBRF9PTkNFKHdkdGVz dF9rdGltZV9yZWFkX25kZWxheXMpKTsKKwkJV0FSTl9PTl9PTkNFKChpIDw9IG1heF9jc3dkX3Jl YWRfcmV0cmllcykgIT0KKwkJCSAgICAgIShjbG9ja3NvdXJjZV93ZHRlc3Rfa3RpbWUuZmxhZ3Mg JiBDTE9DS19TT1VSQ0VfVU5TVEFCTEUpKTsKKwkJd2R0ZXN0X2t0aW1lX2Nsb2Nrc291cmNlX3Jl c2V0KCk7CisJfQorCisJLyogVmVyaWZ5IHRzYy1saWtlIHN0YWJpbGl0eSB3aXRoIGNsb2NrLXZh bHVlLWZ1enogZXJyb3IgaW5qZWN0aW9uLiAqLworCXByX2luZm8oIi0tLSBXYXRjaGRvZyBjbG9j ay12YWx1ZS1mdXp6IGVycm9yIGluamVjdGlvbiwgZXhwZWN0IGNsb2NrIHNrZXcgYW5kIHBlci1D UFUgbWlzbWF0Y2hlcy5cbiIpOworCVdSSVRFX09OQ0Uod2R0ZXN0X2t0aW1lX3JlYWRfZnV6eiwg dHJ1ZSk7CisJc2NoZWR1bGVfdGltZW91dF91bmludGVycnVwdGlibGUoMiAqIEhaKTsKKwlXQVJO X09OX09OQ0UoIShjbG9ja3NvdXJjZV93ZHRlc3Rfa3RpbWUuZmxhZ3MgJiBDTE9DS19TT1VSQ0Vf VU5TVEFCTEUpKTsKKwljbG9ja3NvdXJjZV92ZXJpZnlfcGVyY3B1KCZjbG9ja3NvdXJjZV93ZHRl c3Rfa3RpbWUpOworCVdSSVRFX09OQ0Uod2R0ZXN0X2t0aW1lX3JlYWRfZnV6eiwgZmFsc2UpOwor CisJY2xvY2tzb3VyY2VfdW5yZWdpc3RlcigmY2xvY2tzb3VyY2Vfd2R0ZXN0X2t0aW1lKTsKKwor CXByX2luZm8oIi0tLSBEb25lIHdpdGggdGVzdC5cbiIpOworCXJldHVybiAwOworfQorCitzdGF0 aWMgdm9pZCB3ZHRlc3RfcHJpbnRfbW9kdWxlX3Bhcm1zKHZvaWQpCit7CisJcHJfYWxlcnQoIi0t LSBob2xkb2ZmPSVkXG4iLCBob2xkb2ZmKTsKK30KKworLyogQ2xlYW51cCBmdW5jdGlvbi4gKi8K K3N0YXRpYyB2b2lkIGNsb2Nrc291cmNlX3dkdGVzdF9jbGVhbnVwKHZvaWQpCit7Cit9CisKK3N0 YXRpYyBpbnQgX19pbml0IGNsb2Nrc291cmNlX3dkdGVzdF9pbml0KHZvaWQpCit7CisJaW50IHJl dCA9IDA7CisKKwl3ZHRlc3RfcHJpbnRfbW9kdWxlX3Bhcm1zKCk7CisKKwkvKiBDcmVhdGUgd2F0 Y2hkb2ctdGVzdCB0YXNrLiAqLworCXdkdGVzdF90YXNrID0ga3RocmVhZF9ydW4od2R0ZXN0X2Z1 bmMsIE5VTEwsICJ3ZHRlc3QiKTsKKwlpZiAoSVNfRVJSKHdkdGVzdF90YXNrKSkgeworCQlyZXQg PSBQVFJfRVJSKHdkdGVzdF90YXNrKTsKKwkJcHJfd2FybigiJXM6IEZhaWxlZCB0byBjcmVhdGUg d2R0ZXN0IGt0aHJlYWQuXG4iLCBfX2Z1bmNfXyk7CisJCXdkdGVzdF90YXNrID0gTlVMTDsKKwkJ cmV0dXJuIHJldDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworbW9kdWxlX2luaXQoY2xvY2tzb3Vy Y2Vfd2R0ZXN0X2luaXQpOworbW9kdWxlX2V4aXQoY2xvY2tzb3VyY2Vfd2R0ZXN0X2NsZWFudXAp OwpkaWZmIC0tZ2l0IGEva2VybmVsL3RpbWUvY2xvY2tzb3VyY2UuYyBiL2tlcm5lbC90aW1lL2Ns b2Nrc291cmNlLmMKaW5kZXggMmNkOTAyNTkyZmMxLi5iODljNzZlMWMwMmMgMTAwNjQ0Ci0tLSBh L2tlcm5lbC90aW1lL2Nsb2Nrc291cmNlLmMKKysrIGIva2VybmVsL3RpbWUvY2xvY2tzb3VyY2Uu YwpAQCAtMTQsNiArMTQsOCBAQAogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+IC8qIGZvciBzcGlu X3VubG9ja19pcnEoKSB1c2luZyBwcmVlbXB0X2NvdW50KCkgbTY4ayAqLwogI2luY2x1ZGUgPGxp bnV4L3RpY2suaD4KICNpbmNsdWRlIDxsaW51eC9rdGhyZWFkLmg+CisjaW5jbHVkZSA8bGludXgv cHJhbmRvbS5oPgorI2luY2x1ZGUgPGxpbnV4L2NwdS5oPgogCiAjaW5jbHVkZSAidGljay1pbnRl cm5hbC5oIgogI2luY2x1ZGUgInRpbWVrZWVwaW5nX2ludGVybmFsLmgiCkBAIC05Myw2ICs5NSwy MCBAQCBzdGF0aWMgY2hhciBvdmVycmlkZV9uYW1lW0NTX05BTUVfTEVOXTsKIHN0YXRpYyBpbnQg ZmluaXNoZWRfYm9vdGluZzsKIHN0YXRpYyB1NjQgc3VzcGVuZF9zdGFydDsKIAorLyoKKyAqIFRo cmVzaG9sZDogMC4wMzEycywgd2hlbiBkb3VibGVkOiAwLjA2MjVzLgorICogQWxzbyBhIGRlZmF1 bHQgZm9yIGNzLT51bmNlcnRhaW50eV9tYXJnaW4gd2hlbiByZWdpc3RlcmluZyBjbG9ja3MuCisg Ki8KKyNkZWZpbmUgV0FUQ0hET0dfVEhSRVNIT0xEIChOU0VDX1BFUl9TRUMgPj4gNSkKKworLyoK KyAqIE1heGltdW0gcGVybWlzc2libGUgZGVsYXkgYmV0d2VlbiB0d28gcmVhZG91dHMgb2YgdGhl IHdhdGNoZG9nCisgKiBjbG9ja3NvdXJjZSBzdXJyb3VuZGluZyBhIHJlYWQgb2YgdGhlIGNsb2Nr c291cmNlIGJlaW5nIHZhbGlkYXRlZC4KKyAqIFRoaXMgZGVsYXkgY291bGQgYmUgZHVlIHRvIFNN SXMsIE5NSXMsIG9yIHRvIFZDUFUgcHJlZW1wdGlvbnMuICBVc2VkIGFzCisgKiBhIGxvd2VyIGJv dW5kIGZvciBjcy0+dW5jZXJ0YWludHlfbWFyZ2luIHZhbHVlcyB3aGVuIHJlZ2lzdGVyaW5nIGNs b2Nrcy4KKyAqLworI2RlZmluZSBXQVRDSERPR19NQVhfU0tFVyAoNTAgKiBOU0VDX1BFUl9VU0VD KQorCiAjaWZkZWYgQ09ORklHX0NMT0NLU09VUkNFX1dBVENIRE9HCiBzdGF0aWMgdm9pZCBjbG9j a3NvdXJjZV93YXRjaGRvZ193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7CiBzdGF0aWMg dm9pZCBjbG9ja3NvdXJjZV9zZWxlY3Qodm9pZCk7CkBAIC0xMTksMTAgKzEzNSw5IEBAIHN0YXRp YyBpbnQgY2xvY2tzb3VyY2Vfd2F0Y2hkb2dfa3RocmVhZCh2b2lkICpkYXRhKTsKIHN0YXRpYyB2 b2lkIF9fY2xvY2tzb3VyY2VfY2hhbmdlX3JhdGluZyhzdHJ1Y3QgY2xvY2tzb3VyY2UgKmNzLCBp bnQgcmF0aW5nKTsKIAogLyoKLSAqIEludGVydmFsOiAwLjVzZWMgVGhyZXNob2xkOiAwLjA2MjVz CisgKiBJbnRlcnZhbDogMC41c2VjLgogICovCiAjZGVmaW5lIFdBVENIRE9HX0lOVEVSVkFMIChI WiA+PiAxKQotI2RlZmluZSBXQVRDSERPR19USFJFU0hPTEQgKE5TRUNfUEVSX1NFQyA+PiA0KQog CiBzdGF0aWMgdm9pZCBjbG9ja3NvdXJjZV93YXRjaGRvZ193b3JrKHN0cnVjdCB3b3JrX3N0cnVj dCAqd29yaykKIHsKQEAgLTE4NCwxMiArMTk5LDE2NCBAQCB2b2lkIGNsb2Nrc291cmNlX21hcmtf dW5zdGFibGUoc3RydWN0IGNsb2Nrc291cmNlICpjcykKIAlzcGluX3VubG9ja19pcnFyZXN0b3Jl KCZ3YXRjaGRvZ19sb2NrLCBmbGFncyk7CiB9CiAKK3Vsb25nIG1heF9jc3dkX3JlYWRfcmV0cmll cyA9IDM7Cittb2R1bGVfcGFyYW0obWF4X2Nzd2RfcmVhZF9yZXRyaWVzLCB1bG9uZywgMDY0NCk7 CitFWFBPUlRfU1lNQk9MX0dQTChtYXhfY3N3ZF9yZWFkX3JldHJpZXMpOworc3RhdGljIGludCB2 ZXJpZnlfbl9jcHVzID0gODsKK21vZHVsZV9wYXJhbSh2ZXJpZnlfbl9jcHVzLCBpbnQsIDA2NDQp OworCitzdGF0aWMgYm9vbCBjc193YXRjaGRvZ19yZWFkKHN0cnVjdCBjbG9ja3NvdXJjZSAqY3Ms IHU2NCAqY3Nub3csIHU2NCAqd2Rub3cpCit7CisJdW5zaWduZWQgaW50IG5yZXRyaWVzOworCXU2 NCB3ZF9lbmQsIHdkX2RlbHRhOworCWludDY0X3Qgd2RfZGVsYXk7CisKKwlmb3IgKG5yZXRyaWVz ID0gMDsgbnJldHJpZXMgPD0gbWF4X2Nzd2RfcmVhZF9yZXRyaWVzOyBucmV0cmllcysrKSB7CisJ CWxvY2FsX2lycV9kaXNhYmxlKCk7CisJCSp3ZG5vdyA9IHdhdGNoZG9nLT5yZWFkKHdhdGNoZG9n KTsKKwkJKmNzbm93ID0gY3MtPnJlYWQoY3MpOworCQl3ZF9lbmQgPSB3YXRjaGRvZy0+cmVhZCh3 YXRjaGRvZyk7CisJCWxvY2FsX2lycV9lbmFibGUoKTsKKworCQl3ZF9kZWx0YSA9IGNsb2Nrc291 cmNlX2RlbHRhKHdkX2VuZCwgKndkbm93LCB3YXRjaGRvZy0+bWFzayk7CisJCXdkX2RlbGF5ID0g Y2xvY2tzb3VyY2VfY3ljMm5zKHdkX2RlbHRhLCB3YXRjaGRvZy0+bXVsdCwKKwkJCQkJICAgICAg d2F0Y2hkb2ctPnNoaWZ0KTsKKwkJaWYgKHdkX2RlbGF5IDw9IFdBVENIRE9HX01BWF9TS0VXKSB7 CisJCQlpZiAobnJldHJpZXMgPiAxIHx8IG5yZXRyaWVzID49IG1heF9jc3dkX3JlYWRfcmV0cmll cykgeworCQkJCXByX3dhcm4oInRpbWVrZWVwaW5nIHdhdGNoZG9nIG9uIENQVSVkOiAlcyByZXRy aWVkICVkIHRpbWVzIGJlZm9yZSBzdWNjZXNzXG4iLAorCQkJCQlzbXBfcHJvY2Vzc29yX2lkKCks IHdhdGNoZG9nLT5uYW1lLCBucmV0cmllcyk7CisJCQl9CisJCQlyZXR1cm4gdHJ1ZTsKKwkJfQor CX0KKworCXByX3dhcm4oInRpbWVrZWVwaW5nIHdhdGNoZG9nIG9uIENQVSVkOiAlcyByZWFkLWJh Y2sgZGVsYXkgb2YgJWxsZG5zLCBhdHRlbXB0ICVkLCBtYXJraW5nIHVuc3RhYmxlXG4iLAorCQlz bXBfcHJvY2Vzc29yX2lkKCksIHdhdGNoZG9nLT5uYW1lLCB3ZF9kZWxheSwgbnJldHJpZXMpOwor CXJldHVybiBmYWxzZTsKK30KKworc3RhdGljIHU2NCBjc25vd19taWQ7CitzdGF0aWMgY3B1bWFz a190IGNwdXNfYWhlYWQ7CitzdGF0aWMgY3B1bWFza190IGNwdXNfYmVoaW5kOworc3RhdGljIGNw dW1hc2tfdCBjcHVzX2Nob3NlbjsKKworc3RhdGljIHZvaWQgY2xvY2tzb3VyY2VfdmVyaWZ5X2No b29zZV9jcHVzKHZvaWQpCit7CisJaW50IGNwdSwgaSwgbiA9IHZlcmlmeV9uX2NwdXM7CisKKwlp ZiAobiA8IDApIHsKKwkJLyogQ2hlY2sgYWxsIG9mIHRoZSBDUFVzLiAqLworCQljcHVtYXNrX2Nv cHkoJmNwdXNfY2hvc2VuLCBjcHVfb25saW5lX21hc2spOworCQljcHVtYXNrX2NsZWFyX2NwdShz bXBfcHJvY2Vzc29yX2lkKCksICZjcHVzX2Nob3Nlbik7CisJCXJldHVybjsKKwl9CisKKwkvKiBJ ZiBubyBjaGVja2luZyBkZXNpcmVkLCBvciBubyBvdGhlciBDUFUgdG8gY2hlY2ssIGxlYXZlLiAq LworCWNwdW1hc2tfY2xlYXIoJmNwdXNfY2hvc2VuKTsKKwlpZiAobiA9PSAwIHx8IG51bV9vbmxp bmVfY3B1cygpIDw9IDEpCisJCXJldHVybjsKKworCS8qIE1ha2Ugc3VyZSB0byBzZWxlY3QgYXQg bGVhc3Qgb25lIENQVSBvdGhlciB0aGFuIHRoZSBjdXJyZW50IENQVS4gKi8KKwljcHUgPSBjcHVt YXNrX25leHQoLTEsIGNwdV9vbmxpbmVfbWFzayk7CisJaWYgKGNwdSA9PSBzbXBfcHJvY2Vzc29y X2lkKCkpCisJCWNwdSA9IGNwdW1hc2tfbmV4dChjcHUsIGNwdV9vbmxpbmVfbWFzayk7CisJaWYg KFdBUk5fT05fT05DRShjcHUgPj0gbnJfY3B1X2lkcykpCisJCXJldHVybjsKKwljcHVtYXNrX3Nl dF9jcHUoY3B1LCAmY3B1c19jaG9zZW4pOworCisJLyogRm9yY2UgYSBzYW5lIHZhbHVlIGZvciB0 aGUgYm9vdCBwYXJhbWV0ZXIuICovCisJaWYgKG4gPiBucl9jcHVfaWRzKQorCQluID0gbnJfY3B1 X2lkczsKKworCS8qCisJICogUmFuZG9tbHkgc2VsZWN0IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9m IENQVXMuICBJZiB0aGUgc2FtZQorCSAqIENQVSBpcyBzZWxlY3RlZCBtdWx0aXBsZSB0aW1lcywg dGhhdCBDUFUgaXMgY2hlY2tlZCBvbmx5IG9uY2UsCisJICogYW5kIG5vIHJlcGxhY2VtZW50IENQ VSBpcyBzZWxlY3RlZC4gIFRoaXMgZ3JhY2VmdWxseSBoYW5kbGVzCisJICogc2l0dWF0aW9ucyB3 aGVyZSB2ZXJpZnlfbl9jcHVzIGlzIGdyZWF0ZXIgdGhhbiB0aGUgbnVtYmVyIG9mCisJICogQ1BV cyB0aGF0IGFyZSBjdXJyZW50bHkgb25saW5lLgorCSAqLworCWZvciAoaSA9IDE7IGkgPCBuOyBp KyspIHsKKwkJY3B1ID0gcHJhbmRvbV91MzIoKSAlIG5yX2NwdV9pZHM7CisJCWNwdSA9IGNwdW1h c2tfbmV4dChjcHUgLSAxLCBjcHVfb25saW5lX21hc2spOworCQlpZiAoY3B1ID49IG5yX2NwdV9p ZHMpCisJCQljcHUgPSBjcHVtYXNrX25leHQoLTEsIGNwdV9vbmxpbmVfbWFzayk7CisJCWlmICgh V0FSTl9PTl9PTkNFKGNwdSA+PSBucl9jcHVfaWRzKSkKKwkJCWNwdW1hc2tfc2V0X2NwdShjcHUs ICZjcHVzX2Nob3Nlbik7CisJfQorCisJLyogRG9uJ3QgdmVyaWZ5IG91cnNlbHZlcy4gKi8KKwlj cHVtYXNrX2NsZWFyX2NwdShzbXBfcHJvY2Vzc29yX2lkKCksICZjcHVzX2Nob3Nlbik7Cit9CisK K3N0YXRpYyB2b2lkIGNsb2Nrc291cmNlX3ZlcmlmeV9vbmVfY3B1KHZvaWQgKmNzaW4pCit7CisJ c3RydWN0IGNsb2Nrc291cmNlICpjcyA9IChzdHJ1Y3QgY2xvY2tzb3VyY2UgKiljc2luOworCisJ Y3Nub3dfbWlkID0gY3MtPnJlYWQoY3MpOworfQorCit2b2lkIGNsb2Nrc291cmNlX3ZlcmlmeV9w ZXJjcHUoc3RydWN0IGNsb2Nrc291cmNlICpjcykKK3sKKwlpbnQ2NF90IGNzX25zZWMsIGNzX25z ZWNfbWF4ID0gMCwgY3NfbnNlY19taW4gPSBMTE9OR19NQVg7CisJdTY0IGNzbm93X2JlZ2luLCBj c25vd19lbmQ7CisJaW50IGNwdSwgdGVzdGNwdTsKKwlzNjQgZGVsdGE7CisKKwlpZiAodmVyaWZ5 X25fY3B1cyA9PSAwKQorCQlyZXR1cm47CisJY3B1bWFza19jbGVhcigmY3B1c19haGVhZCk7CisJ Y3B1bWFza19jbGVhcigmY3B1c19iZWhpbmQpOworCWdldF9vbmxpbmVfY3B1cygpOworCXByZWVt cHRfZGlzYWJsZSgpOworCWNsb2Nrc291cmNlX3ZlcmlmeV9jaG9vc2VfY3B1cygpOworCWlmIChj cHVtYXNrX3dlaWdodCgmY3B1c19jaG9zZW4pID09IDApIHsKKwkJcHJlZW1wdF9lbmFibGUoKTsK KwkJcHV0X29ubGluZV9jcHVzKCk7CisJCXByX3dhcm4oIk5vdCBlbm91Z2ggQ1BVcyB0byBjaGVj ayBjbG9ja3NvdXJjZSAnJXMnLlxuIiwgY3MtPm5hbWUpOworCQlyZXR1cm47CisJfQorCXRlc3Rj cHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CisJcHJfd2FybigiQ2hlY2tpbmcgY2xvY2tzb3VyY2Ug JXMgc3luY2hyb25pemF0aW9uIGZyb20gQ1BVICVkIHRvIENQVXMgJSpwYmwuXG4iLCBjcy0+bmFt ZSwgdGVzdGNwdSwgY3B1bWFza19wcl9hcmdzKCZjcHVzX2Nob3NlbikpOworCWZvcl9lYWNoX2Nw dShjcHUsICZjcHVzX2Nob3NlbikgeworCQlpZiAoY3B1ID09IHRlc3RjcHUpCisJCQljb250aW51 ZTsKKwkJY3Nub3dfYmVnaW4gPSBjcy0+cmVhZChjcyk7CisJCXNtcF9jYWxsX2Z1bmN0aW9uX3Np bmdsZShjcHUsIGNsb2Nrc291cmNlX3ZlcmlmeV9vbmVfY3B1LCBjcywgMSk7CisJCWNzbm93X2Vu ZCA9IGNzLT5yZWFkKGNzKTsKKwkJZGVsdGEgPSAoczY0KSgoY3Nub3dfbWlkIC0gY3Nub3dfYmVn aW4pICYgY3MtPm1hc2spOworCQlpZiAoZGVsdGEgPCAwKQorCQkJY3B1bWFza19zZXRfY3B1KGNw dSwgJmNwdXNfYmVoaW5kKTsKKwkJZGVsdGEgPSAoY3Nub3dfZW5kIC0gY3Nub3dfbWlkKSAmIGNz LT5tYXNrOworCQlpZiAoZGVsdGEgPCAwKQorCQkJY3B1bWFza19zZXRfY3B1KGNwdSwgJmNwdXNf YWhlYWQpOworCQlkZWx0YSA9IGNsb2Nrc291cmNlX2RlbHRhKGNzbm93X2VuZCwgY3Nub3dfYmVn aW4sIGNzLT5tYXNrKTsKKwkJY3NfbnNlYyA9IGNsb2Nrc291cmNlX2N5YzJucyhkZWx0YSwgY3Mt Pm11bHQsIGNzLT5zaGlmdCk7CisJCWlmIChjc19uc2VjID4gY3NfbnNlY19tYXgpCisJCQljc19u c2VjX21heCA9IGNzX25zZWM7CisJCWlmIChjc19uc2VjIDwgY3NfbnNlY19taW4pCisJCQljc19u c2VjX21pbiA9IGNzX25zZWM7CisJfQorCXByZWVtcHRfZW5hYmxlKCk7CisJcHV0X29ubGluZV9j cHVzKCk7CisJaWYgKCFjcHVtYXNrX2VtcHR5KCZjcHVzX2FoZWFkKSkKKwkJcHJfd2FybigiICAg ICAgICBDUFVzICUqcGJsIGFoZWFkIG9mIENQVSAlZCBmb3IgY2xvY2tzb3VyY2UgJXMuXG4iLAor CQkJY3B1bWFza19wcl9hcmdzKCZjcHVzX2FoZWFkKSwgdGVzdGNwdSwgY3MtPm5hbWUpOworCWlm ICghY3B1bWFza19lbXB0eSgmY3B1c19iZWhpbmQpKQorCQlwcl93YXJuKCIgICAgICAgIENQVXMg JSpwYmwgYmVoaW5kIENQVSAlZCBmb3IgY2xvY2tzb3VyY2UgJXMuXG4iLAorCQkJY3B1bWFza19w cl9hcmdzKCZjcHVzX2JlaGluZCksIHRlc3RjcHUsIGNzLT5uYW1lKTsKKwlpZiAoIWNwdW1hc2tf ZW1wdHkoJmNwdXNfYWhlYWQpIHx8ICFjcHVtYXNrX2VtcHR5KCZjcHVzX2JlaGluZCkpCisJCXBy X3dhcm4oIiAgICAgICAgQ1BVICVkIGNoZWNrIGR1cmF0aW9ucyAlbGxkbnMgLSAlbGxkbnMgZm9y IGNsb2Nrc291cmNlICVzLlxuIiwKKwkJCXRlc3RjcHUsIGNzX25zZWNfbWluLCBjc19uc2VjX21h eCwgY3MtPm5hbWUpOworfQorRVhQT1JUX1NZTUJPTF9HUEwoY2xvY2tzb3VyY2VfdmVyaWZ5X3Bl cmNwdSk7CisKIHN0YXRpYyB2b2lkIGNsb2Nrc291cmNlX3dhdGNoZG9nKHN0cnVjdCB0aW1lcl9s aXN0ICp1bnVzZWQpCiB7Ci0Jc3RydWN0IGNsb2Nrc291cmNlICpjczsKIAl1NjQgY3Nub3csIHdk bm93LCBjc2xhc3QsIHdkbGFzdCwgZGVsdGE7Ci0JaW50NjRfdCB3ZF9uc2VjLCBjc19uc2VjOwog CWludCBuZXh0X2NwdSwgcmVzZXRfcGVuZGluZzsKKwlpbnQ2NF90IHdkX25zZWMsIGNzX25zZWM7 CisJc3RydWN0IGNsb2Nrc291cmNlICpjczsKKwl1MzIgbWQ7CiAKIAlzcGluX2xvY2soJndhdGNo ZG9nX2xvY2spOwogCWlmICghd2F0Y2hkb2dfcnVubmluZykKQEAgLTIwNiwxMCArMzczLDExIEBA IHN0YXRpYyB2b2lkIGNsb2Nrc291cmNlX3dhdGNoZG9nKHN0cnVjdCB0aW1lcl9saXN0ICp1bnVz ZWQpCiAJCQljb250aW51ZTsKIAkJfQogCi0JCWxvY2FsX2lycV9kaXNhYmxlKCk7Ci0JCWNzbm93 ID0gY3MtPnJlYWQoY3MpOwotCQl3ZG5vdyA9IHdhdGNoZG9nLT5yZWFkKHdhdGNoZG9nKTsKLQkJ bG9jYWxfaXJxX2VuYWJsZSgpOworCQlpZiAoIWNzX3dhdGNoZG9nX3JlYWQoY3MsICZjc25vdywg Jndkbm93KSkgeworCQkJLyogQ2xvY2sgcmVhZG91dCB1bnJlbGlhYmxlLCBzbyBnaXZlIGl0IHVw LiAqLworCQkJX19jbG9ja3NvdXJjZV91bnN0YWJsZShjcyk7CisJCQljb250aW51ZTsKKwkJfQog CiAJCS8qIENsb2Nrc291cmNlIGluaXRpYWxpemVkID8gKi8KIAkJaWYgKCEoY3MtPmZsYWdzICYg Q0xPQ0tfU09VUkNFX1dBVENIRE9HKSB8fApAQCAtMjM1LDEzICs0MDMsMjAgQEAgc3RhdGljIHZv aWQgY2xvY2tzb3VyY2Vfd2F0Y2hkb2coc3RydWN0IHRpbWVyX2xpc3QgKnVudXNlZCkKIAkJCWNv bnRpbnVlOwogCiAJCS8qIENoZWNrIHRoZSBkZXZpYXRpb24gZnJvbSB0aGUgd2F0Y2hkb2cgY2xv Y2tzb3VyY2UuICovCi0JCWlmIChhYnMoY3NfbnNlYyAtIHdkX25zZWMpID4gV0FUQ0hET0dfVEhS RVNIT0xEKSB7CisJCW1kID0gY3MtPnVuY2VydGFpbnR5X21hcmdpbiArIHdhdGNoZG9nLT51bmNl cnRhaW50eV9tYXJnaW47CisJCWlmIChhYnMoY3NfbnNlYyAtIHdkX25zZWMpID4gbWQpIHsKIAkJ CXByX3dhcm4oInRpbWVrZWVwaW5nIHdhdGNoZG9nIG9uIENQVSVkOiBNYXJraW5nIGNsb2Nrc291 cmNlICclcycgYXMgdW5zdGFibGUgYmVjYXVzZSB0aGUgc2tldyBpcyB0b28gbGFyZ2U6XG4iLAog CQkJCXNtcF9wcm9jZXNzb3JfaWQoKSwgY3MtPm5hbWUpOwotCQkJcHJfd2FybigiICAgICAgICAg ICAgICAgICAgICAgICclcycgd2Rfbm93OiAlbGx4IHdkX2xhc3Q6ICVsbHggbWFzazogJWxseFxu IiwKLQkJCQl3YXRjaGRvZy0+bmFtZSwgd2Rub3csIHdkbGFzdCwgd2F0Y2hkb2ctPm1hc2spOwot CQkJcHJfd2FybigiICAgICAgICAgICAgICAgICAgICAgICclcycgY3Nfbm93OiAlbGx4IGNzX2xh c3Q6ICVsbHggbWFzazogJWxseFxuIiwKLQkJCQljcy0+bmFtZSwgY3Nub3csIGNzbGFzdCwgY3Mt Pm1hc2spOworCQkJcHJfd2FybigiICAgICAgICAgICAgICAgICAgICAgICclcycgd2RfbnNlYzog JWxsZCB3ZF9ub3c6ICVsbHggd2RfbGFzdDogJWxseCBtYXNrOiAlbGx4XG4iLAorCQkJCXdhdGNo ZG9nLT5uYW1lLCB3ZF9uc2VjLCB3ZG5vdywgd2RsYXN0LCB3YXRjaGRvZy0+bWFzayk7CisJCQlw cl93YXJuKCIgICAgICAgICAgICAgICAgICAgICAgJyVzJyBjc19uc2VjOiAlbGxkIGNzX25vdzog JWxseCBjc19sYXN0OiAlbGx4IG1hc2s6ICVsbHhcbiIsCisJCQkJY3MtPm5hbWUsIGNzX25zZWMs IGNzbm93LCBjc2xhc3QsIGNzLT5tYXNrKTsKKwkJCWlmIChjdXJyX2Nsb2Nrc291cmNlID09IGNz KQorCQkJCXByX3dhcm4oIiAgICAgICAgICAgICAgICAgICAgICAnJXMnIGlzIGN1cnJlbnQgY2xv Y2tzb3VyY2UuXG4iLCBjcy0+bmFtZSk7CisJCQllbHNlIGlmIChjdXJyX2Nsb2Nrc291cmNlKQor CQkJCXByX3dhcm4oIiAgICAgICAgICAgICAgICAgICAgICAnJXMnIChub3QgJyVzJykgaXMgY3Vy cmVudCBjbG9ja3NvdXJjZS5cbiIsIGN1cnJfY2xvY2tzb3VyY2UtPm5hbWUsIGNzLT5uYW1lKTsK KwkJCWVsc2UKKwkJCQlwcl93YXJuKCIgICAgICAgICAgICAgICAgICAgICAgTm8gY3VycmVudCBj bG9ja3NvdXJjZS5cbiIpOwogCQkJX19jbG9ja3NvdXJjZV91bnN0YWJsZShjcyk7CiAJCQljb250 aW51ZTsKIAkJfQpAQCAtNDA3LDYgKzU4MiwxMiBAQCBzdGF0aWMgaW50IF9fY2xvY2tzb3VyY2Vf d2F0Y2hkb2dfa3RocmVhZCh2b2lkKQogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJaW50IHNlbGVj dCA9IDA7CiAKKwkvKiBEbyBhbnkgcmVxdWlyZWQgcGVyLUNQVSBza2V3IHZlcmlmaWNhdGlvbi4g Ki8KKwlpZiAoY3Vycl9jbG9ja3NvdXJjZSAmJgorCSAgICBjdXJyX2Nsb2Nrc291cmNlLT5mbGFn cyAmIENMT0NLX1NPVVJDRV9VTlNUQUJMRSAmJgorCSAgICBjdXJyX2Nsb2Nrc291cmNlLT5mbGFn cyAmIENMT0NLX1NPVVJDRV9WRVJJRllfUEVSQ1BVKQorCQljbG9ja3NvdXJjZV92ZXJpZnlfcGVy Y3B1KGN1cnJfY2xvY2tzb3VyY2UpOworCiAJc3Bpbl9sb2NrX2lycXNhdmUoJndhdGNoZG9nX2xv Y2ssIGZsYWdzKTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoY3MsIHRtcCwgJndhdGNoZG9n X2xpc3QsIHdkX2xpc3QpIHsKIAkJaWYgKGNzLT5mbGFncyAmIENMT0NLX1NPVVJDRV9VTlNUQUJM RSkgewpAQCAtODc2LDYgKzEwNTcsMjYgQEAgdm9pZCBfX2Nsb2Nrc291cmNlX3VwZGF0ZV9mcmVx X3NjYWxlKHN0cnVjdCBjbG9ja3NvdXJjZSAqY3MsIHUzMiBzY2FsZSwgdTMyIGZyZXEKIAkJY2xv Y2tzX2NhbGNfbXVsdF9zaGlmdCgmY3MtPm11bHQsICZjcy0+c2hpZnQsIGZyZXEsCiAJCQkJICAg ICAgIE5TRUNfUEVSX1NFQyAvIHNjYWxlLCBzZWMgKiBzY2FsZSk7CiAJfQorCisJLyoKKwkgKiBJ ZiB0aGUgdW5jZXJ0YWludHkgbWFyZ2luIGlzIG5vdCBzcGVjaWZpZWQsIGNhbGN1bGF0ZSBpdC4K KwkgKiBJZiBib3RoIHNjYWxlIGFuZCBmcmVxIGFyZSBub24temVybywgY2FsY3VsYXRlIHRoZSBj bG9jaworCSAqIHBlcmlvZCwgYnV0IGJvdW5kIGJlbG93IGF0IDIqV0FUQ0hET0dfTUFYX1NLRVcu ICBIb3dldmVyLAorCSAqIGlmIGVpdGhlciBvZiBzY2FsZSBvciBmcmVxIGlzIHplcm8sIGJlIHZl cnkgY29uc2VydmF0aXZlIGFuZAorCSAqIHRha2UgdGhlIHRlbnMtb2YtbWlsbGlzZWNvbmRzIFdB VENIRE9HX1RIUkVTSE9MRCB2YWx1ZSBmb3IgdGhlCisJICogdW5jZXJ0YWludHkgbWFyZ2luLiAg QWxsb3cgc3R1cGlkbHkgc21hbGwgdW5jZXJ0YWludHkgbWFyZ2lucworCSAqIHRvIGJlIHNwZWNp ZmllZCBieSB0aGUgY2FsbGVyIGZvciB0ZXN0aW5nIHB1cnBvc2VzLCBidXQgd2FybgorCSAqIHRv IGRpc2NvdXJhZ2UgcHJvZHVjdGlvbiB1c2Ugb2YgdGhpcyBjYXBhYmlsaXR5LgorCSAqLworCWlm IChzY2FsZSAmJiBmcmVxICYmICFjcy0+dW5jZXJ0YWludHlfbWFyZ2luKSB7CisJCWNzLT51bmNl cnRhaW50eV9tYXJnaW4gPSBOU0VDX1BFUl9TRUMgLyAoc2NhbGUgKiBmcmVxKTsKKwkJaWYgKGNz LT51bmNlcnRhaW50eV9tYXJnaW4gPCAyICogV0FUQ0hET0dfTUFYX1NLRVcpCisJCQljcy0+dW5j ZXJ0YWludHlfbWFyZ2luID0gMiAqIFdBVENIRE9HX01BWF9TS0VXOworCX0gZWxzZSBpZiAoIWNz LT51bmNlcnRhaW50eV9tYXJnaW4pIHsKKwkJY3MtPnVuY2VydGFpbnR5X21hcmdpbiA9IFdBVENI RE9HX1RIUkVTSE9MRDsKKwl9CisJV0FSTl9PTl9PTkNFKGNzLT51bmNlcnRhaW50eV9tYXJnaW4g PCAyICogV0FUQ0hET0dfTUFYX1NLRVcpOworCiAJLyoKIAkgKiBFbnN1cmUgY2xvY2tzb3VyY2Vz IHRoYXQgaGF2ZSBsYXJnZSAnbXVsdCcgdmFsdWVzIGRvbid0IG92ZXJmbG93CiAJICogd2hlbiBh ZGp1c3RlZC4KZGlmZiAtLWdpdCBhL2tlcm5lbC90aW1lL2ppZmZpZXMuYyBiL2tlcm5lbC90aW1l L2ppZmZpZXMuYwppbmRleCBhNDkyZTRkYTY5YmEuLjAxOTM1YWFmZGI0NiAxMDA2NDQKLS0tIGEv a2VybmVsL3RpbWUvamlmZmllcy5jCisrKyBiL2tlcm5lbC90aW1lL2ppZmZpZXMuYwpAQCAtNDks MTMgKzQ5LDE0IEBAIHN0YXRpYyB1NjQgamlmZmllc19yZWFkKHN0cnVjdCBjbG9ja3NvdXJjZSAq Y3MpCiAgKiBmb3IgInRpY2stbGVzcyIgc3lzdGVtcy4KICAqLwogc3RhdGljIHN0cnVjdCBjbG9j a3NvdXJjZSBjbG9ja3NvdXJjZV9qaWZmaWVzID0gewotCS5uYW1lCQk9ICJqaWZmaWVzIiwKLQku cmF0aW5nCQk9IDEsIC8qIGxvd2VzdCB2YWxpZCByYXRpbmcqLwotCS5yZWFkCQk9IGppZmZpZXNf cmVhZCwKLQkubWFzawkJPSBDTE9DS1NPVVJDRV9NQVNLKDMyKSwKLQkubXVsdAkJPSBUSUNLX05T RUMgPDwgSklGRklFU19TSElGVCwgLyogZGV0YWlscyBhYm92ZSAqLwotCS5zaGlmdAkJPSBKSUZG SUVTX1NISUZULAotCS5tYXhfY3ljbGVzCT0gMTAsCisJLm5hbWUJCQk9ICJqaWZmaWVzIiwKKwku cmF0aW5nCQkJPSAxLCAvKiBsb3dlc3QgdmFsaWQgcmF0aW5nKi8KKwkudW5jZXJ0YWludHlfbWFy Z2luCT0gMzIgKiBOU0VDX1BFUl9NU0VDLAorCS5yZWFkCQkJPSBqaWZmaWVzX3JlYWQsCisJLm1h c2sJCQk9IENMT0NLU09VUkNFX01BU0soMzIpLAorCS5tdWx0CQkJPSBUSUNLX05TRUMgPDwgSklG RklFU19TSElGVCwgLyogZGV0YWlscyBhYm92ZSAqLworCS5zaGlmdAkJCT0gSklGRklFU19TSElG VCwKKwkubWF4X2N5Y2xlcwkJPSAxMCwKIH07CiAKIF9fY2FjaGVsaW5lX2FsaWduZWRfaW5fc21w IERFRklORV9SQVdfU1BJTkxPQ0soamlmZmllc19sb2NrKTsKZGlmZiAtLWdpdCBhL2tlcm5lbC90 aW1lL3RpY2stYnJvYWRjYXN0LmMgYi9rZXJuZWwvdGltZS90aWNrLWJyb2FkY2FzdC5jCmluZGV4 IGE0NDA1NTIyODc5Ni4uZjdmZTZmZTM2MTczIDEwMDY0NAotLS0gYS9rZXJuZWwvdGltZS90aWNr LWJyb2FkY2FzdC5jCisrKyBiL2tlcm5lbC90aW1lL3RpY2stYnJvYWRjYXN0LmMKQEAgLTMzLDYg KzMzLDggQEAgc3RhdGljIGludCB0aWNrX2Jyb2FkY2FzdF9mb3JjZWQ7CiBzdGF0aWMgX19jYWNo ZWxpbmVfYWxpZ25lZF9pbl9zbXAgREVGSU5FX1JBV19TUElOTE9DSyh0aWNrX2Jyb2FkY2FzdF9s b2NrKTsKIAogI2lmZGVmIENPTkZJR19USUNLX09ORVNIT1QKK3N0YXRpYyBERUZJTkVfUEVSX0NQ VShzdHJ1Y3QgY2xvY2tfZXZlbnRfZGV2aWNlICosIHRpY2tfb25lc2hvdF93YWtldXBfZGV2aWNl KTsKKwogc3RhdGljIHZvaWQgdGlja19icm9hZGNhc3Rfc2V0dXBfb25lc2hvdChzdHJ1Y3QgY2xv Y2tfZXZlbnRfZGV2aWNlICpiYyk7CiBzdGF0aWMgdm9pZCB0aWNrX2Jyb2FkY2FzdF9jbGVhcl9v bmVzaG90KGludCBjcHUpOwogc3RhdGljIHZvaWQgdGlja19yZXN1bWVfYnJvYWRjYXN0X29uZXNo b3Qoc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSAqYmMpOwpAQCAtNjEsNiArNjMsMTMgQEAgc3Ry dWN0IGNwdW1hc2sgKnRpY2tfZ2V0X2Jyb2FkY2FzdF9tYXNrKHZvaWQpCiAJcmV0dXJuIHRpY2tf YnJvYWRjYXN0X21hc2s7CiB9CiAKK3N0YXRpYyBzdHJ1Y3QgY2xvY2tfZXZlbnRfZGV2aWNlICp0 aWNrX2dldF9vbmVzaG90X3dha2V1cF9kZXZpY2UoaW50IGNwdSk7CisKK2NvbnN0IHN0cnVjdCBj bG9ja19ldmVudF9kZXZpY2UgKnRpY2tfZ2V0X3dha2V1cF9kZXZpY2UoaW50IGNwdSkKK3sKKwly ZXR1cm4gdGlja19nZXRfb25lc2hvdF93YWtldXBfZGV2aWNlKGNwdSk7Cit9CisKIC8qCiAgKiBT dGFydCB0aGUgZGV2aWNlIGluIHBlcmlvZGljIG1vZGUKICAqLwpAQCAtODgsMTMgKzk3LDc1IEBA IHN0YXRpYyBib29sIHRpY2tfY2hlY2tfYnJvYWRjYXN0X2RldmljZShzdHJ1Y3QgY2xvY2tfZXZl bnRfZGV2aWNlICpjdXJkZXYsCiAJcmV0dXJuICFjdXJkZXYgfHwgbmV3ZGV2LT5yYXRpbmcgPiBj dXJkZXYtPnJhdGluZzsKIH0KIAorI2lmZGVmIENPTkZJR19USUNLX09ORVNIT1QKK3N0YXRpYyBz dHJ1Y3QgY2xvY2tfZXZlbnRfZGV2aWNlICp0aWNrX2dldF9vbmVzaG90X3dha2V1cF9kZXZpY2Uo aW50IGNwdSkKK3sKKwlyZXR1cm4gcGVyX2NwdSh0aWNrX29uZXNob3Rfd2FrZXVwX2RldmljZSwg Y3B1KTsKK30KKworc3RhdGljIHZvaWQgdGlja19vbmVzaG90X3dha2V1cF9oYW5kbGVyKHN0cnVj dCBjbG9ja19ldmVudF9kZXZpY2UgKndkKQoreworCS8qCisJICogSWYgd2Ugd29rZSB1cCBlYXJs eSBhbmQgdGhlIHRpY2sgd2FzIHJlcHJvZ3JhbW1lZCBpbiB0aGUKKwkgKiBtZWFudGltZSB0aGVu IHRoaXMgbWF5IGJlIHNwdXJpb3VzIGJ1dCBoYXJtbGVzcy4KKwkgKi8KKwl0aWNrX3JlY2VpdmVf YnJvYWRjYXN0KCk7Cit9CisKK3N0YXRpYyBib29sIHRpY2tfc2V0X29uZXNob3Rfd2FrZXVwX2Rl dmljZShzdHJ1Y3QgY2xvY2tfZXZlbnRfZGV2aWNlICpuZXdkZXYsCisJCQkJCSAgIGludCBjcHUp Cit7CisJc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSAqY3VyZGV2ID0gdGlja19nZXRfb25lc2hv dF93YWtldXBfZGV2aWNlKGNwdSk7CisKKwlpZiAoIW5ld2RldikKKwkJZ290byBzZXRfZGV2aWNl OworCisJaWYgKChuZXdkZXYtPmZlYXR1cmVzICYgQ0xPQ0tfRVZUX0ZFQVRfRFVNTVkpIHx8CisJ ICAgIChuZXdkZXYtPmZlYXR1cmVzICYgQ0xPQ0tfRVZUX0ZFQVRfQzNTVE9QKSkKKwkJIHJldHVy biBmYWxzZTsKKworCWlmICghKG5ld2Rldi0+ZmVhdHVyZXMgJiBDTE9DS19FVlRfRkVBVF9QRVJD UFUpIHx8CisJICAgICEobmV3ZGV2LT5mZWF0dXJlcyAmIENMT0NLX0VWVF9GRUFUX09ORVNIT1Qp KQorCQlyZXR1cm4gZmFsc2U7CisKKwlpZiAoIWNwdW1hc2tfZXF1YWwobmV3ZGV2LT5jcHVtYXNr LCBjcHVtYXNrX29mKGNwdSkpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlpZiAoY3VyZGV2ICYmIG5l d2Rldi0+cmF0aW5nIDw9IGN1cmRldi0+cmF0aW5nKQorCQlyZXR1cm4gZmFsc2U7CisKKwlpZiAo IXRyeV9tb2R1bGVfZ2V0KG5ld2Rldi0+b3duZXIpKQorCQlyZXR1cm4gZmFsc2U7CisKKwluZXdk ZXYtPmV2ZW50X2hhbmRsZXIgPSB0aWNrX29uZXNob3Rfd2FrZXVwX2hhbmRsZXI7CitzZXRfZGV2 aWNlOgorCWNsb2NrZXZlbnRzX2V4Y2hhbmdlX2RldmljZShjdXJkZXYsIG5ld2Rldik7CisJcGVy X2NwdSh0aWNrX29uZXNob3Rfd2FrZXVwX2RldmljZSwgY3B1KSA9IG5ld2RldjsKKwlyZXR1cm4g dHJ1ZTsKK30KKyNlbHNlCitzdGF0aWMgc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSAqdGlja19n ZXRfb25lc2hvdF93YWtldXBfZGV2aWNlKGludCBjcHUpCit7CisJcmV0dXJuIE5VTEw7Cit9CisK K3N0YXRpYyBib29sIHRpY2tfc2V0X29uZXNob3Rfd2FrZXVwX2RldmljZShzdHJ1Y3QgY2xvY2tf ZXZlbnRfZGV2aWNlICpuZXdkZXYsCisJCQkJCSAgIGludCBjcHUpCit7CisJcmV0dXJuIGZhbHNl OworfQorI2VuZGlmCisKIC8qCiAgKiBDb25kaXRpb25hbGx5IGluc3RhbGwvcmVwbGFjZSBicm9h ZGNhc3QgZGV2aWNlCiAgKi8KLXZvaWQgdGlja19pbnN0YWxsX2Jyb2FkY2FzdF9kZXZpY2Uoc3Ry dWN0IGNsb2NrX2V2ZW50X2RldmljZSAqZGV2KQordm9pZCB0aWNrX2luc3RhbGxfYnJvYWRjYXN0 X2RldmljZShzdHJ1Y3QgY2xvY2tfZXZlbnRfZGV2aWNlICpkZXYsIGludCBjcHUpCiB7CiAJc3Ry dWN0IGNsb2NrX2V2ZW50X2RldmljZSAqY3VyID0gdGlja19icm9hZGNhc3RfZGV2aWNlLmV2dGRl djsKIAorCWlmICh0aWNrX3NldF9vbmVzaG90X3dha2V1cF9kZXZpY2UoZGV2LCBjcHUpKQorCQly ZXR1cm47CisKIAlpZiAoIXRpY2tfY2hlY2tfYnJvYWRjYXN0X2RldmljZShjdXIsIGRldikpCiAJ CXJldHVybjsKIApAQCAtMjUzLDcgKzMyNCw2IEBAIGludCB0aWNrX2RldmljZV91c2VzX2Jyb2Fk Y2FzdChzdHJ1Y3QgY2xvY2tfZXZlbnRfZGV2aWNlICpkZXYsIGludCBjcHUpCiAJcmV0dXJuIHJl dDsKIH0KIAotI2lmZGVmIENPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTX0JST0FEQ0FTVAogaW50 IHRpY2tfcmVjZWl2ZV9icm9hZGNhc3Qodm9pZCkKIHsKIAlzdHJ1Y3QgdGlja19kZXZpY2UgKnRk ID0gdGhpc19jcHVfcHRyKCZ0aWNrX2NwdV9kZXZpY2UpOwpAQCAtMjY4LDcgKzMzOCw2IEBAIGlu dCB0aWNrX3JlY2VpdmVfYnJvYWRjYXN0KHZvaWQpCiAJZXZ0LT5ldmVudF9oYW5kbGVyKGV2dCk7 CiAJcmV0dXJuIDA7CiB9Ci0jZW5kaWYKIAogLyoKICAqIEJyb2FkY2FzdCB0aGUgZXZlbnQgdG8g dGhlIGNwdXMsIHdoaWNoIGFyZSBzZXQgaW4gdGhlIG1hc2sgKG1hbmdsZWQpLgpAQCAtNzE5LDI0 ICs3ODgsMTYgQEAgc3RhdGljIHZvaWQgYnJvYWRjYXN0X3NodXRkb3duX2xvY2FsKHN0cnVjdCBj bG9ja19ldmVudF9kZXZpY2UgKmJjLAogCWNsb2NrZXZlbnRzX3N3aXRjaF9zdGF0ZShkZXYsIENM T0NLX0VWVF9TVEFURV9TSFVURE9XTik7CiB9CiAKLWludCBfX3RpY2tfYnJvYWRjYXN0X29uZXNo b3RfY29udHJvbChlbnVtIHRpY2tfYnJvYWRjYXN0X3N0YXRlIHN0YXRlKQorc3RhdGljIGludCBf X190aWNrX2Jyb2FkY2FzdF9vbmVzaG90X2NvbnRyb2woZW51bSB0aWNrX2Jyb2FkY2FzdF9zdGF0 ZSBzdGF0ZSwKKwkJCQkJICAgICBzdHJ1Y3QgdGlja19kZXZpY2UgKnRkLAorCQkJCQkgICAgIGlu dCBjcHUpCiB7Ci0Jc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSAqYmMsICpkZXY7Ci0JaW50IGNw dSwgcmV0ID0gMDsKKwlzdHJ1Y3QgY2xvY2tfZXZlbnRfZGV2aWNlICpiYywgKmRldiA9IHRkLT5l dnRkZXY7CisJaW50IHJldCA9IDA7CiAJa3RpbWVfdCBub3c7CiAKLQkvKgotCSAqIElmIHRoZXJl IGlzIG5vIGJyb2FkY2FzdCBkZXZpY2UsIHRlbGwgdGhlIGNhbGxlciBub3QgdG8gZ28KLQkgKiBp bnRvIGRlZXAgaWRsZS4KLQkgKi8KLQlpZiAoIXRpY2tfYnJvYWRjYXN0X2RldmljZS5ldnRkZXYp Ci0JCXJldHVybiAtRUJVU1k7Ci0KLQlkZXYgPSB0aGlzX2NwdV9wdHIoJnRpY2tfY3B1X2Rldmlj ZSktPmV2dGRldjsKLQogCXJhd19zcGluX2xvY2soJnRpY2tfYnJvYWRjYXN0X2xvY2spOwogCWJj ID0gdGlja19icm9hZGNhc3RfZGV2aWNlLmV2dGRldjsKLQljcHUgPSBzbXBfcHJvY2Vzc29yX2lk KCk7CiAKIAlpZiAoc3RhdGUgPT0gVElDS19CUk9BRENBU1RfRU5URVIpIHsKIAkJLyoKQEAgLTg2 NSw2ICs5MjYsNTMgQEAgaW50IF9fdGlja19icm9hZGNhc3Rfb25lc2hvdF9jb250cm9sKGVudW0g dGlja19icm9hZGNhc3Rfc3RhdGUgc3RhdGUpCiAJcmV0dXJuIHJldDsKIH0KIAorc3RhdGljIGlu dCB0aWNrX29uZXNob3Rfd2FrZXVwX2NvbnRyb2woZW51bSB0aWNrX2Jyb2FkY2FzdF9zdGF0ZSBz dGF0ZSwKKwkJCQkgICAgICAgc3RydWN0IHRpY2tfZGV2aWNlICp0ZCwKKwkJCQkgICAgICAgaW50 IGNwdSkKK3sKKwlzdHJ1Y3QgY2xvY2tfZXZlbnRfZGV2aWNlICpkZXYsICp3ZDsKKworCWRldiA9 IHRkLT5ldnRkZXY7CisJaWYgKHRkLT5tb2RlICE9IFRJQ0tERVZfTU9ERV9PTkVTSE9UKQorCQly ZXR1cm4gLUVJTlZBTDsKKworCXdkID0gdGlja19nZXRfb25lc2hvdF93YWtldXBfZGV2aWNlKGNw dSk7CisJaWYgKCF3ZCkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlzd2l0Y2ggKHN0YXRlKSB7CisJ Y2FzZSBUSUNLX0JST0FEQ0FTVF9FTlRFUjoKKwkJY2xvY2tldmVudHNfc3dpdGNoX3N0YXRlKGRl diwgQ0xPQ0tfRVZUX1NUQVRFX09ORVNIT1RfU1RPUFBFRCk7CisJCWNsb2NrZXZlbnRzX3N3aXRj aF9zdGF0ZSh3ZCwgQ0xPQ0tfRVZUX1NUQVRFX09ORVNIT1QpOworCQljbG9ja2V2ZW50c19wcm9n cmFtX2V2ZW50KHdkLCBkZXYtPm5leHRfZXZlbnQsIDEpOworCQlicmVhazsKKwljYXNlIFRJQ0tf QlJPQURDQVNUX0VYSVQ6CisJCS8qIFdlIG1heSBoYXZlIHRyYW5zaXRpb25lZCB0byBvbmVzaG90 IG1vZGUgd2hpbGUgaWRsZSAqLworCQlpZiAoY2xvY2tldmVudF9nZXRfc3RhdGUod2QpICE9IENM T0NLX0VWVF9TVEFURV9PTkVTSE9UKQorCQkJcmV0dXJuIC1FTk9ERVY7CisJfQorCisJcmV0dXJu IDA7Cit9CisKK2ludCBfX3RpY2tfYnJvYWRjYXN0X29uZXNob3RfY29udHJvbChlbnVtIHRpY2tf YnJvYWRjYXN0X3N0YXRlIHN0YXRlKQoreworCXN0cnVjdCB0aWNrX2RldmljZSAqdGQgPSB0aGlz X2NwdV9wdHIoJnRpY2tfY3B1X2RldmljZSk7CisJaW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQo KTsKKworCWlmICghdGlja19vbmVzaG90X3dha2V1cF9jb250cm9sKHN0YXRlLCB0ZCwgY3B1KSkK KwkJcmV0dXJuIDA7CisKKwlpZiAodGlja19icm9hZGNhc3RfZGV2aWNlLmV2dGRldikKKwkJcmV0 dXJuIF9fX3RpY2tfYnJvYWRjYXN0X29uZXNob3RfY29udHJvbChzdGF0ZSwgdGQsIGNwdSk7CisK KwkvKgorCSAqIElmIHRoZXJlIGlzIG5vIGJyb2FkY2FzdCBvciB3YWtldXAgZGV2aWNlLCB0ZWxs IHRoZSBjYWxsZXIgbm90CisJICogdG8gZ28gaW50byBkZWVwIGlkbGUuCisJICovCisJcmV0dXJu IC1FQlVTWTsKK30KKwogLyoKICAqIFJlc2V0IHRoZSBvbmUgc2hvdCBicm9hZGNhc3QgZm9yIGEg Y3B1CiAgKgpAQCAtOTkxLDYgKzEwOTksOSBAQCB2b2lkIGhvdHBsdWdfY3B1X19icm9hZGNhc3Rf dGlja19wdWxsKGludCBkZWFkY3B1KQogICovCiBzdGF0aWMgdm9pZCB0aWNrX2Jyb2FkY2FzdF9v bmVzaG90X29mZmxpbmUodW5zaWduZWQgaW50IGNwdSkKIHsKKwlpZiAodGlja19nZXRfb25lc2hv dF93YWtldXBfZGV2aWNlKGNwdSkpCisJCXRpY2tfc2V0X29uZXNob3Rfd2FrZXVwX2RldmljZShO VUxMLCBjcHUpOworCiAJLyoKIAkgKiBDbGVhciB0aGUgYnJvYWRjYXN0IG1hc2tzIGZvciB0aGUg ZGVhZCBjcHUsIGJ1dCBkbyBub3Qgc3RvcAogCSAqIHRoZSBicm9hZGNhc3QgZGV2aWNlIQpkaWZm IC0tZ2l0IGEva2VybmVsL3RpbWUvdGljay1jb21tb24uYyBiL2tlcm5lbC90aW1lL3RpY2stY29t bW9uLmMKaW5kZXggZTE1YmMwZWYxOTEyLi5kNjYzMjQ5NjUyZWYgMTAwNjQ0Ci0tLSBhL2tlcm5l bC90aW1lL3RpY2stY29tbW9uLmMKKysrIGIva2VybmVsL3RpbWUvdGljay1jb21tb24uYwpAQCAt MzczLDcgKzM3Myw3IEBAIHZvaWQgdGlja19jaGVja19uZXdfZGV2aWNlKHN0cnVjdCBjbG9ja19l dmVudF9kZXZpY2UgKm5ld2RldikKIAkvKgogCSAqIENhbiB0aGUgbmV3IGRldmljZSBiZSB1c2Vk IGFzIGEgYnJvYWRjYXN0IGRldmljZSA/CiAJICovCi0JdGlja19pbnN0YWxsX2Jyb2FkY2FzdF9k ZXZpY2UobmV3ZGV2KTsKKwl0aWNrX2luc3RhbGxfYnJvYWRjYXN0X2RldmljZShuZXdkZXYsIGNw dSk7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEva2VybmVsL3RpbWUvdGljay1pbnRlcm5hbC5oIGIv a2VybmVsL3RpbWUvdGljay1pbnRlcm5hbC5oCmluZGV4IDdhOTgxYzllODdhNC4uNmE3NDJhMjll NTQ1IDEwMDY0NAotLS0gYS9rZXJuZWwvdGltZS90aWNrLWludGVybmFsLmgKKysrIGIva2VybmVs L3RpbWUvdGljay1pbnRlcm5hbC5oCkBAIC02MSw3ICs2MSw3IEBAIGV4dGVybiBzc2l6ZV90IHN5 c2ZzX2dldF91bmFtZShjb25zdCBjaGFyICpidWYsIGNoYXIgKmRzdCwgc2l6ZV90IGNudCk7CiAv KiBCcm9hZGNhc3Rpbmcgc3VwcG9ydCAqLwogIyBpZmRlZiBDT05GSUdfR0VORVJJQ19DTE9DS0VW RU5UU19CUk9BRENBU1QKIGV4dGVybiBpbnQgdGlja19kZXZpY2VfdXNlc19icm9hZGNhc3Qoc3Ry dWN0IGNsb2NrX2V2ZW50X2RldmljZSAqZGV2LCBpbnQgY3B1KTsKLWV4dGVybiB2b2lkIHRpY2tf aW5zdGFsbF9icm9hZGNhc3RfZGV2aWNlKHN0cnVjdCBjbG9ja19ldmVudF9kZXZpY2UgKmRldik7 CitleHRlcm4gdm9pZCB0aWNrX2luc3RhbGxfYnJvYWRjYXN0X2RldmljZShzdHJ1Y3QgY2xvY2tf ZXZlbnRfZGV2aWNlICpkZXYsIGludCBjcHUpOwogZXh0ZXJuIGludCB0aWNrX2lzX2Jyb2FkY2Fz dF9kZXZpY2Uoc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSAqZGV2KTsKIGV4dGVybiB2b2lkIHRp Y2tfc3VzcGVuZF9icm9hZGNhc3Qodm9pZCk7CiBleHRlcm4gdm9pZCB0aWNrX3Jlc3VtZV9icm9h ZGNhc3Qodm9pZCk7CkBAIC03MSw4ICs3MSw5IEBAIGV4dGVybiB2b2lkIHRpY2tfc2V0X3Blcmlv ZGljX2hhbmRsZXIoc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSAqZGV2LCBpbnQgYnJvYWRjCiBl eHRlcm4gaW50IHRpY2tfYnJvYWRjYXN0X3VwZGF0ZV9mcmVxKHN0cnVjdCBjbG9ja19ldmVudF9k ZXZpY2UgKmRldiwgdTMyIGZyZXEpOwogZXh0ZXJuIHN0cnVjdCB0aWNrX2RldmljZSAqdGlja19n ZXRfYnJvYWRjYXN0X2RldmljZSh2b2lkKTsKIGV4dGVybiBzdHJ1Y3QgY3B1bWFzayAqdGlja19n ZXRfYnJvYWRjYXN0X21hc2sodm9pZCk7CitleHRlcm4gY29uc3Qgc3RydWN0IGNsb2NrX2V2ZW50 X2RldmljZSAqdGlja19nZXRfd2FrZXVwX2RldmljZShpbnQgY3B1KTsKICMgZWxzZSAvKiAhQ09O RklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFNfQlJPQURDQVNUOiAqLwotc3RhdGljIGlubGluZSB2b2lk IHRpY2tfaW5zdGFsbF9icm9hZGNhc3RfZGV2aWNlKHN0cnVjdCBjbG9ja19ldmVudF9kZXZpY2Ug KmRldikgeyB9CitzdGF0aWMgaW5saW5lIHZvaWQgdGlja19pbnN0YWxsX2Jyb2FkY2FzdF9kZXZp Y2Uoc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSAqZGV2LCBpbnQgY3B1KSB7IH0KIHN0YXRpYyBp bmxpbmUgaW50IHRpY2tfaXNfYnJvYWRjYXN0X2RldmljZShzdHJ1Y3QgY2xvY2tfZXZlbnRfZGV2 aWNlICpkZXYpIHsgcmV0dXJuIDA7IH0KIHN0YXRpYyBpbmxpbmUgaW50IHRpY2tfZGV2aWNlX3Vz ZXNfYnJvYWRjYXN0KHN0cnVjdCBjbG9ja19ldmVudF9kZXZpY2UgKmRldiwgaW50IGNwdSkgeyBy ZXR1cm4gMDsgfQogc3RhdGljIGlubGluZSB2b2lkIHRpY2tfZG9fcGVyaW9kaWNfYnJvYWRjYXN0 KHN0cnVjdCBjbG9ja19ldmVudF9kZXZpY2UgKmQpIHsgfQpkaWZmIC0tZ2l0IGEva2VybmVsL3Rp bWUvdGltZV90ZXN0LmMgYi9rZXJuZWwvdGltZS90aW1lX3Rlc3QuYwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjgzMWU4ZTc3OWFjZQotLS0gL2Rldi9udWxsCisrKyBi L2tlcm5lbC90aW1lL3RpbWVfdGVzdC5jCkBAIC0wLDAgKzEsOTkgQEAKKy8vIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBMR1BMLTIuMSsKKworI2luY2x1ZGUgPGt1bml0L3Rlc3QuaD4KKyNpbmNs dWRlIDxsaW51eC90aW1lLmg+CisKKy8qCisgKiBUcmFkaXRpb25hbCBpbXBsZW1lbnRhdGlvbiBv ZiBsZWFwIHllYXIgZXZhbHVhdGlvbi4KKyAqLworc3RhdGljIGJvb2wgaXNfbGVhcChsb25nIHll YXIpCit7CisJcmV0dXJuIHllYXIgJSA0ID09IDAgJiYgKHllYXIgJSAxMDAgIT0gMCB8fCB5ZWFy ICUgNDAwID09IDApOworfQorCisvKgorICogR2V0cyB0aGUgbGFzdCBkYXkgb2YgYSBtb250aC4K KyAqLworc3RhdGljIGludCBsYXN0X2RheV9vZl9tb250aChsb25nIHllYXIsIGludCBtb250aCkK K3sKKwlpZiAobW9udGggPT0gMikKKwkJcmV0dXJuIDI4ICsgaXNfbGVhcCh5ZWFyKTsKKwlpZiAo bW9udGggPT0gNCB8fCBtb250aCA9PSA2IHx8IG1vbnRoID09IDkgfHwgbW9udGggPT0gMTEpCisJ CXJldHVybiAzMDsKKwlyZXR1cm4gMzE7Cit9CisKKy8qCisgKiBBZHZhbmNlcyBhIGRhdGUgYnkg b25lIGRheS4KKyAqLworc3RhdGljIHZvaWQgYWR2YW5jZV9kYXRlKGxvbmcgKnllYXIsIGludCAq bW9udGgsIGludCAqbWRheSwgaW50ICp5ZGF5KQoreworCWlmICgqbWRheSAhPSBsYXN0X2RheV9v Zl9tb250aCgqeWVhciwgKm1vbnRoKSkgeworCQkrKyptZGF5OworCQkrKyp5ZGF5OworCQlyZXR1 cm47CisJfQorCisJKm1kYXkgPSAxOworCWlmICgqbW9udGggIT0gMTIpIHsKKwkJKysqbW9udGg7 CisJCSsrKnlkYXk7CisJCXJldHVybjsKKwl9CisKKwkqbW9udGggPSAxOworCSp5ZGF5ICA9IDA7 CisJKysqeWVhcjsKK30KKworLyoKKyAqIENoZWNrcyBldmVyeSBkYXkgaW4gYSAxNjAwMDAgeWVh cnMgaW50ZXJ2YWwgY2VudGVyZWQgYXQgMTk3MC0wMS0wMQorICogYWdhaW5zdCB0aGUgZXhwZWN0 ZWQgcmVzdWx0LgorICovCitzdGF0aWMgdm9pZCB0aW1lNjRfdG9fdG1fdGVzdF9kYXRlX3Jhbmdl KHN0cnVjdCBrdW5pdCAqdGVzdCkKK3sKKwkvKgorCSAqIDgwMDAwIHllYXJzCT0gKDgwMDAwIC8g NDAwKSAqIDQwMCB5ZWFycworCSAqCQk9ICg4MDAwMCAvIDQwMCkgKiAxNDYwOTcgZGF5cworCSAq CQk9ICg4MDAwMCAvIDQwMCkgKiAxNDYwOTcgKiA4NjQwMCBzZWNvbmRzCisJICovCisJdGltZTY0 X3QgdG90YWxfc2VjcyA9ICgodGltZTY0X3QpIDgwMDAwKSAvIDQwMCAqIDE0NjA5NyAqIDg2NDAw OworCWxvbmcgeWVhciA9IDE5NzAgLSA4MDAwMDsKKwlpbnQgbW9udGggPSAxOworCWludCBtZGRh eSA9IDE7CisJaW50IHlkYXkgPSAwOworCisJc3RydWN0IHRtIHJlc3VsdDsKKwl0aW1lNjRfdCBz ZWNzOworCXM2NCBkYXlzOworCisJZm9yIChzZWNzID0gLXRvdGFsX3NlY3M7IHNlY3MgPD0gdG90 YWxfc2Vjczsgc2VjcyArPSA4NjQwMCkgeworCisJCXRpbWU2NF90b190bShzZWNzLCAwLCAmcmVz dWx0KTsKKworCQlkYXlzID0gZGl2X3M2NChzZWNzLCA4NjQwMCk7CisKKwkJI2RlZmluZSBGQUlM X01TRyAiJTA1bGQvJTAyZC8lMDJkICglMmQpIDogJWxkIiwgXAorCQkJeWVhciwgbW9udGgsIG1k ZGF5LCB5ZGF5LCBkYXlzCisKKwkJS1VOSVRfQVNTRVJUX0VRX01TRyh0ZXN0LCB5ZWFyIC0gMTkw MCwgcmVzdWx0LnRtX3llYXIsIEZBSUxfTVNHKTsKKwkJS1VOSVRfQVNTRVJUX0VRX01TRyh0ZXN0 LCBtb250aCAtIDEsIHJlc3VsdC50bV9tb24sIEZBSUxfTVNHKTsKKwkJS1VOSVRfQVNTRVJUX0VR X01TRyh0ZXN0LCBtZGRheSwgcmVzdWx0LnRtX21kYXksIEZBSUxfTVNHKTsKKwkJS1VOSVRfQVNT RVJUX0VRX01TRyh0ZXN0LCB5ZGF5LCByZXN1bHQudG1feWRheSwgRkFJTF9NU0cpOworCisJCWFk dmFuY2VfZGF0ZSgmeWVhciwgJm1vbnRoLCAmbWRkYXksICZ5ZGF5KTsKKwl9Cit9CisKK3N0YXRp YyBzdHJ1Y3Qga3VuaXRfY2FzZSB0aW1lX3Rlc3RfY2FzZXNbXSA9IHsKKwlLVU5JVF9DQVNFKHRp bWU2NF90b190bV90ZXN0X2RhdGVfcmFuZ2UpLAorCXt9Cit9OworCitzdGF0aWMgc3RydWN0IGt1 bml0X3N1aXRlIHRpbWVfdGVzdF9zdWl0ZSA9IHsKKwkubmFtZSA9ICJ0aW1lX3Rlc3RfY2FzZXMi LAorCS50ZXN0X2Nhc2VzID0gdGltZV90ZXN0X2Nhc2VzLAorfTsKKwora3VuaXRfdGVzdF9zdWl0 ZSh0aW1lX3Rlc3Rfc3VpdGUpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEv a2VybmVsL3RpbWUvdGltZWNvbnYuYyBiL2tlcm5lbC90aW1lL3RpbWVjb252LmMKaW5kZXggNjJl M2I0NjcxN2E2Li41OWI5MjJjODI2ZTcgMTAwNjQ0Ci0tLSBhL2tlcm5lbC90aW1lL3RpbWVjb252 LmMKKysrIGIva2VybmVsL3RpbWUvdGltZWNvbnYuYwpAQCAtMjIsNDcgKzIyLDE2IEBACiAKIC8q CiAgKiBDb252ZXJ0cyB0aGUgY2FsZW5kYXIgdGltZSB0byBicm9rZW4tZG93biB0aW1lIHJlcHJl c2VudGF0aW9uCi0gKiBCYXNlZCBvbiBjb2RlIGZyb20gZ2xpYmMtMi42CiAgKgogICogMjAwOS03 LTE0OgogICogICBNb3ZlZCBmcm9tIGdsaWJjLTIuNiB0byBrZXJuZWwgYnkgWmhhb2xlaTx6aGFv bGVpQGNuLmZ1aml0c3UuY29tPgorICogMjAyMS0wNi0wMjoKKyAqICAgUmVpbXBsZW1lbnRlZCBi eSBDYXNzaW8gTmVyaSA8Y2Fzc2lvLm5lcmlAZ21haWwuY29tPgogICovCiAKICNpbmNsdWRlIDxs aW51eC90aW1lLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0KLS8qCi0gKiBOb256ZXJv IGlmIFlFQVIgaXMgYSBsZWFwIHllYXIgKGV2ZXJ5IDQgeWVhcnMsCi0gKiBleGNlcHQgZXZlcnkg MTAwdGggaXNuJ3QsIGFuZCBldmVyeSA0MDB0aCBpcykuCi0gKi8KLXN0YXRpYyBpbnQgX19pc2xl YXAobG9uZyB5ZWFyKQotewotCXJldHVybiAoeWVhcikgJSA0ID09IDAgJiYgKCh5ZWFyKSAlIDEw MCAhPSAwIHx8ICh5ZWFyKSAlIDQwMCA9PSAwKTsKLX0KLQotLyogZG8gYSBtYXRoZGl2IGZvciBs b25nIHR5cGUgKi8KLXN0YXRpYyBsb25nIG1hdGhfZGl2KGxvbmcgYSwgbG9uZyBiKQotewotCXJl dHVybiBhIC8gYiAtIChhICUgYiA8IDApOwotfQotCi0vKiBIb3cgbWFueSBsZWFwIHllYXJzIGJl dHdlZW4geTEgYW5kIHkyLCB5MSBtdXN0IGxlc3Mgb3IgZXF1YWwgdG8geTIgKi8KLXN0YXRpYyBs b25nIGxlYXBzX2JldHdlZW4obG9uZyB5MSwgbG9uZyB5MikKLXsKLQlsb25nIGxlYXBzMSA9IG1h dGhfZGl2KHkxIC0gMSwgNCkgLSBtYXRoX2Rpdih5MSAtIDEsIDEwMCkKLQkJKyBtYXRoX2Rpdih5 MSAtIDEsIDQwMCk7Ci0JbG9uZyBsZWFwczIgPSBtYXRoX2Rpdih5MiAtIDEsIDQpIC0gbWF0aF9k aXYoeTIgLSAxLCAxMDApCi0JCSsgbWF0aF9kaXYoeTIgLSAxLCA0MDApOwotCXJldHVybiBsZWFw czIgLSBsZWFwczE7Ci19Ci0KLS8qIEhvdyBtYW55IGRheXMgY29tZSBiZWZvcmUgZWFjaCBtb250 aCAoMC0xMikuICovCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgX19tb25feWRheVsyXVsx M10gPSB7Ci0JLyogTm9ybWFsIHllYXJzLiAqLwotCXswLCAzMSwgNTksIDkwLCAxMjAsIDE1MSwg MTgxLCAyMTIsIDI0MywgMjczLCAzMDQsIDMzNCwgMzY1fSwKLQkvKiBMZWFwIHllYXJzLiAqLwot CXswLCAzMSwgNjAsIDkxLCAxMjEsIDE1MiwgMTgyLCAyMTMsIDI0NCwgMjc0LCAzMDUsIDMzNSwg MzY2fQotfTsKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KIAogI2RlZmluZSBTRUNTX1BFUl9I T1VSCSg2MCAqIDYwKQogI2RlZmluZSBTRUNTX1BFUl9EQVkJKFNFQ1NfUEVSX0hPVVIgKiAyNCkK QEAgLTc3LDkgKzQ2LDExIEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBfX21vbl95ZGF5 WzJdWzEzXSA9IHsKICAqLwogdm9pZCB0aW1lNjRfdG9fdG0odGltZTY0X3QgdG90YWxzZWNzLCBp bnQgb2Zmc2V0LCBzdHJ1Y3QgdG0gKnJlc3VsdCkKIHsKLQlsb25nIGRheXMsIHJlbSwgeTsKKwl1 MzIgdTMydG1wLCBkYXlfb2ZfY2VudHVyeSwgeWVhcl9vZl9jZW50dXJ5LCBkYXlfb2ZfeWVhciwg bW9udGgsIGRheTsKKwl1NjQgdTY0dG1wLCB1ZGF5cywgY2VudHVyeSwgeWVhcjsKKwlib29sIGlz X0phbl9vcl9GZWIsIGlzX2xlYXBfeWVhcjsKKwlsb25nIGRheXMsIHJlbTsKIAlpbnQgcmVtYWlu ZGVyOwotCWNvbnN0IHVuc2lnbmVkIHNob3J0ICppcDsKIAogCWRheXMgPSBkaXZfczY0X3JlbSh0 b3RhbHNlY3MsIFNFQ1NfUEVSX0RBWSwgJnJlbWFpbmRlcik7CiAJcmVtID0gcmVtYWluZGVyOwpA QCAtMTAzLDI3ICs3NCw2OCBAQCB2b2lkIHRpbWU2NF90b190bSh0aW1lNjRfdCB0b3RhbHNlY3Ms IGludCBvZmZzZXQsIHN0cnVjdCB0bSAqcmVzdWx0KQogCWlmIChyZXN1bHQtPnRtX3dkYXkgPCAw KQogCQlyZXN1bHQtPnRtX3dkYXkgKz0gNzsKIAotCXkgPSAxOTcwOwotCi0Jd2hpbGUgKGRheXMg PCAwIHx8IGRheXMgPj0gKF9faXNsZWFwKHkpID8gMzY2IDogMzY1KSkgewotCQkvKiBHdWVzcyBh IGNvcnJlY3RlZCB5ZWFyLCBhc3N1bWluZyAzNjUgZGF5cyBwZXIgeWVhci4gKi8KLQkJbG9uZyB5 ZyA9IHkgKyBtYXRoX2RpdihkYXlzLCAzNjUpOwotCi0JCS8qIEFkanVzdCBEQVlTIGFuZCBZIHRv IG1hdGNoIHRoZSBndWVzc2VkIHllYXIuICovCi0JCWRheXMgLT0gKHlnIC0geSkgKiAzNjUgKyBs ZWFwc19iZXR3ZWVuKHksIHlnKTsKLQkJeSA9IHlnOwotCX0KLQotCXJlc3VsdC0+dG1feWVhciA9 IHkgLSAxOTAwOwotCi0JcmVzdWx0LT50bV95ZGF5ID0gZGF5czsKLQotCWlwID0gX19tb25feWRh eVtfX2lzbGVhcCh5KV07Ci0JZm9yICh5ID0gMTE7IGRheXMgPCBpcFt5XTsgeS0tKQotCQljb250 aW51ZTsKLQlkYXlzIC09IGlwW3ldOwotCi0JcmVzdWx0LT50bV9tb24gPSB5OwotCXJlc3VsdC0+ dG1fbWRheSA9IGRheXMgKyAxOworCS8qCisJICogVGhlIGZvbGxvd2luZyBhbGdvcml0aG0gaXMs IGJhc2ljYWxseSwgUHJvcG9zaXRpb24gNi4zIG9mIE5lcmkKKwkgKiBhbmQgU2NobmVpZGVyIFsx XS4gSW4gYSBmZXcgd29yZHM6IGl0IHdvcmtzIG9uIHRoZSBjb21wdXRhdGlvbmFsCisJICogKGZp Y3RpdGlvdXMpIGNhbGVuZGFyIHdoZXJlIHRoZSB5ZWFyIHN0YXJ0cyBpbiBNYXJjaCwgbW9udGgg PSAyCisJICogKCopLCBhbmQgZmluaXNoZXMgaW4gRmVicnVhcnksIG1vbnRoID0gMTMuIFRoaXMg Y2FsZW5kYXIgaXMKKwkgKiBtYXRoZW1hdGljYWxseSBjb252ZW5pZW50IGJlY2F1c2UgdGhlIGRh eSBvZiB0aGUgeWVhciBkb2VzIG5vdAorCSAqIGRlcGVuZCBvbiB3aGV0aGVyIHRoZSB5ZWFyIGlz IGxlYXAgb3Igbm90LiBGb3IgaW5zdGFuY2U6CisJICoKKwkgKiBNYXJjaCAxc3QJCTAtdGggZGF5 IG9mIHRoZSB5ZWFyOworCSAqIC4uLgorCSAqIEFwcmlsIDFzdAkJMzEtc3QgZGF5IG9mIHRoZSB5 ZWFyOworCSAqIC4uLgorCSAqIEphbnVhcnkgMXN0CQkzMDYtdGggZGF5IG9mIHRoZSB5ZWFyOyAo SW1wb3J0YW50ISkKKwkgKiAuLi4KKwkgKiBGZWJydWFyeSAyOHRoCTM2NC10aCBkYXkgb2YgdGhl IHllYXI7CisJICogRmVicnVhcnkgMjl0aAkzNjUtdGggZGF5IG9mIHRoZSB5ZWFyIChpZiBpdCBl eGlzdHMpLgorCSAqCisJICogQWZ0ZXIgaGF2aW5nIHdvcmtlZCBvdXQgdGhlIGRhdGUgaW4gdGhl IGNvbXB1dGF0aW9uYWwgY2FsZW5kYXIKKwkgKiAodXNpbmcganVzdCBhcml0aG1ldGljcykgaXQn cyBlYXN5IHRvIGNvbnZlcnQgaXQgdG8gdGhlCisJICogY29ycmVzcG9uZGluZyBkYXRlIGluIHRo ZSBHcmVnb3JpYW4gY2FsZW5kYXIuCisJICoKKwkgKiBbMV0gIkV1Y2xpZGVhbiBBZmZpbmUgRnVu Y3Rpb25zIGFuZCBBcHBsaWNhdGlvbnMgdG8gQ2FsZW5kYXIKKwkgKiBBbGdvcml0aG1zIi4gaHR0 cHM6Ly9hcnhpdi5vcmcvYWJzLzIxMDIuMDY5NTkKKwkgKgorCSAqICgqKSBUaGUgbnVtYmVyaW5n IG9mIG1vbnRocyBmb2xsb3dzIHRtIG1vcmUgY2xvc2VseSBhbmQgdGh1cywKKwkgKiBpcyBzbGln aHRseSBkaWZmZXJlbnQgZnJvbSBbMV0uCisJICovCisKKwl1ZGF5cwk9ICgodTY0KSBkYXlzKSAr IDIzMDU4NDMwMDkyMTM4MTQ5MThVTEw7CisKKwl1NjR0bXAJCT0gNCAqIHVkYXlzICsgMzsKKwlj ZW50dXJ5CQk9IGRpdjY0X3U2NF9yZW0odTY0dG1wLCAxNDYwOTcsICZ1NjR0bXApOworCWRheV9v Zl9jZW50dXJ5CT0gKHUzMikgKHU2NHRtcCAvIDQpOworCisJdTMydG1wCQk9IDQgKiBkYXlfb2Zf Y2VudHVyeSArIDM7CisJdTY0dG1wCQk9IDI5Mzk3NDVVTEwgKiB1MzJ0bXA7CisJeWVhcl9vZl9j ZW50dXJ5CT0gdXBwZXJfMzJfYml0cyh1NjR0bXApOworCWRheV9vZl95ZWFyCT0gbG93ZXJfMzJf Yml0cyh1NjR0bXApIC8gMjkzOTc0NSAvIDQ7CisKKwl5ZWFyCQk9IDEwMCAqIGNlbnR1cnkgKyB5 ZWFyX29mX2NlbnR1cnk7CisJaXNfbGVhcF95ZWFyCT0geWVhcl9vZl9jZW50dXJ5ID8gISh5ZWFy X29mX2NlbnR1cnkgJSA0KSA6ICEoY2VudHVyeSAlIDQpOworCisJdTMydG1wCQk9IDIxNDEgKiBk YXlfb2ZfeWVhciArIDEzMjM3NzsKKwltb250aAkJPSB1MzJ0bXAgPj4gMTY7CisJZGF5CQk9ICgo dTE2KSB1MzJ0bXApIC8gMjE0MTsKKworCS8qCisJICogUmVjYWxsIHRoYXQgSmFudWFyeSAxc3Qg aXMgdGhlIDMwNi10aCBkYXkgb2YgdGhlIHllYXIgaW4gdGhlCisJICogY29tcHV0YXRpb25hbCAo bm90IEdyZWdvcmlhbikgY2FsZW5kYXIuCisJICovCisJaXNfSmFuX29yX0ZlYgk9IGRheV9vZl95 ZWFyID49IDMwNjsKKworCS8qIENvbnZlcnQgdG8gdGhlIEdyZWdvcmlhbiBjYWxlbmRhciBhbmQg YWRqdXN0IHRvIFVuaXggdGltZS4gKi8KKwl5ZWFyCQk9IHllYXIgKyBpc19KYW5fb3JfRmViIC0g NjMxMzE4MzczMTk0MDAwMFVMTDsKKwltb250aAkJPSBpc19KYW5fb3JfRmViID8gbW9udGggLSAx MiA6IG1vbnRoOworCWRheQkJPSBkYXkgKyAxOworCWRheV9vZl95ZWFyCSs9IGlzX0phbl9vcl9G ZWIgPyAtMzA2IDogMzEgKyAyOCArIGlzX2xlYXBfeWVhcjsKKworCS8qIENvbnZlcnQgdG8gdG0n cyBmb3JtYXQuICovCisJcmVzdWx0LT50bV95ZWFyID0gKGxvbmcpICh5ZWFyIC0gMTkwMCk7CisJ cmVzdWx0LT50bV9tb24gID0gKGludCkgbW9udGg7CisJcmVzdWx0LT50bV9tZGF5ID0gKGludCkg ZGF5OworCXJlc3VsdC0+dG1feWRheSA9IChpbnQpIGRheV9vZl95ZWFyOwogfQogRVhQT1JUX1NZ TUJPTCh0aW1lNjRfdG9fdG0pOwpkaWZmIC0tZ2l0IGEva2VybmVsL3RpbWUvdGltZXJfbGlzdC5j IGIva2VybmVsL3RpbWUvdGltZXJfbGlzdC5jCmluZGV4IDY5MzkxNDBhYjdjNS4uZWQ3ZDZhZDY5 NGZiIDEwMDY0NAotLS0gYS9rZXJuZWwvdGltZS90aW1lcl9saXN0LmMKKysrIGIva2VybmVsL3Rp bWUvdGltZXJfbGlzdC5jCkBAIC0yMjgsNiArMjI4LDE0IEBAIHByaW50X3RpY2tkZXZpY2Uoc3Ry dWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgdGlja19kZXZpY2UgKnRkLCBpbnQgY3B1KQogCVNFUV9w cmludGYobSwgIiBldmVudF9oYW5kbGVyOiAgJXBzXG4iLCBkZXYtPmV2ZW50X2hhbmRsZXIpOwog CVNFUV9wcmludGYobSwgIlxuIik7CiAJU0VRX3ByaW50ZihtLCAiIHJldHJpZXM6ICAgICAgICAl bHVcbiIsIGRldi0+cmV0cmllcyk7CisKKyNpZmRlZiBDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5U U19CUk9BRENBU1QKKwlpZiAoY3B1ID49IDApIHsKKwkJY29uc3Qgc3RydWN0IGNsb2NrX2V2ZW50 X2RldmljZSAqd2QgPSB0aWNrX2dldF93YWtldXBfZGV2aWNlKGNwdSk7CisKKwkJU0VRX3ByaW50 ZihtLCAiV2FrZXVwIERldmljZTogJXNcbiIsIHdkID8gd2QtPm5hbWUgOiAiPE5VTEw+Iik7CisJ fQorI2VuZGlmCiAJU0VRX3ByaW50ZihtLCAiXG4iKTsKIH0KIApAQCAtMjQ4LDcgKzI1Niw3IEBA IHN0YXRpYyB2b2lkIHRpbWVyX2xpc3Rfc2hvd190aWNrZGV2aWNlc19oZWFkZXIoc3RydWN0IHNl cV9maWxlICptKQogCiBzdGF0aWMgaW5saW5lIHZvaWQgdGltZXJfbGlzdF9oZWFkZXIoc3RydWN0 IHNlcV9maWxlICptLCB1NjQgbm93KQogewotCVNFUV9wcmludGYobSwgIlRpbWVyIExpc3QgVmVy c2lvbjogdjAuOFxuIik7CisJU0VRX3ByaW50ZihtLCAiVGltZXIgTGlzdCBWZXJzaW9uOiB2MC45 XG4iKTsKIAlTRVFfcHJpbnRmKG0sICJIUlRJTUVSX01BWF9DTE9DS19CQVNFUzogJWRcbiIsIEhS VElNRVJfTUFYX0NMT0NLX0JBU0VTKTsKIAlTRVFfcHJpbnRmKG0sICJub3cgYXQgJUxkIG5zZWNz XG4iLCAodW5zaWduZWQgbG9uZyBsb25nKW5vdyk7CiAJU0VRX3ByaW50ZihtLCAiXG4iKTsKZGlm ZiAtLWdpdCBhL2xpYi9LY29uZmlnLmRlYnVnIGIvbGliL0tjb25maWcuZGVidWcKaW5kZXggNjc4 YzEzOTY3NTgwLi4wYTVhNzBjNzQyZTYgMTAwNjQ0Ci0tLSBhL2xpYi9LY29uZmlnLmRlYnVnCisr KyBiL2xpYi9LY29uZmlnLmRlYnVnCkBAIC0yNTcxLDYgKzI1NzEsMTggQEAgY29uZmlnIFRFU1Rf RlBVCiAKIAkgIElmIHVuc3VyZSwgc2F5IE4uCiAKK2NvbmZpZyBURVNUX0NMT0NLU09VUkNFX1dB VENIRE9HCisJdHJpc3RhdGUgIlRlc3QgY2xvY2tzb3VyY2Ugd2F0Y2hkb2cgaW4ga2VybmVsIHNw YWNlIgorCWRlcGVuZHMgb24gQ0xPQ0tTT1VSQ0VfV0FUQ0hET0cKKwloZWxwCisJICBFbmFibGUg dGhpcyBvcHRpb24gdG8gY3JlYXRlIGEga2VybmVsIG1vZHVsZSB0aGF0IHdpbGwgdHJpZ2dlcgor CSAgYSB0ZXN0IG9mIHRoZSBjbG9ja3NvdXJjZSB3YXRjaGRvZy4gIFRoaXMgbW9kdWxlIG1heSBi ZSBsb2FkZWQKKwkgIHZpYSBtb2Rwcm9iZSBvciBpbnNtb2QgaW4gd2hpY2ggY2FzZSBpdCB3aWxs IHJ1biB1cG9uIGJlaW5nCisJICBsb2FkZWQsIG9yIGl0IG1heSBiZSBidWlsdCBpbiwgaW4gd2hp Y2ggY2FzZSBpdCB3aWxsIHJ1bgorCSAgc2hvcnRseSBhZnRlciBib290LgorCisJICBJZiB1bnN1 cmUsIHNheSBOLgorCiBlbmRpZiAjIFJVTlRJTUVfVEVTVElOR19NRU5VCiAKIGNvbmZpZyBBUkNI X1VTRV9NRU1URVNUCgo=