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=-16.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,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 489DDC433B4 for ; Thu, 8 Apr 2021 18:31:28 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 9880C60C3E for ; Thu, 8 Apr 2021 18:31:27 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9880C60C3E Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=google.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; 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=He5Ea5La6gANw6qanV8oSJXJrIC/X5Cbl8XV3tQ3q4c=; b=O2ScyerIVHvyJw cekHP0LMs/Vry5krAi13homJZ+VNhCB5LG6uWU3eBYICntwCF0rt0fcL5eESUtvE2cuAlCSU/r25T pLHbXQyNV7PKP1XDoeOK6dveazE2y2i2VlBbl76XSQ8keTTCefUhcOR/gO/w/5YlVnCrlInsDOTmN 5jRcJhFO4bcYSDS50aLgqy8Hp9l90TuBuvo9vTYb46xXqZ4stk/gFbXvWwDl4/8lH+XOZOupSapF7 cLKxGJm2NYXVmgOh4Yvi/VS403cvPgPKVhchTnJ6X4I6oTA1fN2yBGL/Cl3hbfEuhx5/8ohBLPGa/ Lz4SxsOgFKjWu1FKM/XQ==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lUZOn-008ui1-AF; Thu, 08 Apr 2021 18:29:01 +0000 Received: from mail-yb1-xb49.google.com ([2607:f8b0:4864:20::b49]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lUZOb-008uee-FQ for linux-arm-kernel@lists.infradead.org; Thu, 08 Apr 2021 18:28:52 +0000 Received: by mail-yb1-xb49.google.com with SMTP id v186so2868949ybe.5 for ; Thu, 08 Apr 2021 11:28:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc:content-transfer-encoding; bh=iMDwFdVThvrdGx8QBp6Uu53WCJMJICP2P0osGdiAgo0=; b=BCUTgd4fnzYrB2C0Vdjttak22/XtoFXlio2+oftsFMRUAV6TMghf40ozthtJjSMF5h twckV5hRFX0JucfTtwhFSYt50FiSasTsXW41J+b1MtDbFvertOk0ZfTW/ZQcaIoTSxsG YjA1iuP9F6DcMz7u0mjnahpvg3ga6nHrA2h9G6HH7uGivA1oQcgyc9ag3mkAlLtidtxG gAMVsxEzpgYA7ZnX8nllumjsf3j9oASCK0W7TGeBP+GP8DdOTJqdfrL8ZOMoKMMZWeo8 FiueK6uw3iNzLriOxz4Zhj9S8tN0e0dt6zdBkOfkK1cuyESjJdYQkTG722NOzXaNwf0c 7/Gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc:content-transfer-encoding; bh=iMDwFdVThvrdGx8QBp6Uu53WCJMJICP2P0osGdiAgo0=; b=O9oxwpYESuwJbO+NLbJl9XH8WsnWeW0j1NZgh+cUuaz5uUIBWWStDdWz95kd/6TIVS Y+xoD0ZA5UFbCuFH5V1zI9Fb8ILa3TiW4xxre0c3ib+KYFnR/5TnPKXkBv253Xh0T33N tEAgSHtH7/hGmREoqIub79/4iBxpjhN/+F0Oc3/AW7cYaSviaFT3f+B6v9pH5tSGHuAv iSNr8nZJQZNbnea6dAkoXlLBL3x8JoDt+OpTVxrWQAvR5BkrtZwirmbSM0+IXQpNCIw8 nGoOuUqWddZLU1kCRmSp7EP9Jn10qB26A6o/+yugHh8ltOY6li8bKVbMrEflzIdwpgX/ iSgQ== X-Gm-Message-State: AOAM533aGJlLb50JIP93yAqZLU9GXYjA9m8pm24I/khInlDeYpiIX4E6 MCGaDTllnXdLQqz40nv+9IgUfvDCUPrPDjqGnSQ= X-Google-Smtp-Source: ABdhPJyzB19ImNMYmWAZ0XojX/sEv77hXRxItsKhfTCg4MKza3rj3inC3/LXzRuauW27+h+vHHvLRdkfEigrUH+hEcA= X-Received: from samitolvanen1.mtv.corp.google.com ([2620:15c:201:2:3560:8505:40a2:e021]) (user=samitolvanen job=sendgmr) by 2002:a25:d6d4:: with SMTP id n203mr13662320ybg.177.1617906527457; Thu, 08 Apr 2021 11:28:47 -0700 (PDT) Date: Thu, 8 Apr 2021 11:28:26 -0700 In-Reply-To: <20210408182843.1754385-1-samitolvanen@google.com> Message-Id: <20210408182843.1754385-2-samitolvanen@google.com> Mime-Version: 1.0 References: <20210408182843.1754385-1-samitolvanen@google.com> X-Mailer: git-send-email 2.31.1.295.g9ea45b61b8-goog Subject: [PATCH v6 01/18] add support for Clang CFI From: Sami Tolvanen To: Kees Cook Cc: Nathan Chancellor , Nick Desaulniers , Masahiro Yamada , Will Deacon , Jessica Yu , Arnd Bergmann , Tejun Heo , "Paul E. McKenney" , Christoph Hellwig , Peter Zijlstra , Sedat Dilek , Mark Rutland , Catalin Marinas , bpf@vger.kernel.org, linux-hardening@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kbuild@vger.kernel.org, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, clang-built-linux@googlegroups.com, Sami Tolvanen X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210408_192849_584472_4C6E216E X-CRM114-Status: GOOD ( 37.07 ) 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 VGhpcyBjaGFuZ2UgYWRkcyBzdXBwb3J0IGZvciBDbGFuZ+KAmXMgZm9yd2FyZC1lZGdlIENvbnRy b2wgRmxvdwpJbnRlZ3JpdHkgKENGSSkgY2hlY2tpbmcuIFdpdGggQ09ORklHX0NGSV9DTEFORywg dGhlIGNvbXBpbGVyCmluamVjdHMgYSBydW50aW1lIGNoZWNrIGJlZm9yZSBlYWNoIGluZGlyZWN0 IGZ1bmN0aW9uIGNhbGwgdG8gZW5zdXJlCnRoZSB0YXJnZXQgaXMgYSB2YWxpZCBmdW5jdGlvbiB3 aXRoIHRoZSBjb3JyZWN0IHN0YXRpYyB0eXBlLiBUaGlzCnJlc3RyaWN0cyBwb3NzaWJsZSBjYWxs IHRhcmdldHMgYW5kIG1ha2VzIGl0IG1vcmUgZGlmZmljdWx0IGZvcgphbiBhdHRhY2tlciB0byBl eHBsb2l0IGJ1Z3MgdGhhdCBhbGxvdyB0aGUgbW9kaWZpY2F0aW9uIG9mIHN0b3JlZApmdW5jdGlv biBwb2ludGVycy4gRm9yIG1vcmUgZGV0YWlscywgc2VlOgoKICBodHRwczovL2NsYW5nLmxsdm0u b3JnL2RvY3MvQ29udHJvbEZsb3dJbnRlZ3JpdHkuaHRtbAoKQ2xhbmcgcmVxdWlyZXMgQ09ORklH X0xUT19DTEFORyB0byBiZSBlbmFibGVkIHdpdGggQ0ZJIHRvIGdhaW4KdmlzaWJpbGl0eSB0byBw b3NzaWJsZSBjYWxsIHRhcmdldHMuIEtlcm5lbCBtb2R1bGVzIGFyZSBzdXBwb3J0ZWQKd2l0aCBD bGFuZ+KAmXMgY3Jvc3MtRFNPIENGSSBtb2RlLCB3aGljaCBhbGxvd3MgY2hlY2tpbmcgYmV0d2Vl bgppbmRlcGVuZGVudGx5IGNvbXBpbGVkIGNvbXBvbmVudHMuCgpXaXRoIENGSSBlbmFibGVkLCB0 aGUgY29tcGlsZXIgaW5qZWN0cyBhIF9fY2ZpX2NoZWNrKCkgZnVuY3Rpb24gaW50bwp0aGUga2Vy bmVsIGFuZCBlYWNoIG1vZHVsZSBmb3IgdmFsaWRhdGluZyBsb2NhbCBjYWxsIHRhcmdldHMuIEZv cgpjcm9zcy1tb2R1bGUgY2FsbHMgdGhhdCBjYW5ub3QgYmUgdmFsaWRhdGVkIGxvY2FsbHksIHRo ZSBjb21waWxlcgpjYWxscyB0aGUgZ2xvYmFsIF9fY2ZpX3Nsb3dwYXRoX2RpYWcoKSBmdW5jdGlv biwgd2hpY2ggZGV0ZXJtaW5lcwp0aGUgdGFyZ2V0IG1vZHVsZSBhbmQgY2FsbHMgdGhlIGNvcnJl Y3QgX19jZmlfY2hlY2soKSBmdW5jdGlvbi4gVGhpcwpwYXRjaCBpbmNsdWRlcyBhIHNsb3dwYXRo IGltcGxlbWVudGF0aW9uIHRoYXQgdXNlcyBfX21vZHVsZV9hZGRyZXNzKCkKdG8gcmVzb2x2ZSBj YWxsIHRhcmdldHMsIGFuZCB3aXRoIENPTkZJR19DRklfQ0xBTkdfU0hBRE9XIGVuYWJsZWQsIGEK c2hhZG93IG1hcCB0aGF0IHNwZWVkcyB1cCBtb2R1bGUgbG9vay11cHMgYnkgfjN4LgoKQ2xhbmcg aW1wbGVtZW50cyBpbmRpcmVjdCBjYWxsIGNoZWNraW5nIHVzaW5nIGp1bXAgdGFibGVzIGFuZApv ZmZlcnMgdHdvIG1ldGhvZHMgb2YgZ2VuZXJhdGluZyB0aGVtLiBXaXRoIGNhbm9uaWNhbCBqdW1w IHRhYmxlcywKdGhlIGNvbXBpbGVyIHJlbmFtZXMgZWFjaCBhZGRyZXNzLXRha2VuIGZ1bmN0aW9u IHRvIDxmdW5jdGlvbj4uY2ZpCmFuZCBwb2ludHMgdGhlIG9yaWdpbmFsIHN5bWJvbCB0byBhIGp1 bXAgdGFibGUgZW50cnksIHdoaWNoIHBhc3NlcwpfX2NmaV9jaGVjaygpIHZhbGlkYXRpb24uIFRo aXMgaXNu4oCZdCBjb21wYXRpYmxlIHdpdGggc3RhbmQtYWxvbmUKYXNzZW1ibHkgY29kZSwgd2hp Y2ggdGhlIGNvbXBpbGVyIGRvZXNu4oCZdCBpbnN0cnVtZW50LCBhbmQgd291bGQKcmVzdWx0IGlu IGluZGlyZWN0IGNhbGxzIHRvIGFzc2VtYmx5IGNvZGUgdG8gZmFpbC4gVGhlcmVmb3JlLCB3ZQpk ZWZhdWx0IHRvIHVzaW5nIG5vbi1jYW5vbmljYWwganVtcCB0YWJsZXMgaW5zdGVhZCwgd2hlcmUg dGhlIGNvbXBpbGVyCmdlbmVyYXRlcyBhIGxvY2FsIGp1bXAgdGFibGUgZW50cnkgPGZ1bmN0aW9u Pi5jZmlfanQgZm9yIGVhY2gKYWRkcmVzcy10YWtlbiBmdW5jdGlvbiwgYW5kIHJlcGxhY2VzIGFs bCByZWZlcmVuY2VzIHRvIHRoZSBmdW5jdGlvbgp3aXRoIHRoZSBhZGRyZXNzIG9mIHRoZSBqdW1w IHRhYmxlIGVudHJ5LgoKTm90ZSB0aGF0IGJlY2F1c2Ugbm9uLWNhbm9uaWNhbCBqdW1wIHRhYmxl IGFkZHJlc3NlcyBhcmUgbG9jYWwKdG8gZWFjaCBjb21wb25lbnQsIHRoZXkgYnJlYWsgY3Jvc3Mt bW9kdWxlIGZ1bmN0aW9uIGFkZHJlc3MKZXF1YWxpdHkuIFNwZWNpZmljYWxseSwgdGhlIGFkZHJl c3Mgb2YgYSBnbG9iYWwgZnVuY3Rpb24gd2lsbCBiZQpkaWZmZXJlbnQgaW4gZWFjaCBtb2R1bGUs IGFzIGl0J3MgcmVwbGFjZWQgd2l0aCB0aGUgYWRkcmVzcyBvZiBhIGxvY2FsCmp1bXAgdGFibGUg ZW50cnkuIElmIHRoaXMgYWRkcmVzcyBpcyBwYXNzZWQgdG8gYSBkaWZmZXJlbnQgbW9kdWxlLApp dCB3b27igJl0IG1hdGNoIHRoZSBhZGRyZXNzIG9mIHRoZSBzYW1lIGZ1bmN0aW9uIHRha2VuIHRo ZXJlLiBUaGlzCm1heSBicmVhayBjb2RlIHRoYXQgcmVsaWVzIG9uIGNvbXBhcmluZyBhZGRyZXNz ZXMgcGFzc2VkIGZyb20gb3RoZXIKY29tcG9uZW50cy4KCkNGSSBjaGVja2luZyBjYW4gYmUgZGlz YWJsZWQgaW4gYSBmdW5jdGlvbiB3aXRoIHRoZSBfX25vY2ZpIGF0dHJpYnV0ZS4KQWRkaXRpb25h bGx5LCBDRkkgY2FuIGJlIGRpc2FibGVkIGZvciBhbiBlbnRpcmUgY29tcGlsYXRpb24gdW5pdCBi eQpmaWx0ZXJpbmcgb3V0IENDX0ZMQUdTX0NGSS4KCkJ5IGRlZmF1bHQsIENGSSBmYWlsdXJlcyBy ZXN1bHQgaW4gYSBrZXJuZWwgcGFuaWMgdG8gc3RvcCBhIHBvdGVudGlhbApleHBsb2l0LiBDT05G SUdfQ0ZJX1BFUk1JU1NJVkUgZW5hYmxlcyBhIHBlcm1pc3NpdmUgbW9kZSwgd2hlcmUgdGhlCmtl cm5lbCBwcmludHMgb3V0IGEgcmF0ZS1saW1pdGVkIHdhcm5pbmcgaW5zdGVhZCwgYW5kIGFsbG93 cyBleGVjdXRpb24KdG8gY29udGludWUuIFRoaXMgb3B0aW9uIGlzIGhlbHBmdWwgZm9yIGxvY2F0 aW5nIHR5cGUgbWlzbWF0Y2hlcywgYnV0CnNob3VsZCBvbmx5IGJlIGVuYWJsZWQgZHVyaW5nIGRl dmVsb3BtZW50LgoKU2lnbmVkLW9mZi1ieTogU2FtaSBUb2x2YW5lbiA8c2FtaXRvbHZhbmVuQGdv b2dsZS5jb20+ClJldmlld2VkLWJ5OiBLZWVzIENvb2sgPGtlZXNjb29rQGNocm9taXVtLm9yZz4K VGVzdGVkLWJ5OiBOYXRoYW4gQ2hhbmNlbGxvciA8bmF0aGFuQGtlcm5lbC5vcmc+Ci0tLQogTWFr ZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE3ICsrCiBhcmNoL0tjb25maWcgICAg ICAgICAgICAgICAgICAgICAgfCAgNDUgKysrKwogaW5jbHVkZS9hc20tZ2VuZXJpYy9idWcuaCAg ICAgICAgIHwgIDE2ICsrCiBpbmNsdWRlL2FzbS1nZW5lcmljL3ZtbGludXgubGRzLmggfCAgMjAg Ky0KIGluY2x1ZGUvbGludXgvY2ZpLmggICAgICAgICAgICAgICB8ICA0MSArKysrCiBpbmNsdWRl L2xpbnV4L2NvbXBpbGVyLWNsYW5nLmggICAgfCAgIDIgKwogaW5jbHVkZS9saW51eC9jb21waWxl cl90eXBlcy5oICAgIHwgICA0ICsKIGluY2x1ZGUvbGludXgvaW5pdC5oICAgICAgICAgICAgICB8 ICAgMiArLQogaW5jbHVkZS9saW51eC9tb2R1bGUuaCAgICAgICAgICAgIHwgIDEzICstCiBpbml0 L0tjb25maWcgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGtlcm5lbC9NYWtlZmlsZSAg ICAgICAgICAgICAgICAgICB8ICAgNCArCiBrZXJuZWwvY2ZpLmMgICAgICAgICAgICAgICAgICAg ICAgfCAzMjkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBrZXJuZWwvbW9kdWxlLmMg ICAgICAgICAgICAgICAgICAgfCAgNDMgKysrKwogc2NyaXB0cy9NYWtlZmlsZS5tb2RmaW5hbCAg ICAgICAgIHwgICAyICstCiAxNCBmaWxlcyBjaGFuZ2VkLCA1MzQgaW5zZXJ0aW9ucygrKSwgNiBk ZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2xpbnV4L2NmaS5oCiBjcmVh dGUgbW9kZSAxMDA2NDQga2VybmVsL2NmaS5jCgpkaWZmIC0tZ2l0IGEvTWFrZWZpbGUgYi9NYWtl ZmlsZQppbmRleCBjYzc3ZmQ0NWNhNjQuLjQyN2Y3NTI0OWQ1ZSAxMDA2NDQKLS0tIGEvTWFrZWZp bGUKKysrIGIvTWFrZWZpbGUKQEAgLTkyMCw2ICs5MjAsMjMgQEAgS0JVSUxEX0FGTEFHUwkrPSAt Zm5vLWx0bwogZXhwb3J0IENDX0ZMQUdTX0xUTwogZW5kaWYKIAoraWZkZWYgQ09ORklHX0NGSV9D TEFORworQ0NfRkxBR1NfQ0ZJCTo9IC1mc2FuaXRpemU9Y2ZpIFwKKwkJICAgLWZzYW5pdGl6ZS1j ZmktY3Jvc3MtZHNvIFwKKwkJICAgLWZuby1zYW5pdGl6ZS1jZmktY2Fub25pY2FsLWp1bXAtdGFi bGVzIFwKKwkJICAgLWZuby1zYW5pdGl6ZS10cmFwPWNmaSBcCisJCSAgIC1mbm8tc2FuaXRpemUt YmxhY2tsaXN0CisKK2lmZGVmIENPTkZJR19DRklfUEVSTUlTU0lWRQorQ0NfRkxBR1NfQ0ZJCSs9 IC1mc2FuaXRpemUtcmVjb3Zlcj1jZmkKK2VuZGlmCisKKyMgSWYgTFRPIGZsYWdzIGFyZSBmaWx0 ZXJlZCBvdXQsIHdlIG11c3QgYWxzbyBmaWx0ZXIgb3V0IENGSS4KK0NDX0ZMQUdTX0xUTwkrPSAk KENDX0ZMQUdTX0NGSSkKK0tCVUlMRF9DRkxBR1MJKz0gJChDQ19GTEFHU19DRkkpCitleHBvcnQg Q0NfRkxBR1NfQ0ZJCitlbmRpZgorCiBpZmRlZiBDT05GSUdfREVCVUdfRk9SQ0VfRlVOQ1RJT05f QUxJR05fMzJCCiBLQlVJTERfQ0ZMQUdTICs9IC1mYWxpZ24tZnVuY3Rpb25zPTMyCiBlbmRpZgpk aWZmIC0tZ2l0IGEvYXJjaC9LY29uZmlnIGIvYXJjaC9LY29uZmlnCmluZGV4IGVjZmQzNTIwYjY3 Ni4uZjZhODViYTZjYmEyIDEwMDY0NAotLS0gYS9hcmNoL0tjb25maWcKKysrIGIvYXJjaC9LY29u ZmlnCkBAIC02OTIsNiArNjkyLDUxIEBAIGNvbmZpZyBMVE9fQ0xBTkdfVEhJTgogCSAgSWYgdW5z dXJlLCBzYXkgWS4KIGVuZGNob2ljZQogCitjb25maWcgQVJDSF9TVVBQT1JUU19DRklfQ0xBTkcK Kwlib29sCisJaGVscAorCSAgQW4gYXJjaGl0ZWN0dXJlIHNob3VsZCBzZWxlY3QgdGhpcyBvcHRp b24gaWYgaXQgY2FuIHN1cHBvcnQgQ2xhbmcncworCSAgQ29udHJvbC1GbG93IEludGVncml0eSAo Q0ZJKSBjaGVja2luZy4KKworY29uZmlnIENGSV9DTEFORworCWJvb2wgIlVzZSBDbGFuZydzIENv bnRyb2wgRmxvdyBJbnRlZ3JpdHkgKENGSSkiCisJZGVwZW5kcyBvbiBMVE9fQ0xBTkcgJiYgQVJD SF9TVVBQT1JUU19DRklfQ0xBTkcKKwkjIENsYW5nID49IDEyOgorCSMgLSBodHRwczovL2J1Z3Mu bGx2bS5vcmcvc2hvd19idWcuY2dpP2lkPTQ2MjU4CisJIyAtIGh0dHBzOi8vYnVncy5sbHZtLm9y Zy9zaG93X2J1Zy5jZ2k/aWQ9NDc0NzkKKwlkZXBlbmRzIG9uIENMQU5HX1ZFUlNJT04gPj0gMTIw MDAwCisJc2VsZWN0IEtBTExTWU1TCisJaGVscAorCSAgVGhpcyBvcHRpb24gZW5hYmxlcyBDbGFu Z+KAmXMgZm9yd2FyZC1lZGdlIENvbnRyb2wgRmxvdyBJbnRlZ3JpdHkKKwkgIChDRkkpIGNoZWNr aW5nLCB3aGVyZSB0aGUgY29tcGlsZXIgaW5qZWN0cyBhIHJ1bnRpbWUgY2hlY2sgdG8gZWFjaAor CSAgaW5kaXJlY3QgZnVuY3Rpb24gY2FsbCB0byBlbnN1cmUgdGhlIHRhcmdldCBpcyBhIHZhbGlk IGZ1bmN0aW9uIHdpdGgKKwkgIHRoZSBjb3JyZWN0IHN0YXRpYyB0eXBlLiBUaGlzIHJlc3RyaWN0 cyBwb3NzaWJsZSBjYWxsIHRhcmdldHMgYW5kCisJICBtYWtlcyBpdCBtb3JlIGRpZmZpY3VsdCBm b3IgYW4gYXR0YWNrZXIgdG8gZXhwbG9pdCBidWdzIHRoYXQgYWxsb3cKKwkgIHRoZSBtb2RpZmlj YXRpb24gb2Ygc3RvcmVkIGZ1bmN0aW9uIHBvaW50ZXJzLiBNb3JlIGluZm9ybWF0aW9uIGNhbiBi ZQorCSAgZm91bmQgZnJvbSBDbGFuZydzIGRvY3VtZW50YXRpb246CisKKwkgICAgaHR0cHM6Ly9j bGFuZy5sbHZtLm9yZy9kb2NzL0NvbnRyb2xGbG93SW50ZWdyaXR5Lmh0bWwKKworY29uZmlnIENG SV9DTEFOR19TSEFET1cKKwlib29sICJVc2UgQ0ZJIHNoYWRvdyB0byBzcGVlZCB1cCBjcm9zcy1t b2R1bGUgY2hlY2tzIgorCWRlZmF1bHQgeQorCWRlcGVuZHMgb24gQ0ZJX0NMQU5HICYmIE1PRFVM RVMKKwloZWxwCisJICBJZiB5b3Ugc2VsZWN0IHRoaXMgb3B0aW9uLCB0aGUga2VybmVsIGJ1aWxk cyBhIGZhc3QgbG9vay11cCB0YWJsZSBvZgorCSAgQ0ZJIGNoZWNrIGZ1bmN0aW9ucyBpbiBsb2Fk ZWQgbW9kdWxlcyB0byByZWR1Y2UgcGVyZm9ybWFuY2Ugb3ZlcmhlYWQuCisKKwkgIElmIHVuc3Vy ZSwgc2F5IFkuCisKK2NvbmZpZyBDRklfUEVSTUlTU0lWRQorCWJvb2wgIlVzZSBDRkkgaW4gcGVy bWlzc2l2ZSBtb2RlIgorCWRlcGVuZHMgb24gQ0ZJX0NMQU5HCisJaGVscAorCSAgV2hlbiBzZWxl Y3RlZCwgQ29udHJvbCBGbG93IEludGVncml0eSAoQ0ZJKSB2aW9sYXRpb25zIHJlc3VsdCBpbiBh CisJICB3YXJuaW5nIGluc3RlYWQgb2YgYSBrZXJuZWwgcGFuaWMuIFRoaXMgb3B0aW9uIHNob3Vs ZCBvbmx5IGJlIHVzZWQKKwkgIGZvciBmaW5kaW5nIGluZGlyZWN0IGNhbGwgdHlwZSBtaXNtYXRj aGVzIGR1cmluZyBkZXZlbG9wbWVudC4KKworCSAgSWYgdW5zdXJlLCBzYXkgTi4KKwogY29uZmln IEhBVkVfQVJDSF9XSVRISU5fU1RBQ0tfRlJBTUVTCiAJYm9vbAogCWhlbHAKZGlmZiAtLWdpdCBh L2luY2x1ZGUvYXNtLWdlbmVyaWMvYnVnLmggYi9pbmNsdWRlL2FzbS1nZW5lcmljL2J1Zy5oCmlu ZGV4IDc2YTEwZTBkY2E5Zi4uYjQwMjQ5NDg4M2I2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1n ZW5lcmljL2J1Zy5oCisrKyBiL2luY2x1ZGUvYXNtLWdlbmVyaWMvYnVnLmgKQEAgLTI0MSw2ICsy NDEsMjIgQEAgdm9pZCBfX3dhcm4oY29uc3QgY2hhciAqZmlsZSwgaW50IGxpbmUsIHZvaWQgKmNh bGxlciwgdW5zaWduZWQgdGFpbnQsCiAjIGRlZmluZSBXQVJOX09OX1NNUCh4KQkJCSh7MDt9KQog I2VuZGlmCiAKKy8qCisgKiBXQVJOX09OX0ZVTkNUSU9OX01JU01BVENIKCkgd2FybnMgaWYgYSB2 YWx1ZSBkb2Vzbid0IG1hdGNoIGEKKyAqIGZ1bmN0aW9uIGFkZHJlc3MsIGFuZCBjYW4gYmUgdXNl ZnVsIGZvciBjYXRjaGluZyBpc3N1ZXMgd2l0aAorICogY2FsbGJhY2sgZnVuY3Rpb25zLCBmb3Ig ZXhhbXBsZS4KKyAqCisgKiBXaXRoIENPTkZJR19DRklfQ0xBTkcsIHRoZSB3YXJuaW5nIGlzIGRp c2FibGVkIGJlY2F1c2UgdGhlCisgKiBjb21waWxlciByZXBsYWNlcyBmdW5jdGlvbiBhZGRyZXNz ZXMgdGFrZW4gaW4gQyBjb2RlIHdpdGgKKyAqIGxvY2FsIGp1bXAgdGFibGUgYWRkcmVzc2VzLCB3 aGljaCBicmVha3MgY3Jvc3MtbW9kdWxlIGZ1bmN0aW9uCisgKiBhZGRyZXNzIGVxdWFsaXR5Lgor ICovCisjaWYgZGVmaW5lZChDT05GSUdfQ0ZJX0NMQU5HKSAmJiBkZWZpbmVkKENPTkZJR19NT0RV TEVTKQorIyBkZWZpbmUgV0FSTl9PTl9GVU5DVElPTl9NSVNNQVRDSCh4LCBmbikgKHsgMDsgfSkK KyNlbHNlCisjIGRlZmluZSBXQVJOX09OX0ZVTkNUSU9OX01JU01BVENIKHgsIGZuKSBXQVJOX09O X09OQ0UoKHgpICE9IChmbikpCisjZW5kaWYKKwogI2VuZGlmIC8qIF9fQVNTRU1CTFlfXyAqLwog CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWdlbmVyaWMvdm1saW51eC5sZHMuaCBi L2luY2x1ZGUvYXNtLWdlbmVyaWMvdm1saW51eC5sZHMuaAppbmRleCAwMzMxZDVkNDk1NTEuLjQw YTljMTAxNTY1ZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tZ2VuZXJpYy92bWxpbnV4Lmxkcy5o CisrKyBiL2luY2x1ZGUvYXNtLWdlbmVyaWMvdm1saW51eC5sZHMuaApAQCAtNTQ0LDYgKzU0NCwy MiBAQAogCS4gPSBBTElHTigoYWxpZ24pKTsJCQkJCQlcCiAJX19lbmRfcm9kYXRhID0gLjsKIAor CisvKgorICogLnRleHQuLkwuY2ZpLmp1bXB0YWJsZS4qIGNvbnRhaW4gQ29udHJvbC1GbG93IElu dGVncml0eSAoQ0ZJKQorICoganVtcCB0YWJsZSBlbnRyaWVzLgorICovCisjaWZkZWYgQ09ORklH X0NGSV9DTEFORworI2RlZmluZSBURVhUX0NGSV9KVAkJCQkJCQlcCisJCS4gPSBBTElHTihQTURf U0laRSk7CQkJCQlcCisJCV9fY2ZpX2p0X3N0YXJ0ID0gLjsJCQkJCVwKKwkJKigudGV4dC4uTC5j ZmkuanVtcHRhYmxlIC50ZXh0Li5MLmNmaS5qdW1wdGFibGUuKikJXAorCQkuID0gQUxJR04oUE1E X1NJWkUpOwkJCQkJXAorCQlfX2NmaV9qdF9lbmQgPSAuOworI2Vsc2UKKyNkZWZpbmUgVEVYVF9D RklfSlQKKyNlbmRpZgorCiAvKgogICogTm9uLWluc3RydW1lbnRhYmxlIHRleHQgc2VjdGlvbgog ICovCkBAIC01NzAsNiArNTg2LDcgQEAKIAkJTk9JTlNUUl9URVhUCQkJCQkJXAogCQkqKC50ZXh0 Li5yZWZjb3VudCkJCQkJCVwKIAkJKigucmVmLnRleHQpCQkJCQkJXAorCQlURVhUX0NGSV9KVAkJ CQkJCVwKIAlNRU1fS0VFUChpbml0LnRleHQqKQkJCQkJCVwKIAlNRU1fS0VFUChleGl0LnRleHQq KQkJCQkJCVwKIApAQCAtOTc0LDcgKzk5MSw4IEBACiAgKiBrZWVwIGFueSAuaW5pdF9hcnJheS4q IHNlY3Rpb25zLgogICogaHR0cHM6Ly9idWdzLmxsdm0ub3JnL3Nob3dfYnVnLmNnaT9pZD00NjQ3 OAogICovCi0jaWYgZGVmaW5lZChDT05GSUdfR0NPVl9LRVJORUwpIHx8IGRlZmluZWQoQ09ORklH X0tBU0FOX0dFTkVSSUMpIHx8IGRlZmluZWQoQ09ORklHX0tDU0FOKQorI2lmIGRlZmluZWQoQ09O RklHX0dDT1ZfS0VSTkVMKSB8fCBkZWZpbmVkKENPTkZJR19LQVNBTl9HRU5FUklDKSB8fCBkZWZp bmVkKENPTkZJR19LQ1NBTikgfHwgXAorCWRlZmluZWQoQ09ORklHX0NGSV9DTEFORykKICMgaWZk ZWYgQ09ORklHX0NPTlNUUlVDVE9SUwogIyAgZGVmaW5lIFNBTklUSVpFUl9ESVNDQVJEUwkJCQkJ CVwKIAkqKC5laF9mcmFtZSkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvY2ZpLmggYi9pbmNs dWRlL2xpbnV4L2NmaS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u ODc5NzQ0YWFhNmUwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9saW51eC9jZmkuaApAQCAt MCwwICsxLDQxIEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLworLyoK KyAqIENsYW5nIENvbnRyb2wgRmxvdyBJbnRlZ3JpdHkgKENGSSkgc3VwcG9ydC4KKyAqCisgKiBD b3B5cmlnaHQgKEMpIDIwMjEgR29vZ2xlIExMQworICovCisjaWZuZGVmIF9MSU5VWF9DRklfSAor I2RlZmluZSBfTElOVVhfQ0ZJX0gKKworI2lmZGVmIENPTkZJR19DRklfQ0xBTkcKK3R5cGVkZWYg dm9pZCAoKmNmaV9jaGVja19mbikodWludDY0X3QgaWQsIHZvaWQgKnB0ciwgdm9pZCAqZGlhZyk7 CisKKy8qIENvbXBpbGVyLWdlbmVyYXRlZCBmdW5jdGlvbiBpbiBlYWNoIG1vZHVsZSwgYW5kIHRo ZSBrZXJuZWwgKi8KK2V4dGVybiB2b2lkIF9fY2ZpX2NoZWNrKHVpbnQ2NF90IGlkLCB2b2lkICpw dHIsIHZvaWQgKmRpYWcpOworCisvKgorICogRm9yY2UgdGhlIGNvbXBpbGVyIHRvIGdlbmVyYXRl IGEgQ0ZJIGp1bXAgdGFibGUgZW50cnkgZm9yIGEgZnVuY3Rpb24KKyAqIGFuZCBzdG9yZSB0aGUg anVtcCB0YWJsZSBhZGRyZXNzIHRvIF9fY2ZpX2p0XzxmdW5jdGlvbj4uCisgKi8KKyNkZWZpbmUg X19DRklfQUREUkVTU0FCTEUoZm4sIF9fYXR0cikgXAorCWNvbnN0IHZvaWQgKl9fY2ZpX2p0XyAj IyBmbiBfX3Zpc2libGUgX19hdHRyID0gKHZvaWQgKikmZm4KKworI2lmZGVmIENPTkZJR19DRklf Q0xBTkdfU0hBRE9XCisKK2V4dGVybiB2b2lkIGNmaV9tb2R1bGVfYWRkKHN0cnVjdCBtb2R1bGUg Km1vZCwgdW5zaWduZWQgbG9uZyBiYXNlX2FkZHIpOworZXh0ZXJuIHZvaWQgY2ZpX21vZHVsZV9y ZW1vdmUoc3RydWN0IG1vZHVsZSAqbW9kLCB1bnNpZ25lZCBsb25nIGJhc2VfYWRkcik7CisKKyNl bHNlCisKK3N0YXRpYyBpbmxpbmUgdm9pZCBjZmlfbW9kdWxlX2FkZChzdHJ1Y3QgbW9kdWxlICpt b2QsIHVuc2lnbmVkIGxvbmcgYmFzZV9hZGRyKSB7fQorc3RhdGljIGlubGluZSB2b2lkIGNmaV9t b2R1bGVfcmVtb3ZlKHN0cnVjdCBtb2R1bGUgKm1vZCwgdW5zaWduZWQgbG9uZyBiYXNlX2FkZHIp IHt9CisKKyNlbmRpZiAvKiBDT05GSUdfQ0ZJX0NMQU5HX1NIQURPVyAqLworCisjZWxzZSAvKiAh Q09ORklHX0NGSV9DTEFORyAqLworCisjZGVmaW5lIF9fQ0ZJX0FERFJFU1NBQkxFKGZuLCBfX2F0 dHIpCisKKyNlbmRpZiAvKiBDT05GSUdfQ0ZJX0NMQU5HICovCisKKyNlbmRpZiAvKiBfTElOVVhf Q0ZJX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvY29tcGlsZXItY2xhbmcuaCBiL2lu Y2x1ZGUvbGludXgvY29tcGlsZXItY2xhbmcuaAppbmRleCBkMjE3YzM4MmIwMmQuLjZkZTlkMGM5 Mzc3ZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9jb21waWxlci1jbGFuZy5oCisrKyBiL2lu Y2x1ZGUvbGludXgvY29tcGlsZXItY2xhbmcuaApAQCAtNjEsMyArNjEsNSBAQAogI2lmIF9faGFz X2ZlYXR1cmUoc2hhZG93X2NhbGxfc3RhY2spCiAjIGRlZmluZSBfX25vc2NzCV9fYXR0cmlidXRl X18oKF9fbm9fc2FuaXRpemVfXygic2hhZG93LWNhbGwtc3RhY2siKSkpCiAjZW5kaWYKKworI2Rl ZmluZSBfX25vY2ZpCQlfX2F0dHJpYnV0ZV9fKChfX25vX3Nhbml0aXplX18oImNmaSIpKSkKZGlm ZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvY29tcGlsZXJfdHlwZXMuaCBiL2luY2x1ZGUvbGludXgv Y29tcGlsZXJfdHlwZXMuaAppbmRleCBlNWRkNWE0YWU5NDYuLjc5NjkzNWEzN2UzNyAxMDA2NDQK LS0tIGEvaW5jbHVkZS9saW51eC9jb21waWxlcl90eXBlcy5oCisrKyBiL2luY2x1ZGUvbGludXgv Y29tcGlsZXJfdHlwZXMuaApAQCAtMjQyLDYgKzI0MiwxMCBAQCBzdHJ1Y3QgZnRyYWNlX2xpa2Vs eV9kYXRhIHsKICMgZGVmaW5lIF9fbm9zY3MKICNlbmRpZgogCisjaWZuZGVmIF9fbm9jZmkKKyMg ZGVmaW5lIF9fbm9jZmkKKyNlbmRpZgorCiAjaWZuZGVmIGFzbV92b2xhdGlsZV9nb3RvCiAjZGVm aW5lIGFzbV92b2xhdGlsZV9nb3RvKHguLi4pIGFzbSBnb3RvKHgpCiAjZW5kaWYKZGlmZiAtLWdp dCBhL2luY2x1ZGUvbGludXgvaW5pdC5oIGIvaW5jbHVkZS9saW51eC9pbml0LmgKaW5kZXggMzFm NTRkZTU4NDI5Li5iM2VhMTUzNDhmYmQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaW5pdC5o CisrKyBiL2luY2x1ZGUvbGludXgvaW5pdC5oCkBAIC00Nyw3ICs0Nyw3IEBACiAKIC8qIFRoZXNl IGFyZSBmb3IgZXZlcnlib2R5IChhbHRob3VnaCBub3QgYWxsIGFyY2hzIHdpbGwgYWN0dWFsbHkK ICAgIGRpc2NhcmQgaXQgaW4gbW9kdWxlcykgKi8KLSNkZWZpbmUgX19pbml0CQlfX3NlY3Rpb24o Ii5pbml0LnRleHQiKSBfX2NvbGQgIF9fbGF0ZW50X2VudHJvcHkgX19ub2luaXRyZXRwb2xpbmUK KyNkZWZpbmUgX19pbml0CQlfX3NlY3Rpb24oIi5pbml0LnRleHQiKSBfX2NvbGQgIF9fbGF0ZW50 X2VudHJvcHkgX19ub2luaXRyZXRwb2xpbmUgX19ub2NmaQogI2RlZmluZSBfX2luaXRkYXRhCV9f c2VjdGlvbigiLmluaXQuZGF0YSIpCiAjZGVmaW5lIF9faW5pdGNvbnN0CV9fc2VjdGlvbigiLmlu aXQucm9kYXRhIikKICNkZWZpbmUgX19leGl0ZGF0YQlfX3NlY3Rpb24oIi5leGl0LmRhdGEiKQpk aWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tb2R1bGUuaCBiL2luY2x1ZGUvbGludXgvbW9kdWxl LmgKaW5kZXggZGE0YjZmYmU4ZWJlLi44MTAwYmI0NzdkODYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv bGludXgvbW9kdWxlLmgKKysrIGIvaW5jbHVkZS9saW51eC9tb2R1bGUuaApAQCAtMjYsNiArMjYs NyBAQAogI2luY2x1ZGUgPGxpbnV4L3RyYWNlcG9pbnQtZGVmcy5oPgogI2luY2x1ZGUgPGxpbnV4 L3NyY3UuaD4KICNpbmNsdWRlIDxsaW51eC9zdGF0aWNfY2FsbF90eXBlcy5oPgorI2luY2x1ZGUg PGxpbnV4L2NmaS5oPgogCiAjaW5jbHVkZSA8bGludXgvcGVyY3B1Lmg+CiAjaW5jbHVkZSA8YXNt L21vZHVsZS5oPgpAQCAtMTI4LDEzICsxMjksMTcgQEAgZXh0ZXJuIHZvaWQgY2xlYW51cF9tb2R1 bGUodm9pZCk7CiAjZGVmaW5lIG1vZHVsZV9pbml0KGluaXRmbikJCQkJCVwKIAlzdGF0aWMgaW5s aW5lIGluaXRjYWxsX3QgX19tYXliZV91bnVzZWQgX19pbml0dGVzdCh2b2lkKQkJXAogCXsgcmV0 dXJuIGluaXRmbjsgfQkJCQkJXAotCWludCBpbml0X21vZHVsZSh2b2lkKSBfX2NvcHkoaW5pdGZu KSBfX2F0dHJpYnV0ZV9fKChhbGlhcygjaW5pdGZuKSkpOworCWludCBpbml0X21vZHVsZSh2b2lk KSBfX2NvcHkoaW5pdGZuKQkJCVwKKwkJX19hdHRyaWJ1dGVfXygoYWxpYXMoI2luaXRmbikpKTsJ CVwKKwlfX0NGSV9BRERSRVNTQUJMRShpbml0X21vZHVsZSwgX19pbml0ZGF0YSk7CiAKIC8qIFRo aXMgaXMgb25seSByZXF1aXJlZCBpZiB5b3Ugd2FudCB0byBiZSB1bmxvYWRhYmxlLiAqLwogI2Rl ZmluZSBtb2R1bGVfZXhpdChleGl0Zm4pCQkJCQlcCiAJc3RhdGljIGlubGluZSBleGl0Y2FsbF90 IF9fbWF5YmVfdW51c2VkIF9fZXhpdHRlc3Qodm9pZCkJCVwKIAl7IHJldHVybiBleGl0Zm47IH0J CQkJCVwKLQl2b2lkIGNsZWFudXBfbW9kdWxlKHZvaWQpIF9fY29weShleGl0Zm4pIF9fYXR0cmli dXRlX18oKGFsaWFzKCNleGl0Zm4pKSk7CisJdm9pZCBjbGVhbnVwX21vZHVsZSh2b2lkKSBfX2Nv cHkoZXhpdGZuKQkJXAorCQlfX2F0dHJpYnV0ZV9fKChhbGlhcygjZXhpdGZuKSkpOwkJXAorCV9f Q0ZJX0FERFJFU1NBQkxFKGNsZWFudXBfbW9kdWxlLCBfX2V4aXRkYXRhKTsKIAogI2VuZGlmCiAK QEAgLTM3Niw2ICszODEsMTAgQEAgc3RydWN0IG1vZHVsZSB7CiAJY29uc3QgczMyICpjcmNzOwog CXVuc2lnbmVkIGludCBudW1fc3ltczsKIAorI2lmZGVmIENPTkZJR19DRklfQ0xBTkcKKwljZmlf Y2hlY2tfZm4gY2ZpX2NoZWNrOworI2VuZGlmCisKIAkvKiBLZXJuZWwgcGFyYW1ldGVycy4gKi8K ICNpZmRlZiBDT05GSUdfU1lTRlMKIAlzdHJ1Y3QgbXV0ZXggcGFyYW1fbG9jazsKZGlmZiAtLWdp dCBhL2luaXQvS2NvbmZpZyBiL2luaXQvS2NvbmZpZwppbmRleCA1ZjVjNzc2ZWYxOTIuLjViYWJl YTM4ZTM0NiAxMDA2NDQKLS0tIGEvaW5pdC9LY29uZmlnCisrKyBiL2luaXQvS2NvbmZpZwpAQCAt MjI5Niw3ICsyMjk2LDcgQEAgZW5kaWYgIyBNT0RVTEVTCiAKIGNvbmZpZyBNT0RVTEVTX1RSRUVf TE9PS1VQCiAJZGVmX2Jvb2wgeQotCWRlcGVuZHMgb24gUEVSRl9FVkVOVFMgfHwgVFJBQ0lORwor CWRlcGVuZHMgb24gUEVSRl9FVkVOVFMgfHwgVFJBQ0lORyB8fCBDRklfQ0xBTkcKIAogY29uZmln IElOSVRfQUxMX1BPU1NJQkxFCiAJYm9vbApkaWZmIC0tZ2l0IGEva2VybmVsL01ha2VmaWxlIGIv a2VybmVsL01ha2VmaWxlCmluZGV4IDMyMGYxZjM5NDFiNy4uZThhNjcxNWYzOGRjIDEwMDY0NAot LS0gYS9rZXJuZWwvTWFrZWZpbGUKKysrIGIva2VybmVsL01ha2VmaWxlCkBAIC00MSw2ICs0MSw5 IEBAIEtDU0FOX1NBTklUSVpFX2tjb3YubyA6PSBuCiBVQlNBTl9TQU5JVElaRV9rY292Lm8gOj0g bgogQ0ZMQUdTX2tjb3YubyA6PSAkKGNhbGwgY2Mtb3B0aW9uLCAtZm5vLWNvbnNlcnZlLXN0YWNr KSAtZm5vLXN0YWNrLXByb3RlY3RvcgogCisjIERvbid0IGluc3RydW1lbnQgZXJyb3IgaGFuZGxl cnMKK0NGTEFHU19SRU1PVkVfY2ZpLm8gOj0gJChDQ19GTEFHU19DRkkpCisKIG9iai15ICs9IHNj aGVkLwogb2JqLXkgKz0gbG9ja2luZy8KIG9iai15ICs9IHBvd2VyLwpAQCAtMTExLDYgKzExNCw3 IEBAIG9iai0kKENPTkZJR19CUEYpICs9IGJwZi8KIG9iai0kKENPTkZJR19LQ1NBTikgKz0ga2Nz YW4vCiBvYmotJChDT05GSUdfU0hBRE9XX0NBTExfU1RBQ0spICs9IHNjcy5vCiBvYmotJChDT05G SUdfSEFWRV9TVEFUSUNfQ0FMTF9JTkxJTkUpICs9IHN0YXRpY19jYWxsLm8KK29iai0kKENPTkZJ R19DRklfQ0xBTkcpICs9IGNmaS5vCiAKIG9iai0kKENPTkZJR19QRVJGX0VWRU5UUykgKz0gZXZl bnRzLwogCmRpZmYgLS1naXQgYS9rZXJuZWwvY2ZpLmMgYi9rZXJuZWwvY2ZpLmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lMTdhNTY2Mzk3NjYKLS0tIC9kZXYvbnVs bAorKysgYi9rZXJuZWwvY2ZpLmMKQEAgLTAsMCArMSwzMjkgQEAKKy8vIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBHUEwtMi4wCisvKgorICogQ2xhbmcgQ29udHJvbCBGbG93IEludGVncml0eSAo Q0ZJKSBlcnJvciBhbmQgc2xvd3BhdGggaGFuZGxpbmcuCisgKgorICogQ29weXJpZ2h0IChDKSAy MDIxIEdvb2dsZSBMTEMKKyAqLworCisjaW5jbHVkZSA8bGludXgvaGFyZGlycS5oPgorI2luY2x1 ZGUgPGxpbnV4L2thbGxzeW1zLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVk ZSA8bGludXgvbXV0ZXguaD4KKyNpbmNsdWRlIDxsaW51eC9wcmludGsuaD4KKyNpbmNsdWRlIDxs aW51eC9yYXRlbGltaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9yY3VwZGF0ZS5oPgorI2luY2x1ZGUg PGxpbnV4L3ZtYWxsb2MuaD4KKyNpbmNsdWRlIDxhc20vY2FjaGVmbHVzaC5oPgorI2luY2x1ZGUg PGFzbS9zZXRfbWVtb3J5Lmg+CisKKy8qIENvbXBpbGVyLWRlZmluZWQgaGFuZGxlciBuYW1lcyAq LworI2lmZGVmIENPTkZJR19DRklfUEVSTUlTU0lWRQorI2RlZmluZSBjZmlfZmFpbHVyZV9oYW5k bGVyCV9fdWJzYW5faGFuZGxlX2NmaV9jaGVja19mYWlsCisjZWxzZQorI2RlZmluZSBjZmlfZmFp bHVyZV9oYW5kbGVyCV9fdWJzYW5faGFuZGxlX2NmaV9jaGVja19mYWlsX2Fib3J0CisjZW5kaWYK Kworc3RhdGljIGlubGluZSB2b2lkIGhhbmRsZV9jZmlfZmFpbHVyZSh2b2lkICpwdHIpCit7CisJ aWYgKElTX0VOQUJMRUQoQ09ORklHX0NGSV9QRVJNSVNTSVZFKSkKKwkJV0FSTl9SQVRFTElNSVQo MSwgIkNGSSBmYWlsdXJlICh0YXJnZXQ6ICVwUyk6XG4iLCBwdHIpOworCWVsc2UKKwkJcGFuaWMo IkNGSSBmYWlsdXJlICh0YXJnZXQ6ICVwUylcbiIsIHB0cik7Cit9CisKKyNpZmRlZiBDT05GSUdf TU9EVUxFUworI2lmZGVmIENPTkZJR19DRklfQ0xBTkdfU0hBRE9XCisvKgorICogSW5kZXggdHlw ZS4gQSAxNi1iaXQgaW5kZXggY2FuIGFkZHJlc3MgYXQgbW9zdCAoMl4xNiktMiBwYWdlcyAodGFr aW5nCisgKiBpbnRvIGFjY291bnQgU0hBRE9XX0lOVkFMSUQpLCBpLmUuIH4yNTZNIHdpdGggNGsg cGFnZXMuCisgKi8KK3R5cGVkZWYgdTE2IHNoYWRvd190OworI2RlZmluZSBTSEFET1dfSU5WQUxJ RAkJKChzaGFkb3dfdCl+MFVMKQorCitzdHJ1Y3QgY2ZpX3NoYWRvdyB7CisJLyogUGFnZSBpbmRl eCBmb3IgdGhlIGJlZ2lubmluZyBvZiB0aGUgc2hhZG93ICovCisJdW5zaWduZWQgbG9uZyBiYXNl OworCS8qIEFuIGFycmF5IG9mIF9fY2ZpX2NoZWNrIGxvY2F0aW9ucyAoYXMgaW5kaWNlcyB0byB0 aGUgc2hhZG93KSAqLworCXNoYWRvd190IHNoYWRvd1sxXTsKK30gX19wYWNrZWQ7CisKKy8qCisg KiBUaGUgc2hhZG93IGNvdmVycyB+MTI4TSBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIG1vZHVs ZSByZWdpb24uIElmCisgKiB0aGUgcmVnaW9uIGlzIGxhcmdlciwgd2UgZmFsbCBiYWNrIHRvIF9f bW9kdWxlX2FkZHJlc3MgZm9yIHRoZSByZXN0LgorICovCisjZGVmaW5lIF9fU0hBRE9XX1JBTkdF CQkoX1VMKFNaXzEyOE0pID4+IFBBR0VfU0hJRlQpCisKKy8qIFRoZSBpbi1tZW1vcnkgc2l6ZSBv ZiBzdHJ1Y3QgY2ZpX3NoYWRvdywgYWx3YXlzIGF0IGxlYXN0IG9uZSBwYWdlICovCisjZGVmaW5l IF9fU0hBRE9XX1BBR0VTCQkoKF9fU0hBRE9XX1JBTkdFICogc2l6ZW9mKHNoYWRvd190KSkgPj4g UEFHRV9TSElGVCkKKyNkZWZpbmUgU0hBRE9XX1BBR0VTCQltYXgoMVVMLCBfX1NIQURPV19QQUdF UykKKyNkZWZpbmUgU0hBRE9XX1NJWkUJCShTSEFET1dfUEFHRVMgPDwgUEFHRV9TSElGVCkKKwor LyogVGhlIGFjdHVhbCBzaXplIG9mIHRoZSBzaGFkb3cgYXJyYXksIG1pbnVzIG1ldGFkYXRhICov CisjZGVmaW5lIFNIQURPV19BUlJfU0laRQkJKFNIQURPV19TSVpFIC0gb2Zmc2V0b2Yoc3RydWN0 IGNmaV9zaGFkb3csIHNoYWRvdykpCisjZGVmaW5lIFNIQURPV19BUlJfU0xPVFMJKFNIQURPV19B UlJfU0laRSAvIHNpemVvZihzaGFkb3dfdCkpCisKK3N0YXRpYyBERUZJTkVfTVVURVgoc2hhZG93 X3VwZGF0ZV9sb2NrKTsKK3N0YXRpYyBzdHJ1Y3QgY2ZpX3NoYWRvdyBfX3JjdSAqY2ZpX3NoYWRv dyBfX3JlYWRfbW9zdGx5OworCisvKiBSZXR1cm5zIHRoZSBpbmRleCBpbiB0aGUgc2hhZG93IGZv ciB0aGUgZ2l2ZW4gYWRkcmVzcyAqLworc3RhdGljIGlubGluZSBpbnQgcHRyX3RvX3NoYWRvdyhj b25zdCBzdHJ1Y3QgY2ZpX3NoYWRvdyAqcywgdW5zaWduZWQgbG9uZyBwdHIpCit7CisJdW5zaWdu ZWQgbG9uZyBpbmRleDsKKwl1bnNpZ25lZCBsb25nIHBhZ2UgPSBwdHIgPj4gUEFHRV9TSElGVDsK KworCWlmICh1bmxpa2VseShwYWdlIDwgcy0+YmFzZSkpCisJCXJldHVybiAtMTsgLyogT3V0c2lk ZSBvZiBtb2R1bGUgYXJlYSAqLworCisJaW5kZXggPSBwYWdlIC0gcy0+YmFzZTsKKworCWlmIChp bmRleCA+PSBTSEFET1dfQVJSX1NMT1RTKQorCQlyZXR1cm4gLTE7IC8qIENhbm5vdCBiZSBhZGRy ZXNzZWQgd2l0aCBzaGFkb3cgKi8KKworCXJldHVybiAoaW50KWluZGV4OworfQorCisvKiBSZXR1 cm5zIHRoZSBwYWdlIGFkZHJlc3MgZm9yIGFuIGluZGV4IGluIHRoZSBzaGFkb3cgKi8KK3N0YXRp YyBpbmxpbmUgdW5zaWduZWQgbG9uZyBzaGFkb3dfdG9fcHRyKGNvbnN0IHN0cnVjdCBjZmlfc2hh ZG93ICpzLAorCWludCBpbmRleCkKK3sKKwlpZiAodW5saWtlbHkoaW5kZXggPCAwIHx8IGluZGV4 ID49IFNIQURPV19BUlJfU0xPVFMpKQorCQlyZXR1cm4gMDsKKworCXJldHVybiAocy0+YmFzZSAr IGluZGV4KSA8PCBQQUdFX1NISUZUOworfQorCisvKiBSZXR1cm5zIHRoZSBfX2NmaV9jaGVjayBm dW5jdGlvbiBhZGRyZXNzIGZvciB0aGUgZ2l2ZW4gc2hhZG93IGxvY2F0aW9uICovCitzdGF0aWMg aW5saW5lIHVuc2lnbmVkIGxvbmcgc2hhZG93X3RvX2NoZWNrX2ZuKGNvbnN0IHN0cnVjdCBjZmlf c2hhZG93ICpzLAorCWludCBpbmRleCkKK3sKKwlpZiAodW5saWtlbHkoaW5kZXggPCAwIHx8IGlu ZGV4ID49IFNIQURPV19BUlJfU0xPVFMpKQorCQlyZXR1cm4gMDsKKworCWlmICh1bmxpa2VseShz LT5zaGFkb3dbaW5kZXhdID09IFNIQURPV19JTlZBTElEKSkKKwkJcmV0dXJuIDA7CisKKwkvKiBf X2NmaV9jaGVjayBpcyBhbHdheXMgcGFnZSBhbGlnbmVkICovCisJcmV0dXJuIChzLT5iYXNlICsg cy0+c2hhZG93W2luZGV4XSkgPDwgUEFHRV9TSElGVDsKK30KKworc3RhdGljIHZvaWQgcHJlcGFy ZV9uZXh0X3NoYWRvdyhjb25zdCBzdHJ1Y3QgY2ZpX3NoYWRvdyBfX3JjdSAqcHJldiwKKwkJc3Ry dWN0IGNmaV9zaGFkb3cgKm5leHQpCit7CisJaW50IGksIGluZGV4LCBjaGVjazsKKworCS8qIE1h cmsgZXZlcnl0aGluZyBpbnZhbGlkICovCisJbWVtc2V0KG5leHQtPnNoYWRvdywgMHhGRiwgU0hB RE9XX0FSUl9TSVpFKTsKKworCWlmICghcHJldikKKwkJcmV0dXJuOyAvKiBObyBwcmV2aW91cyBz aGFkb3cgKi8KKworCS8qIElmIHRoZSBiYXNlIGFkZHJlc3MgZGlkbid0IGNoYW5nZSwgYW4gdXBk YXRlIGlzIG5vdCBuZWVkZWQgKi8KKwlpZiAocHJldi0+YmFzZSA9PSBuZXh0LT5iYXNlKSB7CisJ CW1lbWNweShuZXh0LT5zaGFkb3csIHByZXYtPnNoYWRvdywgU0hBRE9XX0FSUl9TSVpFKTsKKwkJ cmV0dXJuOworCX0KKworCS8qIENvbnZlcnQgdGhlIHByZXZpb3VzIHNoYWRvdyB0byB0aGUgbmV3 IGFkZHJlc3MgcmFuZ2UgKi8KKwlmb3IgKGkgPSAwOyBpIDwgU0hBRE9XX0FSUl9TTE9UUzsgKytp KSB7CisJCWlmIChwcmV2LT5zaGFkb3dbaV0gPT0gU0hBRE9XX0lOVkFMSUQpCisJCQljb250aW51 ZTsKKworCQlpbmRleCA9IHB0cl90b19zaGFkb3cobmV4dCwgc2hhZG93X3RvX3B0cihwcmV2LCBp KSk7CisJCWlmIChpbmRleCA8IDApCisJCQljb250aW51ZTsKKworCQljaGVjayA9IHB0cl90b19z aGFkb3cobmV4dCwKKwkJCQlzaGFkb3dfdG9fY2hlY2tfZm4ocHJldiwgcHJldi0+c2hhZG93W2ld KSk7CisJCWlmIChjaGVjayA8IDApCisJCQljb250aW51ZTsKKworCQluZXh0LT5zaGFkb3dbaW5k ZXhdID0gKHNoYWRvd190KWNoZWNrOworCX0KK30KKworc3RhdGljIHZvaWQgYWRkX21vZHVsZV90 b19zaGFkb3coc3RydWN0IGNmaV9zaGFkb3cgKnMsIHN0cnVjdCBtb2R1bGUgKm1vZCwKKwkJCXVu c2lnbmVkIGxvbmcgbWluX2FkZHIsIHVuc2lnbmVkIGxvbmcgbWF4X2FkZHIpCit7CisJaW50IGNo ZWNrX2luZGV4OworCXVuc2lnbmVkIGxvbmcgY2hlY2sgPSAodW5zaWduZWQgbG9uZyltb2QtPmNm aV9jaGVjazsKKwl1bnNpZ25lZCBsb25nIHB0cjsKKworCWlmICh1bmxpa2VseSghUEFHRV9BTElH TkVEKGNoZWNrKSkpIHsKKwkJcHJfd2FybigiY2ZpOiBub3QgdXNpbmcgc2hhZG93IGZvciBtb2R1 bGUgJXNcbiIsIG1vZC0+bmFtZSk7CisJCXJldHVybjsKKwl9CisKKwljaGVja19pbmRleCA9IHB0 cl90b19zaGFkb3cocywgY2hlY2spOworCWlmIChjaGVja19pbmRleCA8IDApCisJCXJldHVybjsg LyogTW9kdWxlIG5vdCBhZGRyZXNzYWJsZSB3aXRoIHNoYWRvdyAqLworCisJLyogRm9yIGVhY2gg cGFnZSwgc3RvcmUgdGhlIGNoZWNrIGZ1bmN0aW9uIGluZGV4IGluIHRoZSBzaGFkb3cgKi8KKwlm b3IgKHB0ciA9IG1pbl9hZGRyOyBwdHIgPD0gbWF4X2FkZHI7IHB0ciArPSBQQUdFX1NJWkUpIHsK KwkJaW50IGluZGV4ID0gcHRyX3RvX3NoYWRvdyhzLCBwdHIpOworCisJCWlmIChpbmRleCA+PSAw KSB7CisJCQkvKiBFYWNoIHBhZ2UgbXVzdCBvbmx5IGNvbnRhaW4gb25lIG1vZHVsZSAqLworCQkJ V0FSTl9PTl9PTkNFKHMtPnNoYWRvd1tpbmRleF0gIT0gU0hBRE9XX0lOVkFMSUQpOworCQkJcy0+ c2hhZG93W2luZGV4XSA9IChzaGFkb3dfdCljaGVja19pbmRleDsKKwkJfQorCX0KK30KKworc3Rh dGljIHZvaWQgcmVtb3ZlX21vZHVsZV9mcm9tX3NoYWRvdyhzdHJ1Y3QgY2ZpX3NoYWRvdyAqcywg c3RydWN0IG1vZHVsZSAqbW9kLAorCQl1bnNpZ25lZCBsb25nIG1pbl9hZGRyLCB1bnNpZ25lZCBs b25nIG1heF9hZGRyKQoreworCXVuc2lnbmVkIGxvbmcgcHRyOworCisJZm9yIChwdHIgPSBtaW5f YWRkcjsgcHRyIDw9IG1heF9hZGRyOyBwdHIgKz0gUEFHRV9TSVpFKSB7CisJCWludCBpbmRleCA9 IHB0cl90b19zaGFkb3cocywgcHRyKTsKKworCQlpZiAoaW5kZXggPj0gMCkKKwkJCXMtPnNoYWRv d1tpbmRleF0gPSBTSEFET1dfSU5WQUxJRDsKKwl9Cit9CisKK3R5cGVkZWYgdm9pZCAoKnVwZGF0 ZV9zaGFkb3dfZm4pKHN0cnVjdCBjZmlfc2hhZG93ICosIHN0cnVjdCBtb2R1bGUgKiwKKwkJCXVu c2lnbmVkIGxvbmcgbWluX2FkZHIsIHVuc2lnbmVkIGxvbmcgbWF4X2FkZHIpOworCitzdGF0aWMg dm9pZCB1cGRhdGVfc2hhZG93KHN0cnVjdCBtb2R1bGUgKm1vZCwgdW5zaWduZWQgbG9uZyBiYXNl X2FkZHIsCisJCXVwZGF0ZV9zaGFkb3dfZm4gZm4pCit7CisJc3RydWN0IGNmaV9zaGFkb3cgKnBy ZXY7CisJc3RydWN0IGNmaV9zaGFkb3cgKm5leHQ7CisJdW5zaWduZWQgbG9uZyBtaW5fYWRkciwg bWF4X2FkZHI7CisKKwluZXh0ID0gdm1hbGxvYyhTSEFET1dfU0laRSk7CisKKwltdXRleF9sb2Nr KCZzaGFkb3dfdXBkYXRlX2xvY2spOworCXByZXYgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVk KGNmaV9zaGFkb3csCisJCQkJCSBtdXRleF9pc19sb2NrZWQoJnNoYWRvd191cGRhdGVfbG9jaykp OworCisJaWYgKG5leHQpIHsKKwkJbmV4dC0+YmFzZSA9IGJhc2VfYWRkciA+PiBQQUdFX1NISUZU OworCQlwcmVwYXJlX25leHRfc2hhZG93KHByZXYsIG5leHQpOworCisJCW1pbl9hZGRyID0gKHVu c2lnbmVkIGxvbmcpbW9kLT5jb3JlX2xheW91dC5iYXNlOworCQltYXhfYWRkciA9IG1pbl9hZGRy ICsgbW9kLT5jb3JlX2xheW91dC50ZXh0X3NpemU7CisJCWZuKG5leHQsIG1vZCwgbWluX2FkZHIg JiBQQUdFX01BU0ssIG1heF9hZGRyICYgUEFHRV9NQVNLKTsKKworCQlzZXRfbWVtb3J5X3JvKCh1 bnNpZ25lZCBsb25nKW5leHQsIFNIQURPV19QQUdFUyk7CisJfQorCisJcmN1X2Fzc2lnbl9wb2lu dGVyKGNmaV9zaGFkb3csIG5leHQpOworCW11dGV4X3VubG9jaygmc2hhZG93X3VwZGF0ZV9sb2Nr KTsKKwlzeW5jaHJvbml6ZV9yY3UoKTsKKworCWlmIChwcmV2KSB7CisJCXNldF9tZW1vcnlfcnco KHVuc2lnbmVkIGxvbmcpcHJldiwgU0hBRE9XX1BBR0VTKTsKKwkJdmZyZWUocHJldik7CisJfQor fQorCit2b2lkIGNmaV9tb2R1bGVfYWRkKHN0cnVjdCBtb2R1bGUgKm1vZCwgdW5zaWduZWQgbG9u ZyBiYXNlX2FkZHIpCit7CisJdXBkYXRlX3NoYWRvdyhtb2QsIGJhc2VfYWRkciwgYWRkX21vZHVs ZV90b19zaGFkb3cpOworfQorCit2b2lkIGNmaV9tb2R1bGVfcmVtb3ZlKHN0cnVjdCBtb2R1bGUg Km1vZCwgdW5zaWduZWQgbG9uZyBiYXNlX2FkZHIpCit7CisJdXBkYXRlX3NoYWRvdyhtb2QsIGJh c2VfYWRkciwgcmVtb3ZlX21vZHVsZV9mcm9tX3NoYWRvdyk7Cit9CisKK3N0YXRpYyBpbmxpbmUg Y2ZpX2NoZWNrX2ZuIHB0cl90b19jaGVja19mbihjb25zdCBzdHJ1Y3QgY2ZpX3NoYWRvdyBfX3Jj dSAqcywKKwl1bnNpZ25lZCBsb25nIHB0cikKK3sKKwlpbnQgaW5kZXg7CisKKwlpZiAodW5saWtl bHkoIXMpKQorCQlyZXR1cm4gTlVMTDsgLyogTm8gc2hhZG93IGF2YWlsYWJsZSAqLworCisJaW5k ZXggPSBwdHJfdG9fc2hhZG93KHMsIHB0cik7CisJaWYgKGluZGV4IDwgMCkKKwkJcmV0dXJuIE5V TEw7IC8qIENhbm5vdCBiZSBhZGRyZXNzZWQgd2l0aCBzaGFkb3cgKi8KKworCXJldHVybiAoY2Zp X2NoZWNrX2ZuKXNoYWRvd190b19jaGVja19mbihzLCBpbmRleCk7Cit9CisKK3N0YXRpYyBpbmxp bmUgY2ZpX2NoZWNrX2ZuIGZpbmRfc2hhZG93X2NoZWNrX2ZuKHVuc2lnbmVkIGxvbmcgcHRyKQor eworCWNmaV9jaGVja19mbiBmbjsKKworCXJjdV9yZWFkX2xvY2tfc2NoZWQoKTsKKwlmbiA9IHB0 cl90b19jaGVja19mbihyY3VfZGVyZWZlcmVuY2Vfc2NoZWQoY2ZpX3NoYWRvdyksIHB0cik7CisJ cmN1X3JlYWRfdW5sb2NrX3NjaGVkKCk7CisKKwlyZXR1cm4gZm47Cit9CisKKyNlbHNlIC8qICFD T05GSUdfQ0ZJX0NMQU5HX1NIQURPVyAqLworCitzdGF0aWMgaW5saW5lIGNmaV9jaGVja19mbiBm aW5kX3NoYWRvd19jaGVja19mbih1bnNpZ25lZCBsb25nIHB0cikKK3sKKwlyZXR1cm4gTlVMTDsK K30KKworI2VuZGlmIC8qIENPTkZJR19DRklfQ0xBTkdfU0hBRE9XICovCisKK3N0YXRpYyBpbmxp bmUgY2ZpX2NoZWNrX2ZuIGZpbmRfbW9kdWxlX2NoZWNrX2ZuKHVuc2lnbmVkIGxvbmcgcHRyKQor eworCWNmaV9jaGVja19mbiBmbiA9IE5VTEw7CisJc3RydWN0IG1vZHVsZSAqbW9kOworCisJcmN1 X3JlYWRfbG9ja19zY2hlZCgpOworCW1vZCA9IF9fbW9kdWxlX2FkZHJlc3MocHRyKTsKKwlpZiAo bW9kKQorCQlmbiA9IG1vZC0+Y2ZpX2NoZWNrOworCXJjdV9yZWFkX3VubG9ja19zY2hlZCgpOwor CisJcmV0dXJuIGZuOworfQorCitzdGF0aWMgaW5saW5lIGNmaV9jaGVja19mbiBmaW5kX2NoZWNr X2ZuKHVuc2lnbmVkIGxvbmcgcHRyKQoreworCWNmaV9jaGVja19mbiBmbiA9IE5VTEw7CisKKwlp ZiAoaXNfa2VybmVsX3RleHQocHRyKSkKKwkJcmV0dXJuIF9fY2ZpX2NoZWNrOworCisJLyoKKwkg KiBJbmRpcmVjdCBjYWxsIGNoZWNrcyBjYW4gaGFwcGVuIHdoZW4gUkNVIGlzIG5vdCB3YXRjaGlu Zy4gQm90aAorCSAqIHRoZSBzaGFkb3cgYW5kIF9fbW9kdWxlX2FkZHJlc3MgdXNlIFJDVSwgc28g d2UgbmVlZCB0byB3YWtlIGl0CisJICogdXAgaWYgbmVjZXNzYXJ5LgorCSAqLworCVJDVV9OT05J RExFKHsKKwkJaWYgKElTX0VOQUJMRUQoQ09ORklHX0NGSV9DTEFOR19TSEFET1cpKQorCQkJZm4g PSBmaW5kX3NoYWRvd19jaGVja19mbihwdHIpOworCisJCWlmICghZm4pCisJCQlmbiA9IGZpbmRf bW9kdWxlX2NoZWNrX2ZuKHB0cik7CisJfSk7CisKKwlyZXR1cm4gZm47Cit9CisKK3ZvaWQgX19j Zmlfc2xvd3BhdGhfZGlhZyh1aW50NjRfdCBpZCwgdm9pZCAqcHRyLCB2b2lkICpkaWFnKQorewor CWNmaV9jaGVja19mbiBmbiA9IGZpbmRfY2hlY2tfZm4oKHVuc2lnbmVkIGxvbmcpcHRyKTsKKwor CWlmIChsaWtlbHkoZm4pKQorCQlmbihpZCwgcHRyLCBkaWFnKTsKKwllbHNlIC8qIERvbid0IGFs bG93IHVuY2hlY2tlZCBtb2R1bGVzICovCisJCWhhbmRsZV9jZmlfZmFpbHVyZShwdHIpOworfQor RVhQT1JUX1NZTUJPTChfX2NmaV9zbG93cGF0aF9kaWFnKTsKKworI2Vsc2UgLyogIUNPTkZJR19N T0RVTEVTICovCisKK3ZvaWQgX19jZmlfc2xvd3BhdGhfZGlhZyh1aW50NjRfdCBpZCwgdm9pZCAq cHRyLCB2b2lkICpkaWFnKQoreworCWhhbmRsZV9jZmlfZmFpbHVyZShwdHIpOyAvKiBObyBtb2R1 bGVzICovCit9CitFWFBPUlRfU1lNQk9MKF9fY2ZpX3Nsb3dwYXRoX2RpYWcpOworCisjZW5kaWYg LyogQ09ORklHX01PRFVMRVMgKi8KKwordm9pZCBjZmlfZmFpbHVyZV9oYW5kbGVyKHZvaWQgKmRh dGEsIHZvaWQgKnB0ciwgdm9pZCAqdnRhYmxlKQoreworCWhhbmRsZV9jZmlfZmFpbHVyZShwdHIp OworfQorRVhQT1JUX1NZTUJPTChjZmlfZmFpbHVyZV9oYW5kbGVyKTsKZGlmZiAtLWdpdCBhL2tl cm5lbC9tb2R1bGUuYyBiL2tlcm5lbC9tb2R1bGUuYwppbmRleCAzMDQ3OTM1NWFiODUuLjIwZmIw MDRlN2Q4ZCAxMDA2NDQKLS0tIGEva2VybmVsL21vZHVsZS5jCisrKyBiL2tlcm5lbC9tb2R1bGUu YwpAQCAtMjE0Niw2ICsyMTQ2LDggQEAgdm9pZCBfX3dlYWsgbW9kdWxlX2FyY2hfZnJlZWluZ19p bml0KHN0cnVjdCBtb2R1bGUgKm1vZCkKIHsKIH0KIAorc3RhdGljIHZvaWQgY2ZpX2NsZWFudXAo c3RydWN0IG1vZHVsZSAqbW9kKTsKKwogLyogRnJlZSBhIG1vZHVsZSwgcmVtb3ZlIGZyb20gbGlz dHMsIGV0Yy4gKi8KIHN0YXRpYyB2b2lkIGZyZWVfbW9kdWxlKHN0cnVjdCBtb2R1bGUgKm1vZCkK IHsKQEAgLTIxODcsNiArMjE4OSw5IEBAIHN0YXRpYyB2b2lkIGZyZWVfbW9kdWxlKHN0cnVjdCBt b2R1bGUgKm1vZCkKIAlzeW5jaHJvbml6ZV9yY3UoKTsKIAltdXRleF91bmxvY2soJm1vZHVsZV9t dXRleCk7CiAKKwkvKiBDbGVhbiB1cCBDRkkgZm9yIHRoZSBtb2R1bGUuICovCisJY2ZpX2NsZWFu dXAobW9kKTsKKwogCS8qIFRoaXMgbWF5IGJlIGVtcHR5LCBidXQgdGhhdCdzIE9LICovCiAJbW9k dWxlX2FyY2hfZnJlZWluZ19pbml0KG1vZCk7CiAJbW9kdWxlX21lbWZyZWUobW9kLT5pbml0X2xh eW91dC5iYXNlKTsKQEAgLTM4NjYsNiArMzg3MSw4IEBAIHN0YXRpYyBpbnQgdW5rbm93bl9tb2R1 bGVfcGFyYW1fY2IoY2hhciAqcGFyYW0sIGNoYXIgKnZhbCwgY29uc3QgY2hhciAqbW9kbmFtZSwK IAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIHZvaWQgY2ZpX2luaXQoc3RydWN0IG1vZHVsZSAqbW9k KTsKKwogLyoKICAqIEFsbG9jYXRlIGFuZCBsb2FkIHRoZSBtb2R1bGU6IG5vdGUgdGhhdCBzaXpl IG9mIHNlY3Rpb24gMCBpcyBhbHdheXMKICAqIHplcm8sIGFuZCB3ZSByZWx5IG9uIHRoaXMgZm9y IG9wdGlvbmFsIHNlY3Rpb25zLgpAQCAtMzk5Nyw2ICs0MDA0LDkgQEAgc3RhdGljIGludCBsb2Fk X21vZHVsZShzdHJ1Y3QgbG9hZF9pbmZvICppbmZvLCBjb25zdCBjaGFyIF9fdXNlciAqdWFyZ3Ms CiAKIAlmbHVzaF9tb2R1bGVfaWNhY2hlKG1vZCk7CiAKKwkvKiBTZXR1cCBDRkkgZm9yIHRoZSBt b2R1bGUuICovCisJY2ZpX2luaXQobW9kKTsKKwogCS8qIE5vdyBjb3B5IGluIGFyZ3MgKi8KIAlt b2QtPmFyZ3MgPSBzdHJuZHVwX3VzZXIodWFyZ3MsIH4wVUwgPj4gMSk7CiAJaWYgKElTX0VSUiht b2QtPmFyZ3MpKSB7CkBAIC00MDcwLDYgKzQwODAsNyBAQCBzdGF0aWMgaW50IGxvYWRfbW9kdWxl KHN0cnVjdCBsb2FkX2luZm8gKmluZm8sIGNvbnN0IGNoYXIgX191c2VyICp1YXJncywKIAlzeW5j aHJvbml6ZV9yY3UoKTsKIAlrZnJlZShtb2QtPmFyZ3MpOwogIGZyZWVfYXJjaF9jbGVhbnVwOgor CWNmaV9jbGVhbnVwKG1vZCk7CiAJbW9kdWxlX2FyY2hfY2xlYW51cChtb2QpOwogIGZyZWVfbW9k aW5mbzoKIAlmcmVlX21vZGluZm8obW9kKTsKQEAgLTQ0MTUsNiArNDQyNiwzOCBAQCBpbnQgbW9k dWxlX2thbGxzeW1zX29uX2VhY2hfc3ltYm9sKGludCAoKmZuKSh2b2lkICosIGNvbnN0IGNoYXIg KiwKICNlbmRpZiAvKiBDT05GSUdfTElWRVBBVENIICovCiAjZW5kaWYgLyogQ09ORklHX0tBTExT WU1TICovCiAKK3N0YXRpYyB2b2lkIGNmaV9pbml0KHN0cnVjdCBtb2R1bGUgKm1vZCkKK3sKKyNp ZmRlZiBDT05GSUdfQ0ZJX0NMQU5HCisJaW5pdGNhbGxfdCAqaW5pdDsKKwlleGl0Y2FsbF90ICpl eGl0OworCisJcmN1X3JlYWRfbG9ja19zY2hlZCgpOworCW1vZC0+Y2ZpX2NoZWNrID0gKGNmaV9j aGVja19mbikKKwkJZmluZF9rYWxsc3ltc19zeW1ib2xfdmFsdWUobW9kLCAiX19jZmlfY2hlY2si KTsKKwlpbml0ID0gKGluaXRjYWxsX3QgKikKKwkJZmluZF9rYWxsc3ltc19zeW1ib2xfdmFsdWUo bW9kLCAiX19jZmlfanRfaW5pdF9tb2R1bGUiKTsKKwlleGl0ID0gKGV4aXRjYWxsX3QgKikKKwkJ ZmluZF9rYWxsc3ltc19zeW1ib2xfdmFsdWUobW9kLCAiX19jZmlfanRfY2xlYW51cF9tb2R1bGUi KTsKKwlyY3VfcmVhZF91bmxvY2tfc2NoZWQoKTsKKworCS8qIEZpeCBpbml0L2V4aXQgZnVuY3Rp b25zIHRvIHBvaW50IHRvIHRoZSBDRkkganVtcCB0YWJsZSAqLworCWlmIChpbml0KQorCQltb2Qt PmluaXQgPSAqaW5pdDsKKwlpZiAoZXhpdCkKKwkJbW9kLT5leGl0ID0gKmV4aXQ7CisKKwljZmlf bW9kdWxlX2FkZChtb2QsIG1vZHVsZV9hZGRyX21pbik7CisjZW5kaWYKK30KKworc3RhdGljIHZv aWQgY2ZpX2NsZWFudXAoc3RydWN0IG1vZHVsZSAqbW9kKQoreworI2lmZGVmIENPTkZJR19DRklf Q0xBTkcKKwljZmlfbW9kdWxlX3JlbW92ZShtb2QsIG1vZHVsZV9hZGRyX21pbik7CisjZW5kaWYK K30KKwogLyogTWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyB3cml0dGVuIGJ5IG1vZHVsZV9m bGFncygpICovCiAjZGVmaW5lIE1PRFVMRV9GTEFHU19CVUZfU0laRSAoVEFJTlRfRkxBR1NfQ09V TlQgKyA0KQogCmRpZmYgLS1naXQgYS9zY3JpcHRzL01ha2VmaWxlLm1vZGZpbmFsIGIvc2NyaXB0 cy9NYWtlZmlsZS5tb2RmaW5hbAppbmRleCA3MzVlMTFlOTA0MWIuLmRkODdjZWE5ZmJhNyAxMDA2 NDQKLS0tIGEvc2NyaXB0cy9NYWtlZmlsZS5tb2RmaW5hbAorKysgYi9zY3JpcHRzL01ha2VmaWxl Lm1vZGZpbmFsCkBAIC0yMyw3ICsyMyw3IEBAIG1vZG5hbWUgPSAkKG5vdGRpciAkKEA6Lm1vZC5v PSkpCiBwYXJ0LW9mLW1vZHVsZSA9IHkKIAogcXVpZXRfY21kX2NjX29fYyA9IENDIFtNXSAgJEAK LSAgICAgIGNtZF9jY19vX2MgPSAkKENDKSAkKGNfZmxhZ3MpIC1jIC1vICRAICQ8CisgICAgICBj bWRfY2Nfb19jID0gJChDQykgJChmaWx0ZXItb3V0ICQoQ0NfRkxBR1NfQ0ZJKSwgJChjX2ZsYWdz KSkgLWMgLW8gJEAgJDwKIAogJS5tb2QubzogJS5tb2QuYyBGT1JDRQogCSQoY2FsbCBpZl9jaGFu Z2VkX2RlcCxjY19vX2MpCi0tIAoyLjMxLjEuMjk1Lmc5ZWE0NWI2MWI4LWdvb2cKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVs IG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDov L2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==