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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4539FC433F5 for ; Fri, 29 Apr 2022 20:42:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:From:Subject:References: Mime-Version:Message-Id:In-Reply-To:Date:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=OllBhxKcCtjw9XqaQIRPRYitI4y6CG/c5PvEcr2UcBw=; b=eB8FM1tlKDJpndbxeYlpTfEhCr jnZYV/W6mqSM+C2bqTFZzjv836dbjIw+ZYWuF27uSoN98LODqx+y28w0Z2Wh0AQLSVaTEmD1Pljin FuO+mfckmcWQIrpP49zgkja78OqFW1iNS1/Z4jkAObN28mHrp3Vg1ffGtA4oHXkqfRUvY1+oEuHVB 8xcXJ6N0wCaFt7rjUvuhvBq6x/xBp9vj/M0A49MdpeRIsl0vDvfQh6siFlKSFnL4UGPjNfVmKRV+s xinlPZSDalGDRdfDGaO8JTohoUi+8hYLs5DRnUEtelNj4nxAZ9FxLjZye9iO2uGhQwKmfM4s9FoLB DulnAOFg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nkXQD-00CYjv-Ox; Fri, 29 Apr 2022 20:41:02 +0000 Received: from mail-yw1-x1149.google.com ([2607:f8b0:4864:20::1149]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nkXMN-00CX7y-VN for linux-arm-kernel@lists.infradead.org; Fri, 29 Apr 2022 20:37:08 +0000 Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-2f4dfd09d7fso84976647b3.0 for ; Fri, 29 Apr 2022 13:37:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc:content-transfer-encoding; bh=vvdIaJf57HGaDpMnbrJ8giqLRUU+BTS8OjFrmaz2vTE=; b=pp5ZuqtMoctSU0CirU7eAqTG/TJOM0spnINt8Gjn3TLZaHntxQdntxMbG6AC9Ytn1A YbobImxlpkDKOtCc7p+HUcjkX6xeFPx/DEbzlgXaBCLyH85pOtUO5AjwtRLJ5v32iDgF GOxVmU9+KLnarIhguwlaAcJMXLCHb/CIIQn5HllZfWoEDWIMA9Dkq2G1E64CEeOFgP/U 8lRGqsLZUoDl9j6+7EG0KVET8D+nRVZ9/GAPoDTb0VvTkSklhvkSLnv3DwQ3HD+kRcY5 VrykuvxxspP2ULayXxAZ1mjo3k7ttqlSFX+HHy88dA/a3EhnXPGJv5NH9Tm80twX9v1Q sg6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc:content-transfer-encoding; bh=vvdIaJf57HGaDpMnbrJ8giqLRUU+BTS8OjFrmaz2vTE=; b=Y1Ne3bSNILhJ6lamKeqs5h9k66suiGJG1w/XabxJTcWCdzt0Tsm57yPIRwuIix0JWp QQJpQMOoXLqt5ETEA35GIzqY+FeVlbNZeO2Kj21POrMjmKjt72iz/zH/QMnWYRq8JR7U whOWOaQX6BxCWT4F4l/uGohF9LuPH/KJBbRQVV1zV9vOiKGRp7rnVwQfgi+XozJWZO5F Ufe9mkbYo0IM1eRRI5nLfo4fURVUFpQCRC/jsf38Qre0YZr+y8AnN2oK2GOacW9ZEbWW RaboAV1JIH/TXuN6rvp8fFA9BVQO1jnuclaMca+dN0+z3H7jWPPJIYEgZJ7GlIsk4a9L C98Q== X-Gm-Message-State: AOAM533X9qUStDqTSBV4CdpCy1oTT9YG+SYPbu8rJR/+lgamUsWqWJiL aDJW/DL5ryruJpx56RbbNTjx2WpOmuiyj6rVeeM= X-Google-Smtp-Source: ABdhPJzK+TM3mWgJX5Du5pYGBn42fe+Iz5sXydBvEX3gH6bzFZSppJYXAmv+vNiXUVCsvdPo/kBBgKk9tLQAOWDp42s= X-Received: from samitolvanen1.mtv.corp.google.com ([2620:15c:201:2:351:bea9:f158:1021]) (user=samitolvanen job=sendgmr) by 2002:a05:6902:390:b0:645:7d46:f1db with SMTP id f16-20020a056902039000b006457d46f1dbmr1280096ybs.85.1651264622333; Fri, 29 Apr 2022 13:37:02 -0700 (PDT) Date: Fri, 29 Apr 2022 13:36:29 -0700 In-Reply-To: <20220429203644.2868448-1-samitolvanen@google.com> Message-Id: <20220429203644.2868448-7-samitolvanen@google.com> Mime-Version: 1.0 References: <20220429203644.2868448-1-samitolvanen@google.com> X-Developer-Key: i=samitolvanen@google.com; a=openpgp; fpr=35CCFB63B283D6D3AEB783944CB5F6848BBC56EE X-Developer-Signature: v=1; a=openpgp-sha256; l=15228; h=from:subject; bh=0g7XP1LgryML35bYmY5P55DUledGJO075lwf/wPq5XY=; b=owEB7QES/pANAwAKAUy19oSLvFbuAcsmYgBibExVzS6QJPpNhwgvz4rLUMgG/eseoiNocaoGE0+w tX5LFGCJAbMEAAEKAB0WIQQ1zPtjsoPW0663g5RMtfaEi7xW7gUCYmxMVQAKCRBMtfaEi7xW7hkYC/ 4ubQXAmms/iLy/3p508tt7PKf5jjRHk61JliAxBIHRWk2AJ+/ApG33RlrxlUW3l1l97z84CdogaqSa jdo5kzTr5mVE8BojuUFoGj3o6JKuqeuKDXPluSgQkK9/n0l6BGyNpH5iMrTqjmTS5+qKjA7Z8yCk6N h2uNUbPmBJ5gerAmb+taQVdcEAcfdLsOmPIoRxKuuFj8hqFU8wwW7mbcQAQZNJ5U//BpPEbO0Ad299 aRh5GtCHpvSxLRL9t1egoSBtslKOt86N19OjWNXXnJybdVSRx5Mo8+RUbX33VIUz4hXbuUH7FJuyL9 JlZlvDFZwT5JKvRgZWVGKqKMEyyQuQfM5pn1P6Zx/CT5vuWlWZY3EUuVGjUZ/9wHZFNgzPJgCbRBoh ng2kyfVoFHuWLCYRgUx6LAoxF3YPUvGXy+ZGeUgSSYjaZyl2o+S9T4Gt8+YCoSNHiXDy5yGH3hYtX5 TMqHSVc2S30OxsckAvhcZzkLCdIj8XoQ0tfMFRpbJIeMU= X-Mailer: git-send-email 2.36.0.464.gb9c8b46e94-goog Subject: [RFC PATCH 06/21] cfi: Switch to -fsanitize=kcfi From: Sami Tolvanen To: linux-kernel@vger.kernel.org Cc: Kees Cook , Josh Poimboeuf , Peter Zijlstra , x86@kernel.org, Catalin Marinas , Will Deacon , Mark Rutland , Nathan Chancellor , Nick Desaulniers , Joao Moreira , Sedat Dilek , Steven Rostedt , linux-hardening@vger.kernel.org, linux-arm-kernel@lists.infradead.org, llvm@lists.linux.dev, Sami Tolvanen X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220429_133704_098937_5384EA4E X-CRM114-Status: GOOD ( 25.37 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org U3dpdGNoIGZyb20gQ2xhbmcncyBvcmlnaW5hbCBmb3J3YXJkLWVkZ2UgY29udHJvbC1mbG93IGlu dGVncml0eQppbXBsZW1lbnRhdGlvbiB0byAtZnNhbml0aXplPWtjZmksIHdoaWNoIGlzIGJldHRl ciBzdWl0ZWQgZm9yIHRoZQprZXJuZWwsIGFzIGl0IGRvZXNuJ3QgcmVxdWlyZSBMVE8sIGRvZXNu J3QgdXNlIGEganVtcCB0YWJsZSB0aGF0CnJlcXVpcmVzIGFsdGVyaW5nIGZ1bmN0aW9uIHJlZmVy ZW5jZXMsIGFuZCB3b24ndCBicmVhayBjcm9zcy1tb2R1bGUKZnVuY3Rpb24gYWRkcmVzcyBlcXVh bGl0eS4KClNpZ25lZC1vZmYtYnk6IFNhbWkgVG9sdmFuZW4gPHNhbWl0b2x2YW5lbkBnb29nbGUu Y29tPgotLS0KIE1ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMyArLS0KIGFy Y2gvS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgICB8ICAgOCArLQogaW5jbHVkZS9hc20tZ2Vu ZXJpYy92bWxpbnV4Lmxkcy5oIHwgIDM4ICsrKystLS0tLQogaW5jbHVkZS9saW51eC9jZmkuaCAg ICAgICAgICAgICAgIHwgIDI0ICsrKysrLQogaW5jbHVkZS9saW51eC9jb21waWxlci1jbGFuZy5o ICAgIHwgICA4ICstCiBpbmNsdWRlL2xpbnV4L21vZHVsZS5oICAgICAgICAgICAgfCAgIDQgKy0K IGtlcm5lbC9jZmkuYyAgICAgICAgICAgICAgICAgICAgICB8IDEyOSArKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0KIGtlcm5lbC9tb2R1bGUuYyAgICAgICAgICAgICAgICAgICB8ICAzNCAr LS0tLS0tLQogc2NyaXB0cy9tb2R1bGUubGRzLlMgICAgICAgICAgICAgIHwgIDI0ICsrLS0tLQog OSBmaWxlcyBjaGFuZ2VkLCAxMjYgaW5zZXJ0aW9ucygrKSwgMTU2IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKaW5kZXggYzNlYzFlYTQyMzc5Li4yMmE1ZDQ4 ZjVmYjQgMTAwNjQ0Ci0tLSBhL01ha2VmaWxlCisrKyBiL01ha2VmaWxlCkBAIC05MTUsMTggKzkx NSw3IEBAIGV4cG9ydCBDQ19GTEFHU19MVE8KIGVuZGlmCiAKIGlmZGVmIENPTkZJR19DRklfQ0xB TkcKLUNDX0ZMQUdTX0NGSQk6PSAtZnNhbml0aXplPWNmaSBcCi0JCSAgIC1mc2FuaXRpemUtY2Zp LWNyb3NzLWRzbyBcCi0JCSAgIC1mbm8tc2FuaXRpemUtY2ZpLWNhbm9uaWNhbC1qdW1wLXRhYmxl cyBcCi0JCSAgIC1mbm8tc2FuaXRpemUtdHJhcD1jZmkgXAotCQkgICAtZm5vLXNhbml0aXplLWJs YWNrbGlzdAotCi1pZmRlZiBDT05GSUdfQ0ZJX1BFUk1JU1NJVkUKLUNDX0ZMQUdTX0NGSQkrPSAt ZnNhbml0aXplLXJlY292ZXI9Y2ZpCi1lbmRpZgotCi0jIElmIExUTyBmbGFncyBhcmUgZmlsdGVy ZWQgb3V0LCB3ZSBtdXN0IGFsc28gZmlsdGVyIG91dCBDRkkuCi1DQ19GTEFHU19MVE8JKz0gJChD Q19GTEFHU19DRkkpCitDQ19GTEFHU19DRkkJOj0gLWZzYW5pdGl6ZT1rY2ZpIC1mbm8tc2FuaXRp emUtYmxhY2tsaXN0CiBLQlVJTERfQ0ZMQUdTCSs9ICQoQ0NfRkxBR1NfQ0ZJKQogZXhwb3J0IEND X0ZMQUdTX0NGSQogZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvS2NvbmZpZyBiL2FyY2gvS2NvbmZp ZwppbmRleCA2MjVkYjYzNzY3MjYuLjYwMTM3OWE2MTczZCAxMDA2NDQKLS0tIGEvYXJjaC9LY29u ZmlnCisrKyBiL2FyY2gvS2NvbmZpZwpAQCAtNzIyLDEyICs3MjIsOCBAQCBjb25maWcgQVJDSF9T VVBQT1JUU19DRklfQ0xBTkcKIAogY29uZmlnIENGSV9DTEFORwogCWJvb2wgIlVzZSBDbGFuZydz IENvbnRyb2wgRmxvdyBJbnRlZ3JpdHkgKENGSSkiCi0JZGVwZW5kcyBvbiBMVE9fQ0xBTkcgJiYg QVJDSF9TVVBQT1JUU19DRklfQ0xBTkcKLQkjIENsYW5nID49IDEyOgotCSMgLSBodHRwczovL2J1 Z3MubGx2bS5vcmcvc2hvd19idWcuY2dpP2lkPTQ2MjU4Ci0JIyAtIGh0dHBzOi8vYnVncy5sbHZt Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDc0NzkKLQlkZXBlbmRzIG9uIENMQU5HX1ZFUlNJT04gPj0g MTIwMDAwCi0Jc2VsZWN0IEtBTExTWU1TCisJZGVwZW5kcyBvbiBBUkNIX1NVUFBPUlRTX0NGSV9D TEFORworCWRlcGVuZHMgb24gJChjYy1vcHRpb24sLWZzYW5pdGl6ZT1rY2ZpKQogCWhlbHAKIAkg IFRoaXMgb3B0aW9uIGVuYWJsZXMgQ2xhbmfigJlzIGZvcndhcmQtZWRnZSBDb250cm9sIEZsb3cg SW50ZWdyaXR5CiAJICAoQ0ZJKSBjaGVja2luZywgd2hlcmUgdGhlIGNvbXBpbGVyIGluamVjdHMg YSBydW50aW1lIGNoZWNrIHRvIGVhY2gKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWdlbmVyaWMv dm1saW51eC5sZHMuaCBiL2luY2x1ZGUvYXNtLWdlbmVyaWMvdm1saW51eC5sZHMuaAppbmRleCA2 OTEzOGU5ZGI3ODcuLjIwYmZkMmYwMWQ2ZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tZ2VuZXJp Yy92bWxpbnV4Lmxkcy5oCisrKyBiL2luY2x1ZGUvYXNtLWdlbmVyaWMvdm1saW51eC5sZHMuaApA QCAtNDIxLDYgKzQyMSwyMiBAQAogCV9fZW5kX3JvX2FmdGVyX2luaXQgPSAuOwogI2VuZGlmCiAK Ky8qCisgKiAua2NmaV90cmFwcyBjb250YWlucyBhIGxpc3QgS0NGSSB0cmFwIGxvY2F0aW9ucy4K KyAqLworI2lmbmRlZiBLQ0ZJX1RSQVBTCisjaWZkZWYgQ09ORklHX0NGSV9DTEFORworI2RlZmlu ZSBLQ0ZJX1RSQVBTCQkJCQkJCVwKKwlfX2tjZmlfdHJhcHMgOiBBVChBRERSKF9fa2NmaV90cmFw cykgLSBMT0FEX09GRlNFVCkgewkJXAorCQlfX3N0YXJ0X19fa2NmaV90cmFwcyA9IC47CQkJCVwK KwkJS0VFUCgqKC5rY2ZpX3RyYXBzKSkJCQkJCVwKKwkJX19zdG9wX19fa2NmaV90cmFwcyA9IC47 CQkJCVwKKwl9CisjZWxzZQorI2RlZmluZSBLQ0ZJX1RSQVBTCisjZW5kaWYKKyNlbmRpZgorCiAv KgogICogUmVhZCBvbmx5IERhdGEKICAqLwpAQCAtNTI5LDYgKzU0NSw4IEBACiAJCV9fc3RvcF9f X21vZHZlciA9IC47CQkJCQlcCiAJfQkJCQkJCQkJXAogCQkJCQkJCQkJXAorCUtDRklfVFJBUFMJ CQkJCQkJXAorCQkJCQkJCQkJXAogCVJPX0VYQ0VQVElPTl9UQUJMRQkJCQkJCVwKIAlOT1RFUwkJ CQkJCQkJXAogCUJURgkJCQkJCQkJXApAQCAtNTM3LDIxICs1NTUsNiBAQAogCV9fZW5kX3JvZGF0 YSA9IC47CiAKIAotLyoKLSAqIC50ZXh0Li5MLmNmaS5qdW1wdGFibGUuKiBjb250YWluIENvbnRy b2wtRmxvdyBJbnRlZ3JpdHkgKENGSSkKLSAqIGp1bXAgdGFibGUgZW50cmllcy4KLSAqLwotI2lm ZGVmIENPTkZJR19DRklfQ0xBTkcKLSNkZWZpbmUgVEVYVF9DRklfSlQJCQkJCQkJXAotCQkuID0g QUxJR04oUE1EX1NJWkUpOwkJCQkJXAotCQlfX2NmaV9qdF9zdGFydCA9IC47CQkJCQlcCi0JCSoo LnRleHQuLkwuY2ZpLmp1bXB0YWJsZSAudGV4dC4uTC5jZmkuanVtcHRhYmxlLiopCVwKLQkJLiA9 IEFMSUdOKFBNRF9TSVpFKTsJCQkJCVwKLQkJX19jZmlfanRfZW5kID0gLjsKLSNlbHNlCi0jZGVm aW5lIFRFWFRfQ0ZJX0pUCi0jZW5kaWYKLQogLyoKICAqIE5vbi1pbnN0cnVtZW50YWJsZSB0ZXh0 IHNlY3Rpb24KICAqLwpAQCAtNTc5LDcgKzU4Miw2IEBACiAJCSooLnRleHQuLnJlZmNvdW50KQkJ CQkJXAogCQkqKC5yZWYudGV4dCkJCQkJCQlcCiAJCSooLnRleHQuYXNhbi4qIC50ZXh0LnRzYW4u KikJCQkJXAotCQlURVhUX0NGSV9KVAkJCQkJCVwKIAlNRU1fS0VFUChpbml0LnRleHQqKQkJCQkJ CVwKIAlNRU1fS0VFUChleGl0LnRleHQqKQkJCQkJCVwKIApAQCAtMTAwOCw4ICsxMDEwLDcgQEAK ICAqIGtlZXAgYW55IC5pbml0X2FycmF5Liogc2VjdGlvbnMuCiAgKiBodHRwczovL2J1Z3MubGx2 bS5vcmcvc2hvd19idWcuY2dpP2lkPTQ2NDc4CiAgKi8KLSNpZiBkZWZpbmVkKENPTkZJR19HQ09W X0tFUk5FTCkgfHwgZGVmaW5lZChDT05GSUdfS0FTQU5fR0VORVJJQykgfHwgZGVmaW5lZChDT05G SUdfS0NTQU4pIHx8IFwKLQlkZWZpbmVkKENPTkZJR19DRklfQ0xBTkcpCisjaWYgZGVmaW5lZChD T05GSUdfR0NPVl9LRVJORUwpIHx8IGRlZmluZWQoQ09ORklHX0tBU0FOX0dFTkVSSUMpIHx8IGRl ZmluZWQoQ09ORklHX0tDU0FOKQogIyBpZmRlZiBDT05GSUdfQ09OU1RSVUNUT1JTCiAjICBkZWZp bmUgU0FOSVRJWkVSX0RJU0NBUkRTCQkJCQkJXAogCSooLmVoX2ZyYW1lKQpAQCAtMTAyNyw2ICsx MDI4LDcgQEAKIAkqKC5kaXNjYXJkKQkJCQkJCQlcCiAJKiguZGlzY2FyZC4qKQkJCQkJCQlcCiAJ KigubW9kaW5mbykJCQkJCQkJXAorCSooLmtjZmlfdHlwZXMpCQkJCQkJCVwKIAkvKiBsZC5iZmQg d2FybnMgYWJvdXQgLmdudS52ZXJzaW9uKiBldmVuIHdoZW4gbm90IGVtaXR0ZWQgKi8JXAogCSoo LmdudS52ZXJzaW9uKikJCQkJCQlcCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvY2ZpLmgg Yi9pbmNsdWRlL2xpbnV4L2NmaS5oCmluZGV4IDJjZGJjMGZiZDBhYi4uOWNiYWRmY2E3ZTAxIDEw MDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2NmaS5oCisrKyBiL2luY2x1ZGUvbGludXgvY2ZpLmgK QEAgLTIsMTcgKzIsMzMgQEAKIC8qCiAgKiBDbGFuZyBDb250cm9sIEZsb3cgSW50ZWdyaXR5IChD RkkpIHN1cHBvcnQuCiAgKgotICogQ29weXJpZ2h0IChDKSAyMDIxIEdvb2dsZSBMTEMKKyAqIENv cHlyaWdodCAoQykgMjAyMiBHb29nbGUgTExDCiAgKi8KICNpZm5kZWYgX0xJTlVYX0NGSV9ICiAj ZGVmaW5lIF9MSU5VWF9DRklfSAogCisjaW5jbHVkZSA8bGludXgvYnVnLmg+CisjaW5jbHVkZSA8 bGludXgvbW9kdWxlLmg+CisKICNpZmRlZiBDT05GSUdfQ0ZJX0NMQU5HCi10eXBlZGVmIHZvaWQg KCpjZmlfY2hlY2tfZm4pKHVpbnQ2NF90IGlkLCB2b2lkICpwdHIsIHZvaWQgKmRpYWcpOwogCi0v KiBDb21waWxlci1nZW5lcmF0ZWQgZnVuY3Rpb24gaW4gZWFjaCBtb2R1bGUsIGFuZCB0aGUga2Vy bmVsICovCi1leHRlcm4gdm9pZCBfX2NmaV9jaGVjayh1aW50NjRfdCBpZCwgdm9pZCAqcHRyLCB2 b2lkICpkaWFnKTsKKyNpZmRlZiBDT05GSUdfTU9EVUxFUwordm9pZCBtb2R1bGVfY2ZpX2ZpbmFs aXplKGNvbnN0IEVsZl9FaGRyICpoZHIsIGNvbnN0IEVsZl9TaGRyICpzZWNoZHJzLCBzdHJ1Y3Qg bW9kdWxlICptb2QpOworI2VuZGlmCisKK3ZvaWQgKmFyY2hfZ2V0X2NmaV90YXJnZXQodW5zaWdu ZWQgbG9uZyBhZGRyLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyk7CitlbnVtIGJ1Z190cmFwX3R5cGUg cmVwb3J0X2NmaSh1bnNpZ25lZCBsb25nIGFkZHIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKKyNl bHNlCisKKyNpZmRlZiBDT05GSUdfTU9EVUxFUworc3RhdGljIGlubGluZSB2b2lkIG1vZHVsZV9j ZmlfZmluYWxpemUoY29uc3QgRWxmX0VoZHIgKmhkciwgY29uc3QgRWxmX1NoZHIgKnNlY2hkcnMs CisJCQkJICAgICAgIHN0cnVjdCBtb2R1bGUgKm1vZCkge30KKyNlbmRpZgogCitzdGF0aWMgaW5s aW5lIGVudW0gYnVnX3RyYXBfdHlwZSByZXBvcnRfY2ZpKHVuc2lnbmVkIGxvbmcgYWRkciwgc3Ry dWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJcmV0dXJuIEJVR19UUkFQX1RZUEVfTk9ORTsKK30KICNl bmRpZiAvKiBDT05GSUdfQ0ZJX0NMQU5HICovCiAKICNlbmRpZiAvKiBfTElOVVhfQ0ZJX0ggKi8K ZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvY29tcGlsZXItY2xhbmcuaCBiL2luY2x1ZGUvbGlu dXgvY29tcGlsZXItY2xhbmcuaAppbmRleCBiYWJiMTM0NzE0OGMuLmM0ZmY0Mjg1OTA3NyAxMDA2 NDQKLS0tIGEvaW5jbHVkZS9saW51eC9jb21waWxlci1jbGFuZy5oCisrKyBiL2luY2x1ZGUvbGlu dXgvY29tcGlsZXItY2xhbmcuaApAQCAtNjYsOSArNjYsNiBAQAogIyBkZWZpbmUgX19ub3Njcwlf X2F0dHJpYnV0ZV9fKChfX25vX3Nhbml0aXplX18oInNoYWRvdy1jYWxsLXN0YWNrIikpKQogI2Vu ZGlmCiAKLSNkZWZpbmUgX19ub2NmaQkJX19hdHRyaWJ1dGVfXygoX19ub19zYW5pdGl6ZV9fKCJj ZmkiKSkpCi0jZGVmaW5lIF9fY2ZpY2Fub25pY2FsCV9fYXR0cmlidXRlX18oKF9fY2ZpX2Nhbm9u aWNhbF9qdW1wX3RhYmxlX18pKQotCiAvKgogICogVHVybiBpbmRpdmlkdWFsIHdhcm5pbmdzIGFu ZCBlcnJvcnMgb24gYW5kIG9mZiBsb2NhbGx5LCBkZXBlbmRpbmcKICAqIG9uIHZlcnNpb24uCkBA IC05MywzICs5MCw4IEBACiAKICNkZWZpbmUgX19kaWFnX2lnbm9yZV9hbGwob3B0aW9uLCBjb21t ZW50KSBcCiAJX19kaWFnX2NsYW5nKDExLCBpZ25vcmUsIG9wdGlvbikKKworI2lmIENPTkZJR19D RklfQ0xBTkcKKy8qIERpc2FibGUgQ0ZJIGNoZWNraW5nIGluc2lkZSBhIGZ1bmN0aW9uLiAqLwor I2RlZmluZSBfX25vY2ZpCQlfX2F0dHJpYnV0ZV9fKChfX25vX3Nhbml0aXplX18oImtjZmkiKSkp CisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbW9kdWxlLmggYi9pbmNsdWRlL2xp bnV4L21vZHVsZS5oCmluZGV4IDg3ODU3Mjc1YzA0Ny4uNDMwZWExOWYxNGY2IDEwMDY0NAotLS0g YS9pbmNsdWRlL2xpbnV4L21vZHVsZS5oCisrKyBiL2luY2x1ZGUvbGludXgvbW9kdWxlLmgKQEAg LTI3LDcgKzI3LDYgQEAKICNpbmNsdWRlIDxsaW51eC90cmFjZXBvaW50LWRlZnMuaD4KICNpbmNs dWRlIDxsaW51eC9zcmN1Lmg+CiAjaW5jbHVkZSA8bGludXgvc3RhdGljX2NhbGxfdHlwZXMuaD4K LSNpbmNsdWRlIDxsaW51eC9jZmkuaD4KIAogI2luY2x1ZGUgPGxpbnV4L3BlcmNwdS5oPgogI2lu Y2x1ZGUgPGFzbS9tb2R1bGUuaD4KQEAgLTM4OSw3ICszODgsOCBAQCBzdHJ1Y3QgbW9kdWxlIHsK IAl1bnNpZ25lZCBpbnQgbnVtX3N5bXM7CiAKICNpZmRlZiBDT05GSUdfQ0ZJX0NMQU5HCi0JY2Zp X2NoZWNrX2ZuIGNmaV9jaGVjazsKKwl1bnNpZ25lZCBsb25nICprY2ZpX3RyYXBzOworCXVuc2ln bmVkIGxvbmcgKmtjZmlfdHJhcHNfZW5kOwogI2VuZGlmCiAKIAkvKiBLZXJuZWwgcGFyYW1ldGVy cy4gKi8KZGlmZiAtLWdpdCBhL2tlcm5lbC9jZmkuYyBiL2tlcm5lbC9jZmkuYwppbmRleCAyY2Mw ZDAxZWE5ODAuLmQ5OTA3ZGY2NTc2ZSAxMDA2NDQKLS0tIGEva2VybmVsL2NmaS5jCisrKyBiL2tl cm5lbC9jZmkuYwpAQCAtMSw5NCArMSwxMDEgQEAKIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBHUEwtMi4wCiAvKgotICogQ2xhbmcgQ29udHJvbCBGbG93IEludGVncml0eSAoQ0ZJKSBlcnJv ciBhbmQgc2xvd3BhdGggaGFuZGxpbmcuCisgKiBDbGFuZyBDb250cm9sIEZsb3cgSW50ZWdyaXR5 IChDRkkpIGVycm9yIGhhbmRsaW5nLgogICoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBHb29nbGUg TExDCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgR29vZ2xlIExMQwogICovCiAKLSNpbmNsdWRlIDxs aW51eC9oYXJkaXJxLmg+Ci0jaW5jbHVkZSA8bGludXgva2FsbHN5bXMuaD4KLSNpbmNsdWRlIDxs aW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgotI2luY2x1ZGUgPGxpbnV4 L3ByaW50ay5oPgotI2luY2x1ZGUgPGxpbnV4L3JhdGVsaW1pdC5oPgotI2luY2x1ZGUgPGxpbnV4 L3JjdXBkYXRlLmg+Ci0jaW5jbHVkZSA8bGludXgvdm1hbGxvYy5oPgotI2luY2x1ZGUgPGFzbS9j YWNoZWZsdXNoLmg+Ci0jaW5jbHVkZSA8YXNtL3NldF9tZW1vcnkuaD4KLQotLyogQ29tcGlsZXIt ZGVmaW5lZCBoYW5kbGVyIG5hbWVzICovCi0jaWZkZWYgQ09ORklHX0NGSV9QRVJNSVNTSVZFCi0j ZGVmaW5lIGNmaV9mYWlsdXJlX2hhbmRsZXIJX191YnNhbl9oYW5kbGVfY2ZpX2NoZWNrX2ZhaWwK LSNlbHNlCi0jZGVmaW5lIGNmaV9mYWlsdXJlX2hhbmRsZXIJX191YnNhbl9oYW5kbGVfY2ZpX2No ZWNrX2ZhaWxfYWJvcnQKLSNlbmRpZgotCi1zdGF0aWMgaW5saW5lIHZvaWQgaGFuZGxlX2NmaV9m YWlsdXJlKHZvaWQgKnB0cikKKyNpbmNsdWRlIDxsaW51eC9jZmkuaD4KKworLyogUmV0dXJucyB0 aGUgdGFyZ2V0IG9mIHRoZSBpbmRpcmVjdCBjYWxsIHRoYXQgZm9sbG93cyB0aGUgdHJhcCBpbiBg YWRkcmAuICovCit2b2lkICogX193ZWFrIGFyY2hfZ2V0X2NmaV90YXJnZXQodW5zaWduZWQgbG9u ZyBhZGRyLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKIHsKLQlpZiAoSVNfRU5BQkxFRChDT05GSUdf Q0ZJX1BFUk1JU1NJVkUpKQotCQlXQVJOX1JBVEVMSU1JVCgxLCAiQ0ZJIGZhaWx1cmUgKHRhcmdl dDogJXBTKTpcbiIsIHB0cik7Ci0JZWxzZQotCQlwYW5pYygiQ0ZJIGZhaWx1cmUgKHRhcmdldDog JXBTKVxuIiwgcHRyKTsKKwlyZXR1cm4gTlVMTDsKIH0KIAogI2lmZGVmIENPTkZJR19NT0RVTEVT CisvKiBQb3B1bGF0ZXMgYGtjZmlfdHJhcChfZW5kKT9gIGZpZWxkcyBpbiBgc3RydWN0IG1vZHVs ZWAuICovCit2b2lkIG1vZHVsZV9jZmlfZmluYWxpemUoY29uc3QgRWxmX0VoZHIgKmhkciwgY29u c3QgRWxmX1NoZHIgKnNlY2hkcnMsCisJCQkgc3RydWN0IG1vZHVsZSAqbW9kKQoreworCWNoYXIg KnNlY3N0cmluZ3M7CisJdW5zaWduZWQgaW50IGk7CisKKwltb2QtPmtjZmlfdHJhcHMgPSBOVUxM OworCW1vZC0+a2NmaV90cmFwc19lbmQgPSBOVUxMOworCisJc2Vjc3RyaW5ncyA9IChjaGFyICop aGRyICsgc2VjaGRyc1toZHItPmVfc2hzdHJuZHhdLnNoX29mZnNldDsKKworCWZvciAoaSA9IDE7 IGkgPCBoZHItPmVfc2hudW07IGkrKykgeworCQlpZiAoc3RyY21wKHNlY3N0cmluZ3Mrc2VjaGRy c1tpXS5zaF9uYW1lLCAiX19rY2ZpX3RyYXBzIikpCisJCQljb250aW51ZTsKIAotc3RhdGljIGlu bGluZSBjZmlfY2hlY2tfZm4gZmluZF9tb2R1bGVfY2hlY2tfZm4odW5zaWduZWQgbG9uZyBwdHIp CisJCW1vZC0+a2NmaV90cmFwcyA9ICh1bnNpZ25lZCBsb25nICopc2VjaGRyc1tpXS5zaF9hZGRy OworCQltb2QtPmtjZmlfdHJhcHNfZW5kID0gKHVuc2lnbmVkIGxvbmcgKikoc2VjaGRyc1tpXS5z aF9hZGRyICsgc2VjaGRyc1tpXS5zaF9zaXplKTsKKwkJYnJlYWs7CisJfQorfQorCitzdGF0aWMg Ym9vbCBpc19tb2R1bGVfY2ZpX3RyYXAodW5zaWduZWQgbG9uZyBhZGRyKQogewotCWNmaV9jaGVj a19mbiBmbiA9IE5VTEw7CisJYm9vbCBmb3VuZCA9IGZhbHNlOwogCXN0cnVjdCBtb2R1bGUgKm1v ZDsKKwl1bnNpZ25lZCBsb25nICpwOwogCiAJcmN1X3JlYWRfbG9ja19zY2hlZF9ub3RyYWNlKCk7 Ci0JbW9kID0gX19tb2R1bGVfYWRkcmVzcyhwdHIpOworCisJbW9kID0gX19tb2R1bGVfYWRkcmVz cyhhZGRyKTsKIAlpZiAobW9kKQotCQlmbiA9IG1vZC0+Y2ZpX2NoZWNrOworCQlmb3IgKHAgPSBt b2QtPmtjZmlfdHJhcHM7ICFmb3VuZCAmJiBwIDwgbW9kLT5rY2ZpX3RyYXBzX2VuZDsgKytwKQor CQkJZm91bmQgPSAoKnAgPT0gYWRkcik7CisKIAlyY3VfcmVhZF91bmxvY2tfc2NoZWRfbm90cmFj ZSgpOwogCi0JcmV0dXJuIGZuOworCXJldHVybiBmb3VuZDsKIH0KIAotc3RhdGljIGlubGluZSBj ZmlfY2hlY2tfZm4gZmluZF9jaGVja19mbih1bnNpZ25lZCBsb25nIHB0cikKLXsKLQljZmlfY2hl Y2tfZm4gZm4gPSBOVUxMOworI2Vsc2UgLyogQ09ORklHX01PRFVMRVMgKi8KIAotCWlmIChpc19r ZXJuZWxfdGV4dChwdHIpKQotCQlyZXR1cm4gX19jZmlfY2hlY2s7CitzdGF0aWMgaW5saW5lIGJv b2wgaXNfbW9kdWxlX2NmaV90cmFwKHVuc2lnbmVkIGxvbmcgYWRkcikKK3sKKwlyZXR1cm4gZmFs c2U7Cit9CiAKLQkvKgotCSAqIEluZGlyZWN0IGNhbGwgY2hlY2tzIGNhbiBoYXBwZW4gd2hlbiBS Q1UgaXMgbm90IHdhdGNoaW5nLiBCb3RoCi0JICogdGhlIHNoYWRvdyBhbmQgX19tb2R1bGVfYWRk cmVzcyB1c2UgUkNVLCBzbyB3ZSBuZWVkIHRvIHdha2UgaXQKLQkgKiB1cCBpZiBuZWNlc3Nhcnku Ci0JICovCi0JUkNVX05PTklETEUoewotCQlmbiA9IGZpbmRfbW9kdWxlX2NoZWNrX2ZuKHB0cik7 Ci0JfSk7CisjZW5kaWYgLyogQ09ORklHX01PRFVMRVMgKi8KIAotCXJldHVybiBmbjsKLX0KK2V4 dGVybiB1bnNpZ25lZCBsb25nIF9fc3RhcnRfX19rY2ZpX3RyYXBzW107CitleHRlcm4gdW5zaWdu ZWQgbG9uZyBfX3N0b3BfX19rY2ZpX3RyYXBzW107CiAKLXZvaWQgX19jZmlfc2xvd3BhdGhfZGlh Zyh1aW50NjRfdCBpZCwgdm9pZCAqcHRyLCB2b2lkICpkaWFnKQorc3RhdGljIGJvb2wgaXNfY2Zp X3RyYXAodW5zaWduZWQgbG9uZyBhZGRyKQogewotCWNmaV9jaGVja19mbiBmbiA9IGZpbmRfY2hl Y2tfZm4oKHVuc2lnbmVkIGxvbmcpcHRyKTsKKwl1bnNpZ25lZCBsb25nICpwOwogCi0JaWYgKGxp a2VseShmbikpCi0JCWZuKGlkLCBwdHIsIGRpYWcpOwotCWVsc2UgLyogRG9uJ3QgYWxsb3cgdW5j aGVja2VkIG1vZHVsZXMgKi8KLQkJaGFuZGxlX2NmaV9mYWlsdXJlKHB0cik7CisJZm9yIChwID0g X19zdGFydF9fX2tjZmlfdHJhcHM7IHAgPCBfX3N0b3BfX19rY2ZpX3RyYXBzOyArK3ApCisJCWlm ICgqcCA9PSBhZGRyKQorCQkJcmV0dXJuIHRydWU7CisKKwlyZXR1cm4gaXNfbW9kdWxlX2NmaV90 cmFwKGFkZHIpOwogfQotRVhQT1JUX1NZTUJPTChfX2NmaV9zbG93cGF0aF9kaWFnKTsKIAotI2Vs c2UgLyogIUNPTkZJR19NT0RVTEVTICovCisjZGVmaW5lIF9fQ0ZJX0VSUk9SX0ZNVCAiQ0ZJIGZh aWx1cmUgYXQgJXBTICh0YXJnZXQ6ICVwUylcbiIKIAotdm9pZCBfX2NmaV9zbG93cGF0aF9kaWFn KHVpbnQ2NF90IGlkLCB2b2lkICpwdHIsIHZvaWQgKmRpYWcpCitzdGF0aWMgZW51bSBidWdfdHJh cF90eXBlIF9fcmVwb3J0X2NmaSh2b2lkICphZGRyLCB2b2lkICp0YXJnZXQsIHN0cnVjdCBwdF9y ZWdzICpyZWdzKQogewotCWhhbmRsZV9jZmlfZmFpbHVyZShwdHIpOyAvKiBObyBtb2R1bGVzICov CisJaWYgKElTX0VOQUJMRUQoQ09ORklHX0NGSV9QRVJNSVNTSVZFKSkgeworCQlwcl93YXJuKF9f Q0ZJX0VSUk9SX0ZNVCwgYWRkciwgdGFyZ2V0KTsKKwkJX193YXJuKE5VTEwsIDAsIGFkZHIsIDAs IHJlZ3MsIE5VTEwpOworCisJCXJldHVybiBCVUdfVFJBUF9UWVBFX1dBUk47CisJfSBlbHNlIHsK KwkJcHJfY3JpdChfX0NGSV9FUlJPUl9GTVQsIGFkZHIsIHRhcmdldCk7CisJCXJldHVybiBCVUdf VFJBUF9UWVBFX0JVRzsKKwl9CiB9Ci1FWFBPUlRfU1lNQk9MKF9fY2ZpX3Nsb3dwYXRoX2RpYWcp OwotCi0jZW5kaWYgLyogQ09ORklHX01PRFVMRVMgKi8KIAotdm9pZCBjZmlfZmFpbHVyZV9oYW5k bGVyKHZvaWQgKmRhdGEsIHZvaWQgKnB0ciwgdm9pZCAqdnRhYmxlKQorZW51bSBidWdfdHJhcF90 eXBlIHJlcG9ydF9jZmkodW5zaWduZWQgbG9uZyBhZGRyLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykK IHsKLQloYW5kbGVfY2ZpX2ZhaWx1cmUocHRyKTsKKwlpZiAoIWlzX2NmaV90cmFwKGFkZHIpKQor CQlyZXR1cm4gQlVHX1RSQVBfVFlQRV9OT05FOworCisJcmV0dXJuIF9fcmVwb3J0X2NmaSgodm9p ZCAqKWFkZHIsIGFyY2hfZ2V0X2NmaV90YXJnZXQoYWRkciwgcmVncyksIHJlZ3MpOwogfQotRVhQ T1JUX1NZTUJPTChjZmlfZmFpbHVyZV9oYW5kbGVyKTsKZGlmZiAtLWdpdCBhL2tlcm5lbC9tb2R1 bGUuYyBiL2tlcm5lbC9tb2R1bGUuYwppbmRleCAyOTZmZTAyMzIzZTkuLjQxMWFlOGMzNThlNiAx MDA2NDQKLS0tIGEva2VybmVsL21vZHVsZS5jCisrKyBiL2tlcm5lbC9tb2R1bGUuYwpAQCAtNTcs NiArNTcsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2JzZWFyY2guaD4KICNpbmNsdWRlIDxsaW51eC9k eW5hbWljX2RlYnVnLmg+CiAjaW5jbHVkZSA8bGludXgvYXVkaXQuaD4KKyNpbmNsdWRlIDxsaW51 eC9jZmkuaD4KICNpbmNsdWRlIDx1YXBpL2xpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgIm1vZHVs ZS1pbnRlcm5hbC5oIgogCkBAIC0zODcxLDggKzM4NzIsOSBAQCBzdGF0aWMgaW50IGNvbXBsZXRl X2Zvcm1hdGlvbihzdHJ1Y3QgbW9kdWxlICptb2QsIHN0cnVjdCBsb2FkX2luZm8gKmluZm8pCiAJ aWYgKGVyciA8IDApCiAJCWdvdG8gb3V0OwogCi0JLyogVGhpcyByZWxpZXMgb24gbW9kdWxlX211 dGV4IGZvciBsaXN0IGludGVncml0eS4gKi8KKwkvKiBUaGVzZSByZWx5IG9uIG1vZHVsZV9tdXRl eCBmb3IgbGlzdCBpbnRlZ3JpdHkuICovCiAJbW9kdWxlX2J1Z19maW5hbGl6ZShpbmZvLT5oZHIs IGluZm8tPnNlY2hkcnMsIG1vZCk7CisJbW9kdWxlX2NmaV9maW5hbGl6ZShpbmZvLT5oZHIsIGlu Zm8tPnNlY2hkcnMsIG1vZCk7CiAKIAltb2R1bGVfZW5hYmxlX3JvKG1vZCwgZmFsc2UpOwogCW1v ZHVsZV9lbmFibGVfbngobW9kKTsKQEAgLTM5MjgsOCArMzkzMCw2IEBAIHN0YXRpYyBpbnQgdW5r bm93bl9tb2R1bGVfcGFyYW1fY2IoY2hhciAqcGFyYW0sIGNoYXIgKnZhbCwgY29uc3QgY2hhciAq bW9kbmFtZSwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgY2ZpX2luaXQoc3RydWN0IG1v ZHVsZSAqbW9kKTsKLQogLyoKICAqIEFsbG9jYXRlIGFuZCBsb2FkIHRoZSBtb2R1bGU6IG5vdGUg dGhhdCBzaXplIG9mIHNlY3Rpb24gMCBpcyBhbHdheXMKICAqIHplcm8sIGFuZCB3ZSByZWx5IG9u IHRoaXMgZm9yIG9wdGlvbmFsIHNlY3Rpb25zLgpAQCAtNDA1OSw5ICs0MDU5LDYgQEAgc3RhdGlj IGludCBsb2FkX21vZHVsZShzdHJ1Y3QgbG9hZF9pbmZvICppbmZvLCBjb25zdCBjaGFyIF9fdXNl ciAqdWFyZ3MsCiAKIAlmbHVzaF9tb2R1bGVfaWNhY2hlKG1vZCk7CiAKLQkvKiBTZXR1cCBDRkkg Zm9yIHRoZSBtb2R1bGUuICovCi0JY2ZpX2luaXQobW9kKTsKLQogCS8qIE5vdyBjb3B5IGluIGFy Z3MgKi8KIAltb2QtPmFyZ3MgPSBzdHJuZHVwX3VzZXIodWFyZ3MsIH4wVUwgPj4gMSk7CiAJaWYg KElTX0VSUihtb2QtPmFyZ3MpKSB7CkBAIC00NTAyLDMxICs0NDk5LDYgQEAgaW50IG1vZHVsZV9r YWxsc3ltc19vbl9lYWNoX3N5bWJvbChpbnQgKCpmbikodm9pZCAqLCBjb25zdCBjaGFyICosCiAj ZW5kaWYgLyogQ09ORklHX0xJVkVQQVRDSCAqLwogI2VuZGlmIC8qIENPTkZJR19LQUxMU1lNUyAq LwogCi1zdGF0aWMgdm9pZCBjZmlfaW5pdChzdHJ1Y3QgbW9kdWxlICptb2QpCi17Ci0jaWZkZWYg Q09ORklHX0NGSV9DTEFORwotCWluaXRjYWxsX3QgKmluaXQ7Ci0JZXhpdGNhbGxfdCAqZXhpdDsK LQotCXJjdV9yZWFkX2xvY2tfc2NoZWQoKTsKLQltb2QtPmNmaV9jaGVjayA9IChjZmlfY2hlY2tf Zm4pCi0JCWZpbmRfa2FsbHN5bXNfc3ltYm9sX3ZhbHVlKG1vZCwgIl9fY2ZpX2NoZWNrIik7Ci0J aW5pdCA9IChpbml0Y2FsbF90ICopCi0JCWZpbmRfa2FsbHN5bXNfc3ltYm9sX3ZhbHVlKG1vZCwg Il9fY2ZpX2p0X2luaXRfbW9kdWxlIik7Ci0JZXhpdCA9IChleGl0Y2FsbF90ICopCi0JCWZpbmRf a2FsbHN5bXNfc3ltYm9sX3ZhbHVlKG1vZCwgIl9fY2ZpX2p0X2NsZWFudXBfbW9kdWxlIik7Ci0J cmN1X3JlYWRfdW5sb2NrX3NjaGVkKCk7Ci0KLQkvKiBGaXggaW5pdC9leGl0IGZ1bmN0aW9ucyB0 byBwb2ludCB0byB0aGUgQ0ZJIGp1bXAgdGFibGUgKi8KLQlpZiAoaW5pdCkKLQkJbW9kLT5pbml0 ID0gKmluaXQ7Ci0jaWZkZWYgQ09ORklHX01PRFVMRV9VTkxPQUQKLQlpZiAoZXhpdCkKLQkJbW9k LT5leGl0ID0gKmV4aXQ7Ci0jZW5kaWYKLSNlbmRpZgotfQotCiAvKiBNYXhpbXVtIG51bWJlciBv ZiBjaGFyYWN0ZXJzIHdyaXR0ZW4gYnkgbW9kdWxlX2ZsYWdzKCkgKi8KICNkZWZpbmUgTU9EVUxF X0ZMQUdTX0JVRl9TSVpFIChUQUlOVF9GTEFHU19DT1VOVCArIDQpCiAKZGlmZiAtLWdpdCBhL3Nj cmlwdHMvbW9kdWxlLmxkcy5TIGIvc2NyaXB0cy9tb2R1bGUubGRzLlMKaW5kZXggMWQwZTFlNGRj M2QyLi5jY2Q3NWQyODM4NDAgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMvbW9kdWxlLmxkcy5TCisrKyBi L3NjcmlwdHMvbW9kdWxlLmxkcy5TCkBAIC0zLDIwICszLDExIEBACiAgKiBBcmNocyBhcmUgZnJl ZSB0byBzdXBwbHkgdGhlaXIgb3duIGxpbmtlciBzY3JpcHRzLiAgbGQgd2lsbAogICogY29tYmlu ZSB0aGVtIGF1dG9tYXRpY2FsbHkuCiAgKi8KLSNpZmRlZiBDT05GSUdfQ0ZJX0NMQU5HCi0jIGlu Y2x1ZGUgPGFzbS9wYWdlLmg+Ci0jIGRlZmluZSBBTElHTl9DRkkgCQlBTElHTihQQUdFX1NJWkUp Ci0jIGRlZmluZSBTQU5JVElaRVJfRElTQ0FSRFMJKiguZWhfZnJhbWUpCi0jZWxzZQotIyBkZWZp bmUgQUxJR05fQ0ZJCi0jIGRlZmluZSBTQU5JVElaRVJfRElTQ0FSRFMKLSNlbmRpZgotCiBTRUNU SU9OUyB7CiAJL0RJU0NBUkQvIDogewogCQkqKC5kaXNjYXJkKQogCQkqKC5kaXNjYXJkLiopCi0J CVNBTklUSVpFUl9ESVNDQVJEUworCQkqKC5rY2ZpX3R5cGVzKQogCX0KIAogCV9fa3N5bXRhYgkJ MCA6IHsgKihTT1JUKF9fX2tzeW10YWIrKikpIH0KQEAgLTMxLDYgKzIyLDEwIEBAIFNFQ1RJT05T IHsKIAogCV9fcGF0Y2hhYmxlX2Z1bmN0aW9uX2VudHJpZXMgOiB7ICooX19wYXRjaGFibGVfZnVu Y3Rpb25fZW50cmllcykgfQogCisjaWZkZWYgQ09ORklHX0NGSV9DTEFORworCV9fa2NmaV90cmFw cyAJCTogeyBLRUVQKCooLmtjZmlfdHJhcHMpKSB9CisjZW5kaWYKKwogI2lmZGVmIENPTkZJR19M VE9fQ0xBTkcKIAkvKgogCSAqIFdpdGggQ09ORklHX0xUT19DTEFORywgTExEIGFsd2F5cyBlbmFi bGVzIC1mZGF0YS1zZWN0aW9ucyBhbmQKQEAgLTUxLDE1ICs0Niw2IEBAIFNFQ1RJT05TIHsKIAkJ Kigucm9kYXRhIC5yb2RhdGEuWzAtOWEtekEtWl9dKikKIAkJKigucm9kYXRhLi5MKikKIAl9Ci0K LQkvKgotCSAqIFdpdGggQ09ORklHX0NGSV9DTEFORywgd2UgYXNzdW1lIF9fY2ZpX2NoZWNrIGlz IGF0IHRoZSBiZWdpbm5pbmcKLQkgKiBvZiB0aGUgLnRleHQgc2VjdGlvbiwgYW5kIGlzIGFsaWdu ZWQgdG8gUEFHRV9TSVpFLgotCSAqLwotCS50ZXh0IDogQUxJR05fQ0ZJIHsKLQkJKigudGV4dC5f X2NmaV9jaGVjaykKLQkJKigudGV4dCAudGV4dC5bMC05YS16QS1aX10qIC50ZXh0Li5MLmNmaSop Ci0JfQogI2VuZGlmCiB9CiAKLS0gCjIuMzYuMC40NjQuZ2I5YzhiNDZlOTQtZ29vZwoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJu ZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRw Oi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK