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=-9.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT 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 60436C433E1 for ; Tue, 9 Jun 2020 15:49:42 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 3385420823 for ; Tue, 9 Jun 2020 15:49:42 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=poorly.run header.i=@poorly.run header.b="TVj3AUwj" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3385420823 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=poorly.run Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 8615089E14; Tue, 9 Jun 2020 15:49:41 +0000 (UTC) Received: from mail-qt1-x841.google.com (mail-qt1-x841.google.com [IPv6:2607:f8b0:4864:20::841]) by gabe.freedesktop.org (Postfix) with ESMTPS id F1F5E89E14 for ; Tue, 9 Jun 2020 15:49:39 +0000 (UTC) Received: by mail-qt1-x841.google.com with SMTP id y1so17946604qtv.12 for ; Tue, 09 Jun 2020 08:49:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=poorly.run; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=aamBfUVvoW+I1FckAdhDPHQXT+91l+K8y9C2/z2lzpY=; b=TVj3AUwjdHhgOS/UsJt3I4WBAS5288jBPcsWleGqHnUXiyCul2rp94CL0/1mwGvvX1 i6BPUh4v9SrBcjpJ+56ylSsSvWUix8AQRtic+IXBsxfFD1gLaYggg2pLMKvXaAzwf5lg WR9bYaFLabrEuDNtY4k4KiAARy1qC/Q4I7Ork181bh11NzMa07BoFf+7MZlaEtIguJ0S oO4StrOL7n2tnB8RIOthpCFAQj6/4/PgV2qUbCxvFu0vQUsBgJKAwRzEUWVUumixmLFW VtcWYmNKWjKSR00shtzDCnw+klAsjKHTQJturD8B3OXszS2Tf1m6bIGho5em+MwIk+Gh 1Q6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=aamBfUVvoW+I1FckAdhDPHQXT+91l+K8y9C2/z2lzpY=; b=PCexEZbDtcqzK16u3oTVr3bm+7qVi3/zAhEcJC5hqQPdFVQZjFMxIl+sf/OCsST30A F4U/Hnwp+nXCmIZPXGnAoAszokwwg1+aZzccKek7sNzj4qe+v8KGRlsGgQAn/zHlyN9w VXN1ZNIR/k6tG+8qhJ5FTfsyOR4ER8wc5HEPBhVFpoVkIfUaFNbxxaTvK1EkdY5sLFD2 b6HmzEdT6hssX3vxesXMhsJIvSgn223UslWzGh2L7GaTH8OOsP0ezw3fKV95Q92DUfYY oHpA0dIvzgeTkqs2DLu69F/iFaHt/w6/mKTkg8oLQzKRRtR75kX9OGoXX61U3OyfKykP EzcQ== X-Gm-Message-State: AOAM533Pg25SqGB7UoCeEFFtWXUGV/llBbGwRz3FyUywRKnRivmL/nTD u1pGo4b25F/xsYmYkiXRlXetScxgUZM= X-Google-Smtp-Source: ABdhPJyexKtgKw0Na12v2fQarkZs1qD57/UTjBDZT4NbbY+4AAKnXxgi0Om7xbKWi+9mZMaPZT4cFg== X-Received: by 2002:ac8:7c8f:: with SMTP id y15mr30027983qtv.248.1591717778675; Tue, 09 Jun 2020 08:49:38 -0700 (PDT) Received: from localhost (mobile-166-173-249-132.mycingular.net. [166.173.249.132]) by smtp.gmail.com with ESMTPSA id o3sm11123146qkj.97.2020.06.09.08.49.37 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 09 Jun 2020 08:49:37 -0700 (PDT) From: Sean Paul To: dri-devel@lists.freedesktop.org Subject: [PATCH v6 13/13] drm/print: Add tracefs support to the drm logging helpers Date: Tue, 9 Jun 2020 11:49:19 -0400 Message-Id: <20200609154932.696-1-sean@poorly.run> X-Mailer: git-send-email 2.17.1 In-Reply-To: <202006090859.AP8QhpSU%lkp@intel.com> References: <202006090859.AP8QhpSU%lkp@intel.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-doc@vger.kernel.org, Jonathan Corbet , David Airlie , daniel.vetter@ffwll.ch, chris@chris-wilson.co.uk, seanpaul@chromium.org, tzimmermann@suse.de, rostedt@goodmis.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" RnJvbTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+CgpUaGlzIHBhdGNoIGFkZHMg YSBuZXcgbW9kdWxlIHBhcmFtZXRlciBjYWxsZWQgZHJtLnRyYWNlIHdoaWNoIGFjY2VwdHMKdGhl IHNhbWUgbWFzayBhcyBkcm0uZGVidWcuIFdoZW4gYSBkZWJ1ZyBjYXRlZ29yeSBpcyBlbmFibGVk LCBsb2cKbWVzc2FnZXMgd2lsbCBiZSBwdXQgaW4gYSBuZXcgdHJhY2VmcyBpbnN0YW5jZSBjYWxs ZWQgZHJtIGZvcgpjb25zdW1wdGlvbi4KClVzaW5nIHRoZSBuZXcgdHJhY2VmcyBpbnN0YW5jZSB3 aWxsIGFsbG93IGRpc3Ryb3MgdG8gZW5hYmxlIGRybSBsb2dnaW5nCmluIHByb2R1Y3Rpb24gd2l0 aG91dCBpbXBhY3RpbmcgcGVyZm9ybWFuY2Ugb3Igc3BhbW1pbmcgdGhlIHN5c3RlbQpsb2dzLgoK Q2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+CkNjOiBEYXZpZCBBaXJs aWUgPGFpcmxpZWRAZ21haWwuY29tPgpDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGxpbnV4 LmludGVsLmNvbT4KQ2M6IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4Lmlu dGVsLmNvbT4KQ2M6IFBla2thIFBhYWxhbmVuIDxwcGFhbGFuZW5AZ21haWwuY29tPgpDYzogUm9i IENsYXJrIDxyb2JkY2xhcmtAZ21haWwuY29tPgpDYzogU3RldmVuIFJvc3RlZHQgPHJvc3RlZHRA Z29vZG1pcy5vcmc+CkNjOiBUaG9tYXMgWmltbWVybWFubiA8dHppbW1lcm1hbm5Ac3VzZS5kZT4K Q2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+CkNjOiBD aHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KQ2M6IFN0ZXZlbiBSb3N0ZWR0 IDxyb3N0ZWR0QGdvb2RtaXMub3JnPgpTaWduZWQtb2ZmLWJ5OiBTZWFuIFBhdWwgPHNlYW5wYXVs QGNocm9taXVtLm9yZz4KTGluazogaHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Aub3JnL3Bh dGNoL21zZ2lkLzIwMTkxMDEwMjA0ODIzLjE5NTU0MC0xLXNlYW5AcG9vcmx5LnJ1biAjdjEKTGlu azogaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvZHJpLWRldmVsLzIwMTkt Tm92ZW1iZXIvMjQzMjMwLmh0bWwgI3YyCkxpbms6IGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNr dG9wLm9yZy9wYXRjaC9tc2dpZC8yMDE5MTIxMjIwMzMwMS4xNDI0MzctMS1zZWFuQHBvb3JseS5y dW4gI3YzCkxpbms6IGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9wYXRjaC9tc2dp ZC8yMDIwMDExNDE3MjE1NS4yMTU0NjMtMS1zZWFuQHBvb3JseS5ydW4gI3Y0CgpDaGFuZ2VzIGlu IHY1OgotUmUtd3JpdGUgdG8gdXNlIHRyYWNlX2FycmF5IGFuZCB0aGUgdHJhY2VmcyBpbnN0YW5j ZSBzdXBwb3J0CgpDaGFuZ2VzIGluIHY2OgotRml4IG9sZC1zdHlsZSBmdW5jdGlvbiBkZWZpbml0 aW9uIHdhcm5pbmdzClJlcG9ydGVkLWJ5OiBrZXJuZWwgdGVzdCByb2JvdCA8bGtwQGludGVsLmNv bT4KLS0tCiBEb2N1bWVudGF0aW9uL2dwdS9kcm0tdWFwaS5yc3QgfCAgIDYgKwogZHJpdmVycy9n cHUvZHJtL2RybV9kcnYuYyAgICAgIHwgICAzICsKIGRyaXZlcnMvZ3B1L2RybS9kcm1fcHJpbnQu YyAgICB8IDIwOSArKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KIGluY2x1ZGUvZHJt L2RybV9wcmludC5oICAgICAgICB8ICA2MyArKysrKysrKy0tCiA0IGZpbGVzIGNoYW5nZWQsIDI0 MSBpbnNlcnRpb25zKCspLCA0MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0 aW9uL2dwdS9kcm0tdWFwaS5yc3QgYi9Eb2N1bWVudGF0aW9uL2dwdS9kcm0tdWFwaS5yc3QKaW5k ZXggNTZmZWM2ZWQxYWQ4Li4xYzFjNGQwNDNmNDAgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24v Z3B1L2RybS11YXBpLnJzdAorKysgYi9Eb2N1bWVudGF0aW9uL2dwdS9kcm0tdWFwaS5yc3QKQEAg LTMxMiw2ICszMTIsMTIgQEAgRGVidWdmcyBTdXBwb3J0CiAuLiBrZXJuZWwtZG9jOjogZHJpdmVy cy9ncHUvZHJtL2RybV9kZWJ1Z2ZzLmMKICAgIDpleHBvcnQ6CiAKK0RSTSBUcmFjaW5nCistLS0t LS0tLS0tLS0tLS0KKworLi4ga2VybmVsLWRvYzo6IGRyaXZlcnMvZ3B1L2RybS9kcm1fcHJpbnQu YworICAgOmRvYzogRFJNIFRyYWNpbmcKKwogU3lzZnMgU3VwcG9ydAogPT09PT09PT09PT09PQog CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJt L2RybV9kcnYuYwppbmRleCBiYzM4MzIyZjMwNmUuLjg4NDA0YWY3NGM5YiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2RybV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Rydi5j CkBAIC0xMTA4LDEyICsxMTA4LDE1IEBAIHN0YXRpYyB2b2lkIGRybV9jb3JlX2V4aXQodm9pZCkK IAlkcm1fc3lzZnNfZGVzdHJveSgpOwogCWlkcl9kZXN0cm95KCZkcm1fbWlub3JzX2lkcik7CiAJ ZHJtX2Nvbm5lY3Rvcl9pZGFfZGVzdHJveSgpOworCWRybV90cmFjZV9jbGVhbnVwKCk7CiB9CiAK IHN0YXRpYyBpbnQgX19pbml0IGRybV9jb3JlX2luaXQodm9pZCkKIHsKIAlpbnQgcmV0OwogCisJ ZHJtX3RyYWNlX2luaXQoKTsKKwogCWRybV9jb25uZWN0b3JfaWRhX2luaXQoKTsKIAlpZHJfaW5p dCgmZHJtX21pbm9yc19pZHIpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3By aW50LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3ByaW50LmMKaW5kZXggNGQ5ODRhMDFiM2EzLi4x OGRmYmQ0M2MyM2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJpbnQuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX3ByaW50LmMKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRl IDxsaW51eC9tb2R1bGVwYXJhbS5oPgogI2luY2x1ZGUgPGxpbnV4L3NlcV9maWxlLmg+CiAjaW5j bHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3RyYWNlLmg+CiAKICNpbmNsdWRl IDxkcm0vZHJtLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KQEAgLTQzLDE3ICs0NCwzNCBA QAogdW5zaWduZWQgaW50IF9fZHJtX2RlYnVnX3N5c2xvZzsKIEVYUE9SVF9TWU1CT0woX19kcm1f ZGVidWdfc3lzbG9nKTsKIAotTU9EVUxFX1BBUk1fREVTQyhkZWJ1ZywgIkVuYWJsZSBkZWJ1ZyBv dXRwdXQsIHdoZXJlIGVhY2ggYml0IGVuYWJsZXMgYSBkZWJ1ZyBjYXRlZ29yeS5cbiIKLSJcdFx0 Qml0IDAgKDB4MDEpICB3aWxsIGVuYWJsZSBDT1JFIG1lc3NhZ2VzIChkcm0gY29yZSBjb2RlKVxu IgotIlx0XHRCaXQgMSAoMHgwMikgIHdpbGwgZW5hYmxlIERSSVZFUiBtZXNzYWdlcyAoZHJtIGNv bnRyb2xsZXIgY29kZSlcbiIKLSJcdFx0Qml0IDIgKDB4MDQpICB3aWxsIGVuYWJsZSBLTVMgbWVz c2FnZXMgKG1vZGVzZXR0aW5nIGNvZGUpXG4iCi0iXHRcdEJpdCAzICgweDA4KSAgd2lsbCBlbmFi bGUgUFJJTUUgbWVzc2FnZXMgKHByaW1lIGNvZGUpXG4iCi0iXHRcdEJpdCA0ICgweDEwKSAgd2ls bCBlbmFibGUgQVRPTUlDIG1lc3NhZ2VzIChhdG9taWMgY29kZSlcbiIKLSJcdFx0Qml0IDUgKDB4 MjApICB3aWxsIGVuYWJsZSBWQkwgbWVzc2FnZXMgKHZibGFuayBjb2RlKVxuIgotIlx0XHRCaXQg NyAoMHg4MCkgIHdpbGwgZW5hYmxlIExFQVNFIG1lc3NhZ2VzIChsZWFzaW5nIGNvZGUpXG4iCi0i XHRcdEJpdCA4ICgweDEwMCkgd2lsbCBlbmFibGUgRFAgbWVzc2FnZXMgKGRpc3BsYXlwb3J0IGNv ZGUpIik7CisvKgorICogX19kcm1fZGVidWdfdHJhY2U6IEVuYWJsZSBkZWJ1ZyBvdXRwdXQgaW4g ZHJtIHRyYWNpbmcgaW5zdGFuY2UuCisgKiBCaXRtYXNrIG9mIERSTV9VVF94LiBTZWUgaW5jbHVk ZS9kcm0vZHJtX3ByaW50LmggZm9yIGRldGFpbHMuCisgKi8KK3Vuc2lnbmVkIGludCBfX2RybV9k ZWJ1Z190cmFjZTsKK0VYUE9SVF9TWU1CT0woX19kcm1fZGVidWdfdHJhY2UpOworCisjZGVmaW5l IERFQlVHX1BBUk1fREVTQyhkc3QpIFwKKyJFbmFibGUgZGVidWcgb3V0cHV0IHRvICIgZHN0ICIs IHdoZXJlIGVhY2ggYml0IGVuYWJsZXMgYSBkZWJ1ZyBjYXRlZ29yeS5cbiIgXAorIlx0XHRCaXQg MCAoMHgwMSkgIHdpbGwgZW5hYmxlIENPUkUgbWVzc2FnZXMgKGRybSBjb3JlIGNvZGUpXG4iIFwK KyJcdFx0Qml0IDEgKDB4MDIpICB3aWxsIGVuYWJsZSBEUklWRVIgbWVzc2FnZXMgKGRybSBjb250 cm9sbGVyIGNvZGUpXG4iIFwKKyJcdFx0Qml0IDIgKDB4MDQpICB3aWxsIGVuYWJsZSBLTVMgbWVz c2FnZXMgKG1vZGVzZXR0aW5nIGNvZGUpXG4iIFwKKyJcdFx0Qml0IDMgKDB4MDgpICB3aWxsIGVu YWJsZSBQUklNRSBtZXNzYWdlcyAocHJpbWUgY29kZSlcbiIgXAorIlx0XHRCaXQgNCAoMHgxMCkg IHdpbGwgZW5hYmxlIEFUT01JQyBtZXNzYWdlcyAoYXRvbWljIGNvZGUpXG4iIFwKKyJcdFx0Qml0 IDUgKDB4MjApICB3aWxsIGVuYWJsZSBWQkwgbWVzc2FnZXMgKHZibGFuayBjb2RlKVxuIiBcCisi XHRcdEJpdCA3ICgweDgwKSAgd2lsbCBlbmFibGUgTEVBU0UgbWVzc2FnZXMgKGxlYXNpbmcgY29k ZSlcbiIgXAorIlx0XHRCaXQgOCAoMHgxMDApIHdpbGwgZW5hYmxlIERQIG1lc3NhZ2VzIChkaXNw bGF5cG9ydCBjb2RlKSIKKworTU9EVUxFX1BBUk1fREVTQyhkZWJ1ZywgREVCVUdfUEFSTV9ERVND KCJzeXNsb2ciKSk7CiBtb2R1bGVfcGFyYW1fbmFtZWQoZGVidWcsIF9fZHJtX2RlYnVnX3N5c2xv ZywgaW50LCAwNjAwKTsKIAorTU9EVUxFX1BBUk1fREVTQyh0cmFjZSwgREVCVUdfUEFSTV9ERVND KCJ0cmFjZWZzIikpOworbW9kdWxlX3BhcmFtX25hbWVkKHRyYWNlLCBfX2RybV9kZWJ1Z190cmFj ZSwgaW50LCAwNjAwKTsKKworI2lmZGVmIENPTkZJR19UUkFDSU5HCitzdHJ1Y3QgdHJhY2VfYXJy YXkgKnRyYWNlX2FycjsKKyNlbmRpZgorCiB2b2lkIF9fZHJtX3B1dHNfY29yZWR1bXAoc3RydWN0 IGRybV9wcmludGVyICpwLCBjb25zdCBjaGFyICpzdHIpCiB7CiAJc3RydWN0IGRybV9wcmludF9p dGVyYXRvciAqaXRlcmF0b3IgPSBwLT5hcmc7CkBAIC0xNjYsNiArMTg0LDIwIEBAIHZvaWQgX19k cm1fcHJpbnRmbl9kZWJ1Z19zeXNsb2coc3RydWN0IGRybV9wcmludGVyICpwLCBzdHJ1Y3QgdmFf Zm9ybWF0ICp2YWYpCiB9CiBFWFBPUlRfU1lNQk9MKF9fZHJtX3ByaW50Zm5fZGVidWdfc3lzbG9n KTsKIAordm9pZCBfX2RybV9wcmludGZuX3RyYWNlKHN0cnVjdCBkcm1fcHJpbnRlciAqcCwgc3Ry dWN0IHZhX2Zvcm1hdCAqdmFmKQoreworCWRybV90cmFjZV9wcmludGYoIiVzICVwViIsIHAtPnBy ZWZpeCwgdmFmKTsKK30KK0VYUE9SVF9TWU1CT0woX19kcm1fcHJpbnRmbl90cmFjZSk7CisKK3Zv aWQgX19kcm1fcHJpbnRmbl9kZWJ1Z19zeXNsb2dfYW5kX3RyYWNlKHN0cnVjdCBkcm1fcHJpbnRl ciAqcCwKKwkJCQkJICAgc3RydWN0IHZhX2Zvcm1hdCAqdmFmKQoreworCXByX2RlYnVnKCIlcyAl cFYiLCBwLT5wcmVmaXgsIHZhZik7CisJZHJtX3RyYWNlX3ByaW50ZigiJXMgJXBWIiwgcC0+cHJl Zml4LCB2YWYpOworfQorRVhQT1JUX1NZTUJPTChfX2RybV9wcmludGZuX2RlYnVnX3N5c2xvZ19h bmRfdHJhY2UpOworCiB2b2lkIF9fZHJtX3ByaW50Zm5fZXJyKHN0cnVjdCBkcm1fcHJpbnRlciAq cCwgc3RydWN0IHZhX2Zvcm1hdCAqdmFmKQogewogCXByX2VycigiKkVSUk9SKiAlcyAlcFYiLCBw LT5wcmVmaXgsIHZhZik7CkBAIC0yNDYsNiArMjc4LDE0IEBAIHZvaWQgZHJtX2Rldl9wcmludGso Y29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpsZXZlbCwKIAlzdHJ1Y3QgdmFf Zm9ybWF0IHZhZjsKIAl2YV9saXN0IGFyZ3M7CiAKKwl2YV9zdGFydChhcmdzLCBmb3JtYXQpOwor CXZhZi5mbXQgPSBmb3JtYXQ7CisJdmFmLnZhID0gJmFyZ3M7CisJZHJtX3RyYWNlX3ByaW50Zigi JXMlc1siIERSTV9OQU1FICI6JXBzXSAlcFYiLAorCQkJIGRldiA/IGRldl9uYW1lKGRldikgOiAi IixkZXYgPyAiICIgOiAiIiwKKwkJCSBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCksICZ2YWYp OworCXZhX2VuZChhcmdzKTsKKwogCXZhX3N0YXJ0KGFyZ3MsIGZvcm1hdCk7CiAJdmFmLmZtdCA9 IGZvcm1hdDsKIAl2YWYudmEgPSAmYXJnczsKQEAgLTI2NywyMSArMzA3LDMwIEBAIHZvaWQgZHJt X2Rldl9kYmcoY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCBlbnVtIGRybV9kZWJ1Z19jYXRlZ29y eSBjYXRlZ29yeSwKIAlzdHJ1Y3QgdmFfZm9ybWF0IHZhZjsKIAl2YV9saXN0IGFyZ3M7CiAKLQlp ZiAoIWRybV9kZWJ1Z19lbmFibGVkKGNhdGVnb3J5KSkKLQkJcmV0dXJuOworCWlmIChkcm1fZGVi dWdfc3lzbG9nX2VuYWJsZWQoY2F0ZWdvcnkpKSB7CisJCXZhX3N0YXJ0KGFyZ3MsIGZvcm1hdCk7 CisJCXZhZi5mbXQgPSBmb3JtYXQ7CisJCXZhZi52YSA9ICZhcmdzOwogCi0JdmFfc3RhcnQoYXJn cywgZm9ybWF0KTsKLQl2YWYuZm10ID0gZm9ybWF0OwotCXZhZi52YSA9ICZhcmdzOworCQlpZiAo ZGV2KQorCQkJZGV2X3ByaW50ayhLRVJOX0RFQlVHLCBkZXYsICJbIiBEUk1fTkFNRSAiOiVwc10g JXBWIiwKKwkJCQlfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCksICZ2YWYpOworCQllbHNlCisJ CQlwcmludGsoS0VSTl9ERUJVRyAiWyIgRFJNX05BTUUgIjolcHNdICVwViIsCisJCQlfX2J1aWx0 aW5fcmV0dXJuX2FkZHJlc3MoMCksICZ2YWYpOwogCi0JaWYgKGRldikKLQkJZGV2X3ByaW50ayhL RVJOX0RFQlVHLCBkZXYsICJbIiBEUk1fTkFNRSAiOiVwc10gJXBWIiwKLQkJCSAgIF9fYnVpbHRp bl9yZXR1cm5fYWRkcmVzcygwKSwgJnZhZik7Ci0JZWxzZQotCQlwcmludGsoS0VSTl9ERUJVRyAi WyIgRFJNX05BTUUgIjolcHNdICVwViIsCi0JCSAgICAgICBfX2J1aWx0aW5fcmV0dXJuX2FkZHJl c3MoMCksICZ2YWYpOworCQl2YV9lbmQoYXJncyk7CisJfQogCi0JdmFfZW5kKGFyZ3MpOworCWlm IChkcm1fZGVidWdfdHJhY2VfZW5hYmxlZChjYXRlZ29yeSkpIHsKKwkJdmFfc3RhcnQoYXJncywg Zm9ybWF0KTsKKwkJdmFmLmZtdCA9IGZvcm1hdDsKKwkJdmFmLnZhID0gJmFyZ3M7CisJCWRybV90 cmFjZV9wcmludGYoIiVzJXNbIiBEUk1fTkFNRSAiOiVwc10gJXBWIiwKKwkJCQkgZGV2ID8gZGV2 X25hbWUoZGV2KSA6ICIiLCBkZXYgPyAiICIgOiAiIiwKKwkJCQkgX19idWlsdGluX3JldHVybl9h ZGRyZXNzKDApLCAmdmFmKTsKKwkJdmFfZW5kKGFyZ3MpOworCX0KIH0KIEVYUE9SVF9TWU1CT0wo ZHJtX2Rldl9kYmcpOwogCkBAIC0yOTAsMTcgKzMzOSwyNSBAQCB2b2lkIF9fZHJtX2RiZyhlbnVt IGRybV9kZWJ1Z19jYXRlZ29yeSBjYXRlZ29yeSwgY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pCiAJ c3RydWN0IHZhX2Zvcm1hdCB2YWY7CiAJdmFfbGlzdCBhcmdzOwogCi0JaWYgKCFkcm1fZGVidWdf ZW5hYmxlZChjYXRlZ29yeSkpCi0JCXJldHVybjsKKwlpZiAoZHJtX2RlYnVnX3N5c2xvZ19lbmFi bGVkKGNhdGVnb3J5KSkgeworCQl2YV9zdGFydChhcmdzLCBmb3JtYXQpOworCQl2YWYuZm10ID0g Zm9ybWF0OworCQl2YWYudmEgPSAmYXJnczsKIAotCXZhX3N0YXJ0KGFyZ3MsIGZvcm1hdCk7Ci0J dmFmLmZtdCA9IGZvcm1hdDsKLQl2YWYudmEgPSAmYXJnczsKKwkJcHJpbnRrKEtFUk5fREVCVUcg IlsiIERSTV9OQU1FICI6JXBzXSAlcFYiLAorCQlfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCks ICZ2YWYpOwogCi0JcHJpbnRrKEtFUk5fREVCVUcgIlsiIERSTV9OQU1FICI6JXBzXSAlcFYiLAot CSAgICAgICBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCksICZ2YWYpOworCQl2YV9lbmQoYXJn cyk7CisJfQogCi0JdmFfZW5kKGFyZ3MpOworCWlmIChkcm1fZGVidWdfdHJhY2VfZW5hYmxlZChj YXRlZ29yeSkpIHsKKwkJdmFfc3RhcnQoYXJncywgZm9ybWF0KTsKKwkJdmFmLmZtdCA9IGZvcm1h dDsKKwkJdmFmLnZhID0gJmFyZ3M7CisJCWRybV90cmFjZV9wcmludGYoIlsiIERSTV9OQU1FICI6 JXBzXSAlcFYiLAorCQkJCSBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCksICZ2YWYpOworCQl2 YV9lbmQoYXJncyk7CisJfQogfQogRVhQT1JUX1NZTUJPTChfX2RybV9kYmcpOwogCkBAIC0zNDcs MyArNDA0LDk3IEBAIHZvaWQgZHJtX3ByaW50X3JlZ3NldDMyKHN0cnVjdCBkcm1fcHJpbnRlciAq cCwgc3RydWN0IGRlYnVnZnNfcmVnc2V0MzIgKnJlZ3NldCkKIAl9CiB9CiBFWFBPUlRfU1lNQk9M KGRybV9wcmludF9yZWdzZXQzMik7CisKKworLyoqCisgKiBET0M6IERSTSBUcmFjaW5nCisgKgor ICogKnRsO2RyKiBEUk0gdHJhY2luZyBpcyBhIGxpZ2h0d2VpZ2h0IGFsdGVybmF0aXZlIHRvIHRy YWRpdGlvbmFsIERSTSBkZWJ1ZworICogbG9nZ2luZy4KKyAqCisgKiBXaGlsZSBEUk0gbG9nZ2lu ZyBpcyBxdWl0ZSBjb252ZW5pZW50IHdoZW4gcmVwcm9kdWNpbmcgYSBzcGVjaWZpYyBpc3N1ZSwg aXQKKyAqIGRvZXNuJ3QgaGVscCB3aGVuIHNvbWV0aGluZyBnb2VzIHdyb25nIHVuZXhwZWN0ZWRs eS4gVGhlcmUgYXJlIGEgY291cGxlCisgKiByZWFzb25zIHdoeSBvbmUgZG9lcyBub3Qgd2FudCB0 byBlbmFibGUgRFJNIGxvZ2dpbmcgYXQgYWxsIHRpbWVzOgorICoKKyAqIDEuIFdlIGRvbid0IHdh bnQgdG8gb3ZlcndoZWxtIHN5c2xvZyB3aXRoIGRybSBzcGFtLCBvdGhlcnMgaGF2ZSB0byB1c2Ug aXQgdG9vCisgKiAyLiBDb25zb2xlIGxvZ2dpbmcgaXMgc2xvdworICoKKyAqIERSTSB0cmFjaW5n IGFpbXMgdG8gc29sdmUgYm90aCB0aGVzZSBwcm9ibGVtcy4KKyAqCisgKiBUbyB1c2UgRFJNIHRy YWNpbmcsIHNldCB0aGUgZHJtLnRyYWNlIG1vZHVsZSBwYXJhbWV0ZXIgKHZpYSBjbWRsaW5lIG9y IHN5c2ZzKQorICogdG8gYSBEUk0gZGVidWcgY2F0ZWdvcnkgbWFzayAodGhpcyBpcyBhIGJpdG1h c2sgb2YgJmRybV9kZWJ1Z19jYXRlZ29yeQorICogdmFsdWVzKToKKyAqIDo6CisgKgorICogICAg ZWc6IGVjaG8gMHgxMDYgPiAvc3lzL21vZHVsZS9kcm0vcGFyYW1ldGVycy90cmFjZQorICoKKyAq IE9uY2UgYWN0aXZlLCBhbGwgbG9nIG1lc3NhZ2VzIGluIHRoZSBzcGVjaWZpZWQgY2F0ZWdvcmll cyB3aWxsIGJlIHdyaXR0ZW4gdG8KKyAqIHRoZSBEUk0gdHJhY2UuIE9uY2UgYXQgY2FwYWNpdHks IHRoZSB0cmFjZSB3aWxsIG92ZXJ3cml0ZSBvbGQgbWVzc2FnZXMgd2l0aAorICogbmV3IG9uZXMu IEF0IGFueSBwb2ludCwgb25lIGNhbiByZWFkIHRoZSB0cmFjZSBmaWxlIHRvIGV4dHJhY3QgdGhl IHByZXZpb3VzIE4KKyAqIERSTSBtZXNzYWdlczoKKyAqIDo6CisgKgorICogICAgZWc6IGNhdCAv c3lzL2tlcm5lbC90cmFjaW5nL2luc3RhbmNlcy9kcm0vdHJhY2UKKyAqCisgKiBDb25zaWRlcmF0 aW9ucworICogKioqKioqKioqKioqKioKKyAqIFRoZSB0cmFjZSBpcyBzdWJzeXN0ZW0gd2lkZSwg c28gaWYgeW91IGhhdmUgbXVsdGlwbGUgZGV2aWNlcyBhY3RpdmUsIHRoZXkKKyAqIHdpbGwgYmUg YWRkaW5nIGxvZ3MgdG8gdGhlIHNhbWUgdHJhY2UuCisgKgorICogVGhlIGNvbnRlbnRzIG9mIHRo ZSBEUk0gVHJhY2UgYXJlICoqbm90KiogY29uc2lkZXJlZCBVQUJJLiAqKkRPIE5PVCBkZXBlbmQg b24KKyAqIHRoZSB2YWx1ZXMgb2YgdGhlc2UgdHJhY2VzIGluIHlvdXIgdXNlcnNwYWNlLioqIFRo ZXNlIHRyYWNlcyBhcmUgaW50ZW5kZWQgZm9yCisgKiBlbnRlcnRhaW5tZW50IHB1cnBvc2VzIG9u bHkuIFRoZSBjb250ZW50cyBvZiB0aGVzZSBsb2dzIGNhcnJ5IG5vIHdhcnJhbnR5LAorICogZXhw cmVzc2VkIG9yIGltcGxpZWQuCisgKi8KKworCisjaWZkZWYgQ09ORklHX1RSQUNJTkcKKworLyoq CisgKiBkcm1fdHJhY2VfaW5pdCAtIGluaXRpYWxpemVzIHRoZSBkcm0gdHJhY2UgYXJyYXkKKyAq CisgKiBUaGlzIGZ1bmN0aW9uIGZldGNoZXMgKG9yIGNyZWF0ZXMpIHRoZSBkcm0gdHJhY2UgYXJy YXkuIFRoaXMgc2hvdWxkIGJlIGNhbGxlZAorICogb25jZSBvbiBkcm0gc3Vic3lzdGVtIGNyZWF0 aW9uIGFuZCBtYXRjaGVkIHdpdGggZHJtX3RyYWNlX2NsZWFudXAoKS4KKyAqLwordm9pZCBkcm1f dHJhY2VfaW5pdCh2b2lkKQoreworCXRyYWNlX2FyciA9IHRyYWNlX2FycmF5X2dldF9ieV9uYW1l KCJkcm0iKTsKKwlpZiAoIXRyYWNlX2FycikKKwkJcmV0dXJuOworfQorRVhQT1JUX1NZTUJPTChk cm1fdHJhY2VfaW5pdCk7CisKKy8qKgorICogZHJtX3RyYWNlX3ByaW50ZiAtIGFkZHMgYW4gZW50 cnkgdG8gdGhlIGRybSB0cmFjZWZzIGluc3RhbmNlCisgKiBAZm9ybWF0OiBwcmludGYgZm9ybWF0 IG9mIHRoZSBtZXNzYWdlIHRvIGFkZCB0byB0aGUgdHJhY2UKKyAqCisgKiBUaGlzIGZ1bmN0aW9u IGFkZHMgYSBuZXcgZW50cnkgaW4gdGhlIGRybSB0cmFjZWZzIGluc3RhbmNlCisgKi8KK3ZvaWQg ZHJtX3RyYWNlX3ByaW50Zihjb25zdCBjaGFyICpmb3JtYXQsIC4uLikKK3sKKwlzdHJ1Y3QgdmFf Zm9ybWF0IHZhZjsKKwl2YV9saXN0IGFyZ3M7CisKKwl2YV9zdGFydChhcmdzLCBmb3JtYXQpOwor CXZhZi5mbXQgPSBmb3JtYXQ7CisJdmFmLnZhID0gJmFyZ3M7CisJdHJhY2VfYXJyYXlfcHJpbnRr KHRyYWNlX2FyciwgX1RISVNfSVBfLCAiJXBWIiwgJnZhZik7CisJdmFfZW5kKGFyZ3MpOworfQor CisvKioKKyAqIGRybV90cmFjZV9jbGVhbnVwIC0gZGVzdHJveXMgdGhlIGRybSB0cmFjZSBhcnJh eQorICoKKyAqIFRoaXMgZnVuY3Rpb24gZGVzdHJveXMgdGhlIGRybSB0cmFjZSBhcnJheSBjcmVh dGVkIHdpdGggZHJtX3RyYWNlX2luaXQuIFRoaXMKKyAqIHNob3VsZCBiZSBjYWxsZWQgb25jZSBv biBkcm0gc3Vic3lzdGVtIGNsb3NlIGFuZCBtYXRjaGVkIHdpdGgKKyAqIGRybV90cmFjZV9pbml0 KCkuCisgKi8KK3ZvaWQgZHJtX3RyYWNlX2NsZWFudXAodm9pZCkKK3sKKwlpZiAodHJhY2VfYXJy KSB7CisJCXRyYWNlX2FycmF5X3B1dCh0cmFjZV9hcnIpOworCQl0cmFjZV9hcnJheV9kZXN0cm95 KHRyYWNlX2Fycik7CisJfQorfQorRVhQT1JUX1NZTUJPTChkcm1fdHJhY2VfY2xlYW51cCk7Cisj ZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9wcmludC5oIGIvaW5jbHVkZS9kcm0v ZHJtX3ByaW50LmgKaW5kZXggODk4N2I5OGJiZmRhLi4yODRmN2QzMjUwNTYgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvZHJtL2RybV9wcmludC5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9wcmludC5oCkBA IC0zNiwxMiArMzYsMTMgQEAKIAogLyogRG8gKm5vdCogdXNlIG91dHNpZGUgb2YgZHJtX3ByaW50 LltjaF0hICovCiBleHRlcm4gdW5zaWduZWQgaW50IF9fZHJtX2RlYnVnX3N5c2xvZzsKK2V4dGVy biB1bnNpZ25lZCBpbnQgX19kcm1fZGVidWdfdHJhY2U7CiAKIC8qKgogICogRE9DOiBwcmludAog ICoKICAqIEEgc2ltcGxlIHdyYXBwZXIgZm9yIGRldl9wcmludGsoKSwgc2VxX3ByaW50ZigpLCBl dGMuICBBbGxvd3Mgc2FtZQotICogZGVidWcgY29kZSB0byBiZSB1c2VkIGZvciBib3RoIGRlYnVn ZnMgYW5kIHByaW50ayBsb2dnaW5nLgorICogZGVidWcgY29kZSB0byBiZSB1c2VkIGZvciBkZWJ1 Z2ZzLCBwcmludGsgYW5kIHRyYWNlZnMgbG9nZ2luZy4KICAqCiAgKiBGb3IgZXhhbXBsZTo6CiAg KgpAQCAtODYsNiArODcsOSBAQCB2b2lkIF9fZHJtX3ByaW50Zm5fc2VxX2ZpbGUoc3RydWN0IGRy bV9wcmludGVyICpwLCBzdHJ1Y3QgdmFfZm9ybWF0ICp2YWYpOwogdm9pZCBfX2RybV9wdXRzX3Nl cV9maWxlKHN0cnVjdCBkcm1fcHJpbnRlciAqcCwgY29uc3QgY2hhciAqc3RyKTsKIHZvaWQgX19k cm1fcHJpbnRmbl9pbmZvKHN0cnVjdCBkcm1fcHJpbnRlciAqcCwgc3RydWN0IHZhX2Zvcm1hdCAq dmFmKTsKIHZvaWQgX19kcm1fcHJpbnRmbl9kZWJ1Z19zeXNsb2coc3RydWN0IGRybV9wcmludGVy ICpwLCBzdHJ1Y3QgdmFfZm9ybWF0ICp2YWYpOwordm9pZCBfX2RybV9wcmludGZuX3RyYWNlKHN0 cnVjdCBkcm1fcHJpbnRlciAqcCwgc3RydWN0IHZhX2Zvcm1hdCAqdmFmKTsKK3ZvaWQgX19kcm1f cHJpbnRmbl9kZWJ1Z19zeXNsb2dfYW5kX3RyYWNlKHN0cnVjdCBkcm1fcHJpbnRlciAqcCwKKwkJ CQkJICAgc3RydWN0IHZhX2Zvcm1hdCAqdmFmKTsKIHZvaWQgX19kcm1fcHJpbnRmbl9lcnIoc3Ry dWN0IGRybV9wcmludGVyICpwLCBzdHJ1Y3QgdmFfZm9ybWF0ICp2YWYpOwogdm9pZCBfX2RybV9w cmludGZuX25vb3Aoc3RydWN0IGRybV9wcmludGVyICpwLCBzdHJ1Y3QgdmFfZm9ybWF0ICp2YWYp OwogCkBAIC0yMTksNyArMjIzLDggQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX3ByaW50ZXIg ZHJtX2luZm9fcHJpbnRlcihzdHJ1Y3QgZGV2aWNlICpkZXYpCiB9CiAKIC8qKgotICogZHJtX2Rl YnVnX3ByaW50ZXIgLSBjb25zdHJ1Y3QgYSAmZHJtX3ByaW50ZXIgdGhhdCBvdXRwdXRzIHRvIHBy X2RlYnVnKCkKKyAqIGRybV9kZWJ1Z19wcmludGVyIC0gY29uc3RydWN0IGEgJmRybV9wcmludGVy IHRoYXQgb3V0cHV0cyB0byBwcl9kZWJ1ZygpIGFuZAorICogZHJtIHRyYWNlZnMKICAqIEBwcmVm aXg6IGRlYnVnIG91dHB1dCBwcmVmaXgKICAqCiAgKiBSRVRVUk5TOgpAQCAtMjI4LDcgKzIzMyw3 IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGRybV9wcmludGVyIGRybV9pbmZvX3ByaW50ZXIoc3Ry dWN0IGRldmljZSAqZGV2KQogc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX3ByaW50ZXIgZHJtX2Rl YnVnX3ByaW50ZXIoY29uc3QgY2hhciAqcHJlZml4KQogewogCXN0cnVjdCBkcm1fcHJpbnRlciBw ID0gewotCQkucHJpbnRmbiA9IF9fZHJtX3ByaW50Zm5fZGVidWdfc3lzbG9nLAorCQkucHJpbnRm biA9IF9fZHJtX3ByaW50Zm5fZGVidWdfc3lzbG9nX2FuZF90cmFjZSwKIAkJLnByZWZpeCA9IHBy ZWZpeAogCX07CiAJcmV0dXJuIHA7CkBAIC0yNTQsMTQgKzI1OSwxNCBAQCBzdGF0aWMgaW5saW5l IHN0cnVjdCBkcm1fcHJpbnRlciBkcm1fZXJyX3ByaW50ZXIoY29uc3QgY2hhciAqcHJlZml4KQog ICogZW51bSBkcm1fZGVidWdfY2F0ZWdvcnkgLSBUaGUgRFJNIGRlYnVnIGNhdGVnb3JpZXMKICAq CiAgKiBFYWNoIG9mIHRoZSBEUk0gZGVidWcgbG9nZ2luZyBtYWNyb3MgdXNlIGEgc3BlY2lmaWMg Y2F0ZWdvcnksIGFuZCB0aGUgbG9nZ2luZwotICogaXMgZmlsdGVyZWQgYnkgdGhlIGRybS5kZWJ1 ZyBtb2R1bGUgcGFyYW1ldGVyLiBUaGlzIGVudW0gc3BlY2lmaWVzIHRoZSB2YWx1ZXMKLSAqIGZv ciB0aGUgaW50ZXJmYWNlLgorICogaXMgZmlsdGVyZWQgYnkgdGhlIGRybS5kZWJ1ZyBhbmQgZHJt LnRyYWNlIG1vZHVsZSBwYXJhbWV0ZXJzLiBUaGlzIGVudW0KKyAqIHNwZWNpZmllcyB0aGUgdmFs dWVzIGZvciB0aGUgaW50ZXJmYWNlLgogICoKICAqIEVhY2ggRFJNX0RFQlVHXzxDQVRFR09SWT4g bWFjcm8gbG9ncyB0byBEUk1fVVRfPENBVEVHT1JZPiBjYXRlZ29yeSwgZXhjZXB0CiAgKiBEUk1f REVCVUcoKSBsb2dzIHRvIERSTV9VVF9DT1JFLgogICoKLSAqIEVuYWJsaW5nIHZlcmJvc2UgZGVi dWcgbWVzc2FnZXMgaXMgZG9uZSB0aHJvdWdoIHRoZSBkcm0uZGVidWcgcGFyYW1ldGVyLCBlYWNo Ci0gKiBjYXRlZ29yeSBiZWluZyBlbmFibGVkIGJ5IGEgYml0OgorICogRW5hYmxpbmcgdmVyYm9z ZSBkZWJ1ZyBtZXNzYWdlcyBpcyBkb25lIHRocm91Z2ggdGhlIGRybS5kZWJ1ZyBhbmQgZHJtLnRy YWNlCisgKiBwYXJhbWV0ZXJzLCBlYWNoIGNhdGVnb3J5IGJlaW5nIGVuYWJsZWQgYnkgYSBiaXQ6 CiAgKgogICogIC0gZHJtLmRlYnVnPTB4MSB3aWxsIGVuYWJsZSBDT1JFIG1lc3NhZ2VzCiAgKiAg LSBkcm0uZGVidWc9MHgyIHdpbGwgZW5hYmxlIERSSVZFUiBtZXNzYWdlcwpAQCAtMjcwLDEwICsy NzUsMTQgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX3ByaW50ZXIgZHJtX2Vycl9wcmludGVy KGNvbnN0IGNoYXIgKnByZWZpeCkKICAqICAtIGRybS5kZWJ1Zz0weDFmZiB3aWxsIGVuYWJsZSBh bGwgbWVzc2FnZXMKICAqCiAgKiBBbiBpbnRlcmVzdGluZyBmZWF0dXJlIGlzIHRoYXQgaXQncyBw b3NzaWJsZSB0byBlbmFibGUgdmVyYm9zZSBsb2dnaW5nIGF0Ci0gKiBydW4tdGltZSBieSBlY2hv aW5nIHRoZSBkZWJ1ZyB2YWx1ZSBpbiBpdHMgc3lzZnMgbm9kZTo6CisgKiBydW4tdGltZSBieSBl Y2hvaW5nIHRoZSBkZWJ1ZyBjYXRlZ29yeSB2YWx1ZSBpbiBpdHMgc3lzZnMgbm9kZTo6CiAgKgor ICogICAjIEZvciBzeXNsb2cgbG9nZ2luZzoKICAqICAgIyBlY2hvIDB4ZiA+IC9zeXMvbW9kdWxl L2RybS9wYXJhbWV0ZXJzL2RlYnVnCiAgKgorICogICAjIEZvciB0cmFjZWZzIGxvZ2dpbmc6Cisg KiAgICMgZWNobyAweGYgPiAvc3lzL21vZHVsZS9kcm0vcGFyYW1ldGVycy90cmFjZQorICoKICAq LwogZW51bSBkcm1fZGVidWdfY2F0ZWdvcnkgewogCS8qKgpAQCAtMzI1LDE0ICszMzQsMjAgQEAg c3RhdGljIGlubGluZSBib29sIGRybV9kZWJ1Z19zeXNsb2dfZW5hYmxlZChlbnVtIGRybV9kZWJ1 Z19jYXRlZ29yeSBjYXRlZ29yeSkKIAlyZXR1cm4gdW5saWtlbHkoX19kcm1fZGVidWdfc3lzbG9n ICYgY2F0ZWdvcnkpOwogfQogCitzdGF0aWMgaW5saW5lIGJvb2wgZHJtX2RlYnVnX3RyYWNlX2Vu YWJsZWQoZW51bSBkcm1fZGVidWdfY2F0ZWdvcnkgY2F0ZWdvcnkpCit7CisJcmV0dXJuIHVubGlr ZWx5KF9fZHJtX2RlYnVnX3RyYWNlICYgY2F0ZWdvcnkpOworfQorCiBzdGF0aWMgaW5saW5lIGJv b2wgZHJtX2RlYnVnX2VuYWJsZWQoZW51bSBkcm1fZGVidWdfY2F0ZWdvcnkgY2F0ZWdvcnkpCiB7 Ci0JcmV0dXJuIGRybV9kZWJ1Z19zeXNsb2dfZW5hYmxlZChjYXRlZ29yeSk7CisJcmV0dXJuIGRy bV9kZWJ1Z19zeXNsb2dfZW5hYmxlZChjYXRlZ29yeSkgfHwKKwkgICAgICAgZHJtX2RlYnVnX3Ry YWNlX2VuYWJsZWQoY2F0ZWdvcnkpOwogfQogCiAvKioKICAqIGRybV9kZWJ1Z19jYXRlZ29yeV9w cmludGVyIC0gY29uc3RydWN0IGEgJmRybV9wcmludGVyIHRoYXQgb3V0cHV0cyB0bwotICogcHJf ZGVidWcoKSBpZiBlbmFibGVkIGZvciB0aGUgZ2l2ZW4gY2F0ZWdvcnkuCisgKiBwcl9kZWJ1Zygp IGFuZC9vciB0aGUgZHJtIHRyYWNlZnMgaW5zdGFuY2UgaWYgZW5hYmxlZCBmb3IgdGhlIGdpdmVu IGNhdGVnb3J5LgogICogQGNhdGVnb3J5OiB0aGUgRFJNX1VUXyogbWVzc2FnZSBjYXRlZ29yeSB0 aGlzIG1lc3NhZ2UgYmVsb25ncyB0bwogICogQHByZWZpeDogdHJhY2Ugb3V0cHV0IHByZWZpeAog ICoKQEAgLTM0Nyw4ICszNjIsMTMgQEAgZHJtX2RlYnVnX2NhdGVnb3J5X3ByaW50ZXIoZW51bSBk cm1fZGVidWdfY2F0ZWdvcnkgY2F0ZWdvcnksCiAJCS5wcmVmaXggPSBwcmVmaXgKIAl9OwogCi0J aWYgKGRybV9kZWJ1Z19zeXNsb2dfZW5hYmxlZChjYXRlZ29yeSkpIHsKKwlpZiAoZHJtX2RlYnVn X3N5c2xvZ19lbmFibGVkKGNhdGVnb3J5KSAmJgorCSAgICBkcm1fZGVidWdfdHJhY2VfZW5hYmxl ZChjYXRlZ29yeSkpIHsKKwkJcC5wcmludGZuID0gX19kcm1fcHJpbnRmbl9kZWJ1Z19zeXNsb2df YW5kX3RyYWNlOworCX0gZWxzZSBpZiAoZHJtX2RlYnVnX3N5c2xvZ19lbmFibGVkKGNhdGVnb3J5 KSkgewogCQlwLnByaW50Zm4gPSBfX2RybV9wcmludGZuX2RlYnVnX3N5c2xvZzsKKwl9IGVsc2Ug aWYgKGRybV9kZWJ1Z190cmFjZV9lbmFibGVkKGNhdGVnb3J5KSkgeworCQlwLnByaW50Zm4gPSBf X2RybV9wcmludGZuX3RyYWNlOwogCX0gZWxzZSB7CiAJCVdBUk4oMSwgIkRlYnVnIGNhdGVnb3J5 ICVkIGlzIGluYWN0aXZlLiIsIGNhdGVnb3J5KTsKIAkJcC5wcmludGZuID0gX19kcm1fcHJpbnRm bl9ub29wOwpAQCAtMzU3LDYgKzM3NywyNyBAQCBkcm1fZGVidWdfY2F0ZWdvcnlfcHJpbnRlcihl bnVtIGRybV9kZWJ1Z19jYXRlZ29yeSBjYXRlZ29yeSwKIAlyZXR1cm4gcDsKIH0KIAorCisjaWZk ZWYgQ09ORklHX1RSQUNJTkcKK3ZvaWQgZHJtX3RyYWNlX2luaXQodm9pZCk7CitfX3ByaW50Zigx LCAyKQordm9pZCBkcm1fdHJhY2VfcHJpbnRmKGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKTsKK3Zv aWQgZHJtX3RyYWNlX2NsZWFudXAodm9pZCk7CisjZWxzZQorc3RhdGljIGlubGluZSB2b2lkIGRy bV90cmFjZV9pbml0KHZvaWQpCit7Cit9CisKK19fcHJpbnRmKDEsIDIpCitzdGF0aWMgaW5saW5l IHZvaWQgZHJtX3RyYWNlX3ByaW50Zihjb25zdCBjaGFyICpmb3JtYXQsIC4uLikKK3sKK30KKwor c3RhdGljIGlubGluZSB2b2lkIGRybV90cmFjZV9jbGVhbnVwKHZvaWQpCit7Cit9CisjZW5kaWYK KwogLyoKICAqIHN0cnVjdCBkZXZpY2UgYmFzZWQgbG9nZ2luZwogICoKLS0gClNlYW4gUGF1bCwg U29mdHdhcmUgRW5naW5lZXIsIEdvb2dsZSAvIENocm9taXVtIE9TCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK