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=-12.5 required=3.0 tests=BAYES_00,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 393B5C64E7C for ; Wed, 21 Oct 2020 08:57:37 +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 E3E262242E for ; Wed, 21 Oct 2020 08:57:36 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="AP3b3bdk" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E3E262242E Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch 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 6836D6F47F; Wed, 21 Oct 2020 08:57:31 +0000 (UTC) Received: from mail-wm1-x343.google.com (mail-wm1-x343.google.com [IPv6:2a00:1450:4864:20::343]) by gabe.freedesktop.org (Postfix) with ESMTPS id 96B186F478 for ; Wed, 21 Oct 2020 08:57:24 +0000 (UTC) Received: by mail-wm1-x343.google.com with SMTP id e2so897842wme.1 for ; Wed, 21 Oct 2020 01:57:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=aBoKTxegCiMYpxvTLEwc8TlAefYzlvknZWTRI+Ydh8I=; b=AP3b3bdkrID/KzaTVFRe8yBWzxffBpMqEa8a/66Ihilc4X7chTOpPOcej7sCOj+Zmt uzZeTjVCQkjuk94tL2aloAYPRayTO1ekFtKuyvSI6Xc6NufbKHJpmlQtGBsN9hxcDphF /X6xa2Ycv9n8gk1zd9bL3dybzHcth4xgH0H8U= 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=aBoKTxegCiMYpxvTLEwc8TlAefYzlvknZWTRI+Ydh8I=; b=FEMCeVuJ6z9PzWGAL/Xl/9JniJonNSbhDDuq5FoJBkaC9QfIvuUMRLaDzNv0TgJSlo 07vaK+10je550Pm4449EVWFU2JQP53oy0zRmB1Wb2djvbkEw6fkRCIvgLTOA41x1JQJ2 1+ELICBs9ICCM/7IITFesmm9Q5Jt3IAtKGnFVVMqF31HYTbg3wF45NK5GskW6z1i2HD/ 4DnbUEAG+6/Fx6/nq884xtZCJfwXd2D/FRIQsgSuukhsOxvUU5FgzmGVst2ILPNiDI6m SIYHpJK/tmczx/gR+CNtg0q3H9XLzCwQ0bSrJl481SwYWbLJBTRcokWoQrjEbeiavYqJ mO9w== X-Gm-Message-State: AOAM533TQl7BJ5dvJgXjRM6hMajabVXY2tk08qrsvwXKZf2lG2d2zozV p2E/rN1kNdcphVQY+BFSZPPxgKR7qH5X0lPy X-Google-Smtp-Source: ABdhPJwf3DZZ9c6oKZg142+XtjY48SrUmrnpyP2WRRwtm3wxB8XXhaXev63lW8+C3ftX+U8SPjKoUQ== X-Received: by 2002:a1c:3103:: with SMTP id x3mr2427324wmx.107.1603270642920; Wed, 21 Oct 2020 01:57:22 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id q8sm2675939wro.32.2020.10.21.01.57.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Oct 2020 01:57:22 -0700 (PDT) From: Daniel Vetter To: DRI Development , LKML Subject: [PATCH v3 14/16] resource: Move devmem revoke code to resource framework Date: Wed, 21 Oct 2020 10:56:53 +0200 Message-Id: <20201021085655.1192025-15-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201021085655.1192025-1-daniel.vetter@ffwll.ch> References: <20201021085655.1192025-1-daniel.vetter@ffwll.ch> 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-s390@vger.kernel.org, linux-samsung-soc@vger.kernel.org, Jan Kara , Kees Cook , kvm@vger.kernel.org, Jason Gunthorpe , Daniel Vetter , David Hildenbrand , Daniel Vetter , "Rafael J. Wysocki" , linux-mm@kvack.org, =?UTF-8?q?J=C3=A9r=C3=B4me=20Glisse?= , Arnd Bergmann , John Hubbard , Greg Kroah-Hartman , Daniel Vetter , Dan Williams , Andrew Morton , linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" V2Ugd2FudCBhbGwgaW9tZW0gbW1hcHMgdG8gY29uc2lzdGVudGx5IHJldm9rZSBwdGVzIHdoZW4g dGhlIGtlcm5lbAp0YWtlcyBvdmVyIGFuZCBDT05GSUdfSU9fU1RSSUNUX0RFVk1FTSBpcyBlbmFi bGVkLiBUaGlzIGluY2x1ZGVzIHRoZQpwY2kgYmFyIG1tYXBzIGF2YWlsYWJsZSB0aHJvdWdoIHBy b2NmcyBhbmQgc3lzZnMsIHdoaWNoIGN1cnJlbnRseSBkbwpub3QgcmV2b2tlIG1hcHBpbmdzLgoK VG8gcHJlcGFyZSBmb3IgdGhpcywgbW92ZSB0aGUgY29kZSBmcm9tIHRoZSAvZGV2L2ttZW0gZHJp dmVyIHRvCmtlcm5lbC9yZXNvdXJjZS5jLgoKUmV2aWV3ZWQtYnk6IEdyZWcgS3JvYWgtSGFydG1h biA8Z3JlZ2toQGxpbnV4Zm91bmRhdGlvbi5vcmc+ClNpZ25lZC1vZmYtYnk6IERhbmllbCBWZXR0 ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwuY29tPgpDYzogSmFzb24gR3VudGhvcnBlIDxqZ2dAemll cGUuY2E+CkNjOiBLZWVzIENvb2sgPGtlZXNjb29rQGNocm9taXVtLm9yZz4KQ2M6IERhbiBXaWxs aWFtcyA8ZGFuLmoud2lsbGlhbXNAaW50ZWwuY29tPgpDYzogQW5kcmV3IE1vcnRvbiA8YWtwbUBs aW51eC1mb3VuZGF0aW9uLm9yZz4KQ2M6IEpvaG4gSHViYmFyZCA8amh1YmJhcmRAbnZpZGlhLmNv bT4KQ2M6IErDqXLDtG1lIEdsaXNzZSA8amdsaXNzZUByZWRoYXQuY29tPgpDYzogSmFuIEthcmEg PGphY2tAc3VzZS5jej4KQ2M6IERhbiBXaWxsaWFtcyA8ZGFuLmoud2lsbGlhbXNAaW50ZWwuY29t PgpDYzogbGludXgtbW1Aa3ZhY2sub3JnCkNjOiBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJh ZGVhZC5vcmcKQ2M6IGxpbnV4LXNhbXN1bmctc29jQHZnZXIua2VybmVsLm9yZwpDYzogbGludXgt bWVkaWFAdmdlci5rZXJuZWwub3JnCkNjOiBBcm5kIEJlcmdtYW5uIDxhcm5kQGFybmRiLmRlPgpD YzogR3JlZyBLcm9haC1IYXJ0bWFuIDxncmVna2hAbGludXhmb3VuZGF0aW9uLm9yZz4KQ2M6IERh bmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+CkNjOiBEYXZpZCBIaWxkZW5icmFu ZCA8ZGF2aWRAcmVkaGF0LmNvbT4KQ2M6ICJSYWZhZWwgSi4gV3lzb2NraSIgPHJhZmFlbC5qLnd5 c29ja2lAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0 dGVyQGZmd2xsLmNvbT4KLS0KdjM6Ci0gYWRkIGJhcnJpZXIgZm9yIGNvbnNpc3RlbmN5IGFuZCBk b2N1bWVudCB3aHkgd2UgZG9uJ3QgaGF2ZSB0byBjaGVjawogIGZvciBOVUxMIChKYXNvbikKLS0t CiBkcml2ZXJzL2NoYXIvbWVtLmMgICAgIHwgIDg1ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KIGluY2x1ZGUvbGludXgvaW9wb3J0LmggfCAgIDYgKy0tCiBrZXJuZWwvcmVzb3Vy Y2UuYyAgICAgIHwgMTAxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst CiAzIGZpbGVzIGNoYW5nZWQsIDEwMiBpbnNlcnRpb25zKCspLCA5MCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvbWVtLmMgYi9kcml2ZXJzL2NoYXIvbWVtLmMKaW5kZXgg NTUwMmY1NmYzNjU1Li41MzMzOGFhZDhkMjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9tZW0u YworKysgYi9kcml2ZXJzL2NoYXIvbWVtLmMKQEAgLTMxLDkgKzMxLDYgQEAKICNpbmNsdWRlIDxs aW51eC91aW8uaD4KICNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CiAjaW5jbHVkZSA8bGludXgv c2VjdXJpdHkuaD4KLSNpbmNsdWRlIDxsaW51eC9wc2V1ZG9fZnMuaD4KLSNpbmNsdWRlIDx1YXBp L2xpbnV4L21hZ2ljLmg+Ci0jaW5jbHVkZSA8bGludXgvbW91bnQuaD4KIAogI2lmZGVmIENPTkZJ R19JQTY0CiAjIGluY2x1ZGUgPGxpbnV4L2VmaS5oPgpAQCAtODA5LDQyICs4MDYsNiBAQCBzdGF0 aWMgbG9mZl90IG1lbW9yeV9sc2VlayhzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwg aW50IG9yaWcpCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIHN0cnVjdCBpbm9kZSAqZGV2bWVt X2lub2RlOwotCi0jaWZkZWYgQ09ORklHX0lPX1NUUklDVF9ERVZNRU0KLXZvaWQgcmV2b2tlX2Rl dm1lbShzdHJ1Y3QgcmVzb3VyY2UgKnJlcykKLXsKLQkvKiBwYWlycyB3aXRoIHNtcF9zdG9yZV9y ZWxlYXNlKCkgaW4gZGV2bWVtX2luaXRfaW5vZGUoKSAqLwotCXN0cnVjdCBpbm9kZSAqaW5vZGUg PSBzbXBfbG9hZF9hY3F1aXJlKCZkZXZtZW1faW5vZGUpOwotCi0JLyoKLQkgKiBDaGVjayB0aGF0 IHRoZSBpbml0aWFsaXphdGlvbiBoYXMgY29tcGxldGVkLiBMb3NpbmcgdGhlIHJhY2UKLQkgKiBp cyBvayBiZWNhdXNlIGl0IG1lYW5zIGRyaXZlcnMgYXJlIGNsYWltaW5nIHJlc291cmNlcyBiZWZv cmUKLQkgKiB0aGUgZnNfaW5pdGNhbGwgbGV2ZWwgb2YgaW5pdCBhbmQgcHJldmVudCAvZGV2L21l bSBmcm9tCi0JICogZXN0YWJsaXNoaW5nIG1hcHBpbmdzLgotCSAqLwotCWlmICghaW5vZGUpCi0J CXJldHVybjsKLQotCS8qCi0JICogVGhlIGV4cGVjdGF0aW9uIGlzIHRoYXQgdGhlIGRyaXZlciBo YXMgc3VjY2Vzc2Z1bGx5IG1hcmtlZAotCSAqIHRoZSByZXNvdXJjZSBidXN5IGJ5IHRoaXMgcG9p bnQsIHNvIGRldm1lbV9pc19hbGxvd2VkKCkKLQkgKiBzaG91bGQgc3RhcnQgcmV0dXJuaW5nIGZh bHNlLCBob3dldmVyIGZvciBwZXJmb3JtYW5jZSB0aGlzCi0JICogZG9lcyBub3QgaXRlcmF0ZSB0 aGUgZW50aXJlIHJlc291cmNlIHJhbmdlLgotCSAqLwotCWlmIChkZXZtZW1faXNfYWxsb3dlZChQ SFlTX1BGTihyZXMtPnN0YXJ0KSkgJiYKLQkgICAgZGV2bWVtX2lzX2FsbG93ZWQoUEhZU19QRk4o cmVzLT5lbmQpKSkgewotCQkvKgotCQkgKiAqY3JpbmdlKiBpb21lbT1yZWxheGVkIHNheXMgImdv IGFoZWFkLCB3aGF0J3MgdGhlCi0JCSAqIHdvcnN0IHRoYXQgY2FuIGhhcHBlbj8iCi0JCSAqLwot CQlyZXR1cm47Ci0JfQotCi0JdW5tYXBfbWFwcGluZ19yYW5nZShpbm9kZS0+aV9tYXBwaW5nLCBy ZXMtPnN0YXJ0LCByZXNvdXJjZV9zaXplKHJlcyksIDEpOwotfQotI2VuZGlmCi0KIHN0YXRpYyBp bnQgb3Blbl9wb3J0KHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQogewog CWludCByYzsKQEAgLTg2NCw3ICs4MjUsNyBAQCBzdGF0aWMgaW50IG9wZW5fcG9ydChzdHJ1Y3Qg aW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKIAkgKiByZXZvY2F0aW9ucyB3aGVuIGRy aXZlcnMgd2FudCB0byB0YWtlIG92ZXIgYSAvZGV2L21lbSBtYXBwZWQKIAkgKiByYW5nZS4KIAkg Ki8KLQlmaWxwLT5mX21hcHBpbmcgPSBpbm9kZS0+aV9tYXBwaW5nOworCWZpbHAtPmZfbWFwcGlu ZyA9IGlvbWVtX2dldF9tYXBwaW5nKCk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTk5NSw0OCArOTU2 LDYgQEAgc3RhdGljIGNoYXIgKm1lbV9kZXZub2RlKHN0cnVjdCBkZXZpY2UgKmRldiwgdW1vZGVf dCAqbW9kZSkKIAogc3RhdGljIHN0cnVjdCBjbGFzcyAqbWVtX2NsYXNzOwogCi1zdGF0aWMgaW50 IGRldm1lbV9mc19pbml0X2ZzX2NvbnRleHQoc3RydWN0IGZzX2NvbnRleHQgKmZjKQotewotCXJl dHVybiBpbml0X3BzZXVkbyhmYywgREVWTUVNX01BR0lDKSA/IDAgOiAtRU5PTUVNOwotfQotCi1z dGF0aWMgc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgZGV2bWVtX2ZzX3R5cGUgPSB7Ci0JLm5hbWUJ CT0gImRldm1lbSIsCi0JLm93bmVyCQk9IFRISVNfTU9EVUxFLAotCS5pbml0X2ZzX2NvbnRleHQg PSBkZXZtZW1fZnNfaW5pdF9mc19jb250ZXh0LAotCS5raWxsX3NiCT0ga2lsbF9hbm9uX3N1cGVy LAotfTsKLQotc3RhdGljIGludCBkZXZtZW1faW5pdF9pbm9kZSh2b2lkKQotewotCXN0YXRpYyBz dHJ1Y3QgdmZzbW91bnQgKmRldm1lbV92ZnNfbW91bnQ7Ci0Jc3RhdGljIGludCBkZXZtZW1fZnNf Y250OwotCXN0cnVjdCBpbm9kZSAqaW5vZGU7Ci0JaW50IHJjOwotCi0JcmMgPSBzaW1wbGVfcGlu X2ZzKCZkZXZtZW1fZnNfdHlwZSwgJmRldm1lbV92ZnNfbW91bnQsICZkZXZtZW1fZnNfY250KTsK LQlpZiAocmMgPCAwKSB7Ci0JCXByX2VycigiQ2Fubm90IG1vdW50IC9kZXYvbWVtIHBzZXVkbyBm aWxlc3lzdGVtOiAlZFxuIiwgcmMpOwotCQlyZXR1cm4gcmM7Ci0JfQotCi0JaW5vZGUgPSBhbGxv Y19hbm9uX2lub2RlKGRldm1lbV92ZnNfbW91bnQtPm1udF9zYik7Ci0JaWYgKElTX0VSUihpbm9k ZSkpIHsKLQkJcmMgPSBQVFJfRVJSKGlub2RlKTsKLQkJcHJfZXJyKCJDYW5ub3QgYWxsb2NhdGUg aW5vZGUgZm9yIC9kZXYvbWVtOiAlZFxuIiwgcmMpOwotCQlzaW1wbGVfcmVsZWFzZV9mcygmZGV2 bWVtX3Zmc19tb3VudCwgJmRldm1lbV9mc19jbnQpOwotCQlyZXR1cm4gcmM7Ci0JfQotCi0JLyoK LQkgKiBQdWJsaXNoIC9kZXYvbWVtIGluaXRpYWxpemVkLgotCSAqIFBhaXJzIHdpdGggc21wX2xv YWRfYWNxdWlyZSgpIGluIHJldm9rZV9kZXZtZW0oKS4KLQkgKi8KLQlzbXBfc3RvcmVfcmVsZWFz ZSgmZGV2bWVtX2lub2RlLCBpbm9kZSk7Ci0KLQlyZXR1cm4gMDsKLX0KLQogc3RhdGljIGludCBf X2luaXQgY2hyX2Rldl9pbml0KHZvaWQpCiB7CiAJaW50IG1pbm9yOwpAQCAtMTA1OCw4ICs5Nzcs NiBAQCBzdGF0aWMgaW50IF9faW5pdCBjaHJfZGV2X2luaXQodm9pZCkKIAkJICovCiAJCWlmICgo bWlub3IgPT0gREVWUE9SVF9NSU5PUikgJiYgIWFyY2hfaGFzX2Rldl9wb3J0KCkpCiAJCQljb250 aW51ZTsKLQkJaWYgKChtaW5vciA9PSBERVZNRU1fTUlOT1IpICYmIGRldm1lbV9pbml0X2lub2Rl KCkgIT0gMCkKLQkJCWNvbnRpbnVlOwogCiAJCWRldmljZV9jcmVhdGUobWVtX2NsYXNzLCBOVUxM LCBNS0RFVihNRU1fTUFKT1IsIG1pbm9yKSwKIAkJCSAgICAgIE5VTEwsIGRldmxpc3RbbWlub3Jd Lm5hbWUpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pb3BvcnQuaCBiL2luY2x1ZGUvbGlu dXgvaW9wb3J0LmgKaW5kZXggNmMyYjA2ZmU4YmViLi44ZmZiNjFiMzY2MDYgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvbGludXgvaW9wb3J0LmgKKysrIGIvaW5jbHVkZS9saW51eC9pb3BvcnQuaApAQCAt MzAyLDExICszMDIsNyBAQCBzdHJ1Y3QgcmVzb3VyY2UgKmRldm1fcmVxdWVzdF9mcmVlX21lbV9y ZWdpb24oc3RydWN0IGRldmljZSAqZGV2LAogc3RydWN0IHJlc291cmNlICpyZXF1ZXN0X2ZyZWVf bWVtX3JlZ2lvbihzdHJ1Y3QgcmVzb3VyY2UgKmJhc2UsCiAJCXVuc2lnbmVkIGxvbmcgc2l6ZSwg Y29uc3QgY2hhciAqbmFtZSk7CiAKLSNpZmRlZiBDT05GSUdfSU9fU1RSSUNUX0RFVk1FTQotdm9p ZCByZXZva2VfZGV2bWVtKHN0cnVjdCByZXNvdXJjZSAqcmVzKTsKLSNlbHNlCi1zdGF0aWMgaW5s aW5lIHZvaWQgcmV2b2tlX2Rldm1lbShzdHJ1Y3QgcmVzb3VyY2UgKnJlcykgeyB9OwotI2VuZGlm CitleHRlcm4gc3RydWN0IGFkZHJlc3Nfc3BhY2UgKmlvbWVtX2dldF9tYXBwaW5nKHZvaWQpOwog CiAjZW5kaWYgLyogX19BU1NFTUJMWV9fICovCiAjZW5kaWYJLyogX0xJTlVYX0lPUE9SVF9IICov CmRpZmYgLS1naXQgYS9rZXJuZWwvcmVzb3VyY2UuYyBiL2tlcm5lbC9yZXNvdXJjZS5jCmluZGV4 IDg0MTczN2JiZGE5ZS4uYTkyZmVkNWI5OTk3IDEwMDY0NAotLS0gYS9rZXJuZWwvcmVzb3VyY2Uu YworKysgYi9rZXJuZWwvcmVzb3VyY2UuYwpAQCAtMTgsMTIgKzE4LDE1IEBACiAjaW5jbHVkZSA8 bGludXgvc3BpbmxvY2suaD4KICNpbmNsdWRlIDxsaW51eC9mcy5oPgogI2luY2x1ZGUgPGxpbnV4 L3Byb2NfZnMuaD4KKyNpbmNsdWRlIDxsaW51eC9wc2V1ZG9fZnMuaD4KICNpbmNsdWRlIDxsaW51 eC9zY2hlZC5oPgogI2luY2x1ZGUgPGxpbnV4L3NlcV9maWxlLmg+CiAjaW5jbHVkZSA8bGludXgv ZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvcGZuLmg+CiAjaW5jbHVkZSA8bGludXgvbW0uaD4K KyNpbmNsdWRlIDxsaW51eC9tb3VudC5oPgogI2luY2x1ZGUgPGxpbnV4L3Jlc291cmNlX2V4dC5o PgorI2luY2x1ZGUgPHVhcGkvbGludXgvbWFnaWMuaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KIAog CkBAIC0xMTEyLDYgKzExMTUsNTggQEAgcmVzb3VyY2Vfc2l6ZV90IHJlc291cmNlX2FsaWdubWVu dChzdHJ1Y3QgcmVzb3VyY2UgKnJlcykKIAogc3RhdGljIERFQ0xBUkVfV0FJVF9RVUVVRV9IRUFE KG11eGVkX3Jlc291cmNlX3dhaXQpOwogCitzdGF0aWMgc3RydWN0IGlub2RlICppb21lbV9pbm9k ZTsKKworI2lmZGVmIENPTkZJR19JT19TVFJJQ1RfREVWTUVNCitzdGF0aWMgdm9pZCByZXZva2Vf aW9tZW0oc3RydWN0IHJlc291cmNlICpyZXMpCit7CisJLyogcGFpcnMgd2l0aCBzbXBfc3RvcmVf cmVsZWFzZSgpIGluIGlvbWVtX2luaXRfaW5vZGUoKSAqLworCXN0cnVjdCBpbm9kZSAqaW5vZGUg PSBzbXBfbG9hZF9hY3F1aXJlKCZpb21lbV9pbm9kZSk7CisKKwkvKgorCSAqIENoZWNrIHRoYXQg dGhlIGluaXRpYWxpemF0aW9uIGhhcyBjb21wbGV0ZWQuIExvc2luZyB0aGUgcmFjZQorCSAqIGlz IG9rIGJlY2F1c2UgaXQgbWVhbnMgZHJpdmVycyBhcmUgY2xhaW1pbmcgcmVzb3VyY2VzIGJlZm9y ZQorCSAqIHRoZSBmc19pbml0Y2FsbCBsZXZlbCBvZiBpbml0IGFuZCBwcmV2ZW50IC9kZXYvbWVt IGZyb20KKwkgKiBlc3RhYmxpc2hpbmcgbWFwcGluZ3MuCisJICovCisJaWYgKCFpbm9kZSkKKwkJ cmV0dXJuOworCisJLyoKKwkgKiBUaGUgZXhwZWN0YXRpb24gaXMgdGhhdCB0aGUgZHJpdmVyIGhh cyBzdWNjZXNzZnVsbHkgbWFya2VkCisJICogdGhlIHJlc291cmNlIGJ1c3kgYnkgdGhpcyBwb2lu dCwgc28gZGV2bWVtX2lzX2FsbG93ZWQoKQorCSAqIHNob3VsZCBzdGFydCByZXR1cm5pbmcgZmFs c2UsIGhvd2V2ZXIgZm9yIHBlcmZvcm1hbmNlIHRoaXMKKwkgKiBkb2VzIG5vdCBpdGVyYXRlIHRo ZSBlbnRpcmUgcmVzb3VyY2UgcmFuZ2UuCisJICovCisJaWYgKGRldm1lbV9pc19hbGxvd2VkKFBI WVNfUEZOKHJlcy0+c3RhcnQpKSAmJgorCSAgICBkZXZtZW1faXNfYWxsb3dlZChQSFlTX1BGTihy ZXMtPmVuZCkpKSB7CisJCS8qCisJCSAqICpjcmluZ2UqIGlvbWVtPXJlbGF4ZWQgc2F5cyAiZ28g YWhlYWQsIHdoYXQncyB0aGUKKwkJICogd29yc3QgdGhhdCBjYW4gaGFwcGVuPyIKKwkJICovCisJ CXJldHVybjsKKwl9CisKKwl1bm1hcF9tYXBwaW5nX3JhbmdlKGlub2RlLT5pX21hcHBpbmcsIHJl cy0+c3RhcnQsIHJlc291cmNlX3NpemUocmVzKSwgMSk7Cit9CitzdHJ1Y3QgYWRkcmVzc19zcGFj ZSAqaW9tZW1fZ2V0X21hcHBpbmcodm9pZCkKK3sKKwkvKgorCSAqIFRoaXMgZnVuY3Rpb24gaXMg b25seSBjYWxsZWQgZnJvbSBmaWxlIG9wZW4gcGF0aHMsIGhlbmNlIGd1YXJhbnRlZWQKKwkgKiB0 aGF0IGZzX2luaXRjYWxscyBoYXZlIGNvbXBsZXRlZCBhbmQgbm8gbmVlZCB0byBjaGVjayBmb3Ig TlVMTC4gQnV0CisJICogc2luY2UgcmV2b2tlX2lvbWVtIGNhbiBiZSBjYWxsZWQgYmVmb3JlIHRo ZSBpbml0Y2FsbCB3ZSBzdGlsbCBuZWVkCisJICogdGhlIGJhcnJpZXIgdG8gYXBwZWFzZSBjaGVj a2Vycy4KKwkgKi8KKwlyZXR1cm4gc21wX2xvYWRfYWNxdWlyZSgmaW9tZW1faW5vZGUpLT5pX21h cHBpbmc7Cit9CisjZWxzZQorc3RhdGljIHZvaWQgcmV2b2tlX2lvbWVtKHN0cnVjdCByZXNvdXJj ZSAqcmVzKSB7fQorc3RydWN0IGFkZHJlc3Nfc3BhY2UgKmlvbWVtX2dldF9tYXBwaW5nKHZvaWQp Cit7CisJcmV0dXJuIE5VTEw7Cit9CisjZW5kaWYKKwogLyoqCiAgKiBfX3JlcXVlc3RfcmVnaW9u IC0gY3JlYXRlIGEgbmV3IGJ1c3kgcmVzb3VyY2UgcmVnaW9uCiAgKiBAcGFyZW50OiBwYXJlbnQg cmVzb3VyY2UgZGVzY3JpcHRvcgpAQCAtMTE3OSw3ICsxMjM0LDcgQEAgc3RydWN0IHJlc291cmNl ICogX19yZXF1ZXN0X3JlZ2lvbihzdHJ1Y3QgcmVzb3VyY2UgKnBhcmVudCwKIAl3cml0ZV91bmxv Y2soJnJlc291cmNlX2xvY2spOwogCiAJaWYgKHJlcyAmJiBvcmlnX3BhcmVudCA9PSAmaW9tZW1f cmVzb3VyY2UpCi0JCXJldm9rZV9kZXZtZW0ocmVzKTsKKwkJcmV2b2tlX2lvbWVtKHJlcyk7CiAK IAlyZXR1cm4gcmVzOwogfQpAQCAtMTcxMyw0ICsxNzY4LDQ4IEBAIHN0YXRpYyBpbnQgX19pbml0 IHN0cmljdF9pb21lbShjaGFyICpzdHIpCiAJcmV0dXJuIDE7CiB9CiAKK3N0YXRpYyBpbnQgaW9t ZW1fZnNfaW5pdF9mc19jb250ZXh0KHN0cnVjdCBmc19jb250ZXh0ICpmYykKK3sKKwlyZXR1cm4g aW5pdF9wc2V1ZG8oZmMsIERFVk1FTV9NQUdJQykgPyAwIDogLUVOT01FTTsKK30KKworc3RhdGlj IHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlIGlvbWVtX2ZzX3R5cGUgPSB7CisJLm5hbWUJCT0gImlv bWVtIiwKKwkub3duZXIJCT0gVEhJU19NT0RVTEUsCisJLmluaXRfZnNfY29udGV4dCA9IGlvbWVt X2ZzX2luaXRfZnNfY29udGV4dCwKKwkua2lsbF9zYgk9IGtpbGxfYW5vbl9zdXBlciwKK307CisK K3N0YXRpYyBpbnQgX19pbml0IGlvbWVtX2luaXRfaW5vZGUodm9pZCkKK3sKKwlzdGF0aWMgc3Ry dWN0IHZmc21vdW50ICppb21lbV92ZnNfbW91bnQ7CisJc3RhdGljIGludCBpb21lbV9mc19jbnQ7 CisJc3RydWN0IGlub2RlICppbm9kZTsKKwlpbnQgcmM7CisKKwlyYyA9IHNpbXBsZV9waW5fZnMo JmlvbWVtX2ZzX3R5cGUsICZpb21lbV92ZnNfbW91bnQsICZpb21lbV9mc19jbnQpOworCWlmIChy YyA8IDApIHsKKwkJcHJfZXJyKCJDYW5ub3QgbW91bnQgaW9tZW0gcHNldWRvIGZpbGVzeXN0ZW06 ICVkXG4iLCByYyk7CisJCXJldHVybiByYzsKKwl9CisKKwlpbm9kZSA9IGFsbG9jX2Fub25faW5v ZGUoaW9tZW1fdmZzX21vdW50LT5tbnRfc2IpOworCWlmIChJU19FUlIoaW5vZGUpKSB7CisJCXJj ID0gUFRSX0VSUihpbm9kZSk7CisJCXByX2VycigiQ2Fubm90IGFsbG9jYXRlIGlub2RlIGZvciBp b21lbTogJWRcbiIsIHJjKTsKKwkJc2ltcGxlX3JlbGVhc2VfZnMoJmlvbWVtX3Zmc19tb3VudCwg JmlvbWVtX2ZzX2NudCk7CisJCXJldHVybiByYzsKKwl9CisKKwkvKgorCSAqIFB1Ymxpc2ggL2Rl di9tZW0gaW5pdGlhbGl6ZWQuCisJICogUGFpcnMgd2l0aCBzbXBfbG9hZF9hY3F1aXJlKCkgaW4g cmV2b2tlX2lvbWVtKCkuCisJICovCisJc21wX3N0b3JlX3JlbGVhc2UoJmlvbWVtX2lub2RlLCBp bm9kZSk7CisKKwlyZXR1cm4gMDsKK30KKworZnNfaW5pdGNhbGwoaW9tZW1faW5pdF9pbm9kZSk7 CisKIF9fc2V0dXAoImlvbWVtPSIsIHN0cmljdF9pb21lbSk7Ci0tIAoyLjI4LjAKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=