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 E5E02C433EF for ; Fri, 10 Jun 2022 23:37:48 +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=CcRP0j56GYbMiy8JKpGvjXLlcO1TwuyNHZdFJkFCFFA=; b=P7zJMcA8+7Jny+cthjQ0BBeF5h KcWRV4q9HhMiDONT2gJxHvNM9zRBGHZqCkGleT1aXprIQb5Hnl986KV/LRca5LB6CKYr8VvCpMKNK aXli9ljeD/dfByfZdkUJWa74gNMicJLc5P12A3HmiNsf7TfjkttdHt7lsGKS7r3Qn6VSfwDIuORKh iy6xG9gHY/BCXJixOzhDBxcX6e5FNpPkbRr/T75u5Ng6dlMAEwBRsWs9YNAib045586Wm6YI9AXXV Gb6B4PEMGg37xhRC5A9fYej12kdVgdAliFtwJ2VAiFcwehlXWZv7KeqEW9fr+0TsWceLEy6B5FiUT tWeAnevw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nzoB7-00ARN0-2q; Fri, 10 Jun 2022 23:36:34 +0000 Received: from mail-pl1-x649.google.com ([2607:f8b0:4864:20::649]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nzoA5-00AQqy-S6 for linux-arm-kernel@lists.infradead.org; Fri, 10 Jun 2022 23:35:32 +0000 Received: by mail-pl1-x649.google.com with SMTP id c10-20020a170903234a00b00168b5f7661bso284905plh.6 for ; Fri, 10 Jun 2022 16:35:27 -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=kBRVtwWQ8zCYLph9/gncgC50QoyyV/yaWqrxGNnB7w8=; b=DCCLojXuqTEe7R9wH1dCFWGnX84Mibk6bd36c8HTRzkHhsaF4pEOzX1tepje1++T+6 DzAOmouUO1TqZ/GhXpuTPGbBkawH4fGVXmB709hovoI/r6vUcYuDJmgrmfClEC/eYezA V/4+jy+MK0GKlvOjMph6WmnzVD8KJ8t7BSQWMqo46lUvuNKQB/R9AId0ugClSOro5DSV NUyHjm1THuPXK69lTV/xACvqZG2q9jlDAkUMWb3+7uCiTwwCXoX3dx/mhAbBlLQEV7DX DeaEU2tBAFJQaHGzWQL6fL9kOP9jlrYswGXG8OMhXSxCVez1wFiz3Z3SD4re4gSKYahl /fTQ== 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=kBRVtwWQ8zCYLph9/gncgC50QoyyV/yaWqrxGNnB7w8=; b=l8Prrqsb+mbez28C1vxZmQfOTlscP5/45iN3qoIfUi46kqL6m0whKqOfpKUbo8jUR9 vQ43cUssgNODu2/6AdQx0uEPGhr1Gf9lqHiQ5BWf1kJIh47pDUyh72WTmsoNiX2vyddg 58f5kEHmHBmG/z+dc/s5PwxYUCi6C/vKKbWDifI8O5IyhVrk/OJ8n3L7QNXPgJNf1PW2 0zrf7Ox/WxhszpMs1vni3V28xLxENNBcp4pbVGdQFsiz5yOn0ybelz6ov4x2AmITuuYp +nvWTzw7+nIK0SFc560fQGDmg8khNF7WBjWyLYGneDjkXQwSmtaSYx6zh1rkuoVOpLYR kh8w== X-Gm-Message-State: AOAM532otDcOlRmg4IhDUrB4z5s1aTKB1hD6Jv+hyZMMJQAlPi27tc5J /tfUtV+85Gek+SfyJV0MMDKOnTUJj5F4XW/jwZI= X-Google-Smtp-Source: ABdhPJxNUms6O4XR3YbJ2MdQUfkNCB+aok+b6BnVa+Ii+v4dgPQpM/Qbi4jV1ypTOJoDi/IaVGfZQ2Htq+LIJh1lGLQ= X-Received: from samitolvanen1.mtv.corp.google.com ([2620:15c:201:2:f464:6db6:3d47:ed14]) (user=samitolvanen job=sendgmr) by 2002:a65:48c6:0:b0:401:bf2a:6e0c with SMTP id o6-20020a6548c6000000b00401bf2a6e0cmr6181103pgs.530.1654904127287; Fri, 10 Jun 2022 16:35:27 -0700 (PDT) Date: Fri, 10 Jun 2022 16:34:58 -0700 In-Reply-To: <20220610233513.1798771-1-samitolvanen@google.com> Message-Id: <20220610233513.1798771-6-samitolvanen@google.com> Mime-Version: 1.0 References: <20220610233513.1798771-1-samitolvanen@google.com> X-Developer-Key: i=samitolvanen@google.com; a=openpgp; fpr=35CCFB63B283D6D3AEB783944CB5F6848BBC56EE X-Developer-Signature: v=1; a=openpgp-sha256; l=15502; h=from:subject; bh=qr6EU83/e2x581/csUtp94j4HLv67st7jccyI4ZMWd8=; b=owEB7QES/pANAwAKAUy19oSLvFbuAcsmYgBio9UtFPf2K1UZaquTSQRw8YRKcfSZWji5JMNTFJHz 8Z/0vLaJAbMEAAEKAB0WIQQ1zPtjsoPW0663g5RMtfaEi7xW7gUCYqPVLQAKCRBMtfaEi7xW7mHRC/ 9RteKWoUBw1x6FQlzK2Fq05LXtbUko4dsqUfy5K0jN+YiG5hbrCOdIZOtCufObWN2c0EAF62rTITLy qPm5tfOcweaCAhxu9QR5jb50W9HaMVYrCZt3S0go7XrgPMmIVxwp8iExZ5V2gZrJgZYim+sj4e64co UrfwO5q9Y7JU2y093kuS/VSa322GjDtlaHXDVCWFp/cE204iNCUiDRE1+o8ns4raqmh9piGQVr85cR 6I/0phJIbFaiu9+24SPYsd1ekgT6pZfWVlqJPSCQSazRPIZ7tsbVsq1Vcn7S21ulBTSMKOVSG9Gxef 7PMck4iav0ltf+MWT6S/2QVI1aorezTOA8wYxkg04Lpre8Gstul+qN+1O2WsfuamJzcIt9O5nekbuV gX65Lpn9ao65xV5AZwFC0V2jXLAx0LaB+nIfPFtJxqQawQekUHcsOURfI/5W7gZA9kV+iQARGgjgkH tV+9HSIcYQgGfueA4MyzjQe4qeTxZogFj/0xx0GT/8nGU= X-Mailer: git-send-email 2.36.1.476.g0c4daa206d-goog Subject: [RFC PATCH v3 05/20] 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-20220610_163529_965909_82C9AACF X-CRM114-Status: GOOD ( 25.04 ) 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 Y29tPgpSZXZpZXdlZC1ieTogS2VlcyBDb29rIDxrZWVzY29va0BjaHJvbWl1bS5vcmc+Ci0tLQog TWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEzICstLQogYXJjaC9LY29uZmln ICAgICAgICAgICAgICAgICAgICAgIHwgICA4ICstCiBpbmNsdWRlL2FzbS1nZW5lcmljL3ZtbGlu dXgubGRzLmggfCAgMzcgKysrKystLS0tCiBpbmNsdWRlL2xpbnV4L2NmaS5oICAgICAgICAgICAg ICAgfCAgMjkgKysrKysrLQogaW5jbHVkZS9saW51eC9jb21waWxlci1jbGFuZy5oICAgIHwgIDE0 ICstLS0KIGluY2x1ZGUvbGludXgvbW9kdWxlLmggICAgICAgICAgICB8ICAgNiArLQoga2VybmVs L2NmaS5jICAgICAgICAgICAgICAgICAgICAgIHwgMTMzICsrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tLQoga2VybmVsL21vZHVsZS9tYWluLmMgICAgICAgICAgICAgIHwgIDM0ICstLS0tLS0t CiBzY3JpcHRzL21vZHVsZS5sZHMuUyAgICAgICAgICAgICAgfCAgMjMgKy0tLS0tCiA5IGZpbGVz IGNoYW5nZWQsIDEzMyBpbnNlcnRpb25zKCspLCAxNjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvTWFrZWZpbGUgYi9NYWtlZmlsZQppbmRleCBiMmU5M2MxYTgwMjEuLjA4NDJlMjIzNTM1YyAx MDA2NDQKLS0tIGEvTWFrZWZpbGUKKysrIGIvTWFrZWZpbGUKQEAgLTkyMCwxOCArOTIwLDcgQEAg ZXhwb3J0IENDX0ZMQUdTX0xUTwogZW5kaWYKIAogaWZkZWYgQ09ORklHX0NGSV9DTEFORwotQ0Nf RkxBR1NfQ0ZJCTo9IC1mc2FuaXRpemU9Y2ZpIFwKLQkJICAgLWZzYW5pdGl6ZS1jZmktY3Jvc3Mt ZHNvIFwKLQkJICAgLWZuby1zYW5pdGl6ZS1jZmktY2Fub25pY2FsLWp1bXAtdGFibGVzIFwKLQkJ ICAgLWZuby1zYW5pdGl6ZS10cmFwPWNmaSBcCi0JCSAgIC1mbm8tc2FuaXRpemUtYmxhY2tsaXN0 Ci0KLWlmZGVmIENPTkZJR19DRklfUEVSTUlTU0lWRQotQ0NfRkxBR1NfQ0ZJCSs9IC1mc2FuaXRp emUtcmVjb3Zlcj1jZmkKLWVuZGlmCi0KLSMgSWYgTFRPIGZsYWdzIGFyZSBmaWx0ZXJlZCBvdXQs IHdlIG11c3QgYWxzbyBmaWx0ZXIgb3V0IENGSS4KLUNDX0ZMQUdTX0xUTwkrPSAkKENDX0ZMQUdT X0NGSSkKK0NDX0ZMQUdTX0NGSQk6PSAtZnNhbml0aXplPWtjZmkKIEtCVUlMRF9DRkxBR1MJKz0g JChDQ19GTEFHU19DRkkpCiBleHBvcnQgQ0NfRkxBR1NfQ0ZJCiBlbmRpZgpkaWZmIC0tZ2l0IGEv YXJjaC9LY29uZmlnIGIvYXJjaC9LY29uZmlnCmluZGV4IGY5NTI0NWRjYWIzYi4uMTEwMTMxNzI2 OGVmIDEwMDY0NAotLS0gYS9hcmNoL0tjb25maWcKKysrIGIvYXJjaC9LY29uZmlnCkBAIC03Mjks MTEgKzcyOSwxMyBAQCBjb25maWcgQVJDSF9TVVBQT1JUU19DRklfQ0xBTkcKIAkgIEFuIGFyY2hp dGVjdHVyZSBzaG91bGQgc2VsZWN0IHRoaXMgb3B0aW9uIGlmIGl0IGNhbiBzdXBwb3J0IENsYW5n J3MKIAkgIENvbnRyb2wtRmxvdyBJbnRlZ3JpdHkgKENGSSkgY2hlY2tpbmcuCiAKK2NvbmZpZyBB UkNIX1VTRVNfQ0ZJX1RSQVBTCisJYm9vbAorCiBjb25maWcgQ0ZJX0NMQU5HCiAJYm9vbCAiVXNl IENsYW5nJ3MgQ29udHJvbCBGbG93IEludGVncml0eSAoQ0ZJKSIKLQlkZXBlbmRzIG9uIExUT19D TEFORyAmJiBBUkNIX1NVUFBPUlRTX0NGSV9DTEFORwotCWRlcGVuZHMgb24gQ0xBTkdfVkVSU0lP TiA+PSAxNDAwMDAKLQlzZWxlY3QgS0FMTFNZTVMKKwlkZXBlbmRzIG9uIEFSQ0hfU1VQUE9SVFNf Q0ZJX0NMQU5HCisJZGVwZW5kcyBvbiAkKGNjLW9wdGlvbiwtZnNhbml0aXplPWtjZmkpCiAJaGVs cAogCSAgVGhpcyBvcHRpb24gZW5hYmxlcyBDbGFuZ+KAmXMgZm9yd2FyZC1lZGdlIENvbnRyb2wg RmxvdyBJbnRlZ3JpdHkKIAkgIChDRkkpIGNoZWNraW5nLCB3aGVyZSB0aGUgY29tcGlsZXIgaW5q ZWN0cyBhIHJ1bnRpbWUgY2hlY2sgdG8gZWFjaApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tZ2Vu ZXJpYy92bWxpbnV4Lmxkcy5oIGIvaW5jbHVkZS9hc20tZ2VuZXJpYy92bWxpbnV4Lmxkcy5oCmlu ZGV4IDc1MTVhNDY1ZWMwMy4uNzUwMWVkZmNlMTFlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1n ZW5lcmljL3ZtbGludXgubGRzLmgKKysrIGIvaW5jbHVkZS9hc20tZ2VuZXJpYy92bWxpbnV4Lmxk cy5oCkBAIC00MjEsNiArNDIxLDIyIEBACiAJX19lbmRfcm9fYWZ0ZXJfaW5pdCA9IC47CiAjZW5k aWYKIAorLyoKKyAqIC5rY2ZpX3RyYXBzIGNvbnRhaW5zIGEgbGlzdCBLQ0ZJIHRyYXAgbG9jYXRp b25zLgorICovCisjaWZuZGVmIEtDRklfVFJBUFMKKyNpZmRlZiBDT05GSUdfQVJDSF9VU0VTX0NG SV9UUkFQUworI2RlZmluZSBLQ0ZJX1RSQVBTCQkJCQkJCVwKKwlfX2tjZmlfdHJhcHMgOiBBVChB RERSKF9fa2NmaV90cmFwcykgLSBMT0FEX09GRlNFVCkgewkJXAorCQlfX3N0YXJ0X19fa2NmaV90 cmFwcyA9IC47CQkJCVwKKwkJS0VFUCgqKC5rY2ZpX3RyYXBzKSkJCQkJCVwKKwkJX19zdG9wX19f a2NmaV90cmFwcyA9IC47CQkJCVwKKwl9CisjZWxzZQorI2RlZmluZSBLQ0ZJX1RSQVBTCisjZW5k aWYKKyNlbmRpZgorCiAvKgogICogUmVhZCBvbmx5IERhdGEKICAqLwpAQCAtNTI5LDYgKzU0NSw4 IEBACiAJCV9fc3RvcF9fX21vZHZlciA9IC47CQkJCQlcCiAJfQkJCQkJCQkJXAogCQkJCQkJCQkJ XAorCUtDRklfVFJBUFMJCQkJCQkJXAorCQkJCQkJCQkJXAogCVJPX0VYQ0VQVElPTl9UQUJMRQkJ CQkJCVwKIAlOT1RFUwkJCQkJCQkJXAogCUJURgkJCQkJCQkJXApAQCAtNTM3LDIxICs1NTUsNiBA QAogCV9fZW5kX3JvZGF0YSA9IC47CiAKIAotLyoKLSAqIC50ZXh0Li5MLmNmaS5qdW1wdGFibGUu KiBjb250YWluIENvbnRyb2wtRmxvdyBJbnRlZ3JpdHkgKENGSSkKLSAqIGp1bXAgdGFibGUgZW50 cmllcy4KLSAqLwotI2lmZGVmIENPTkZJR19DRklfQ0xBTkcKLSNkZWZpbmUgVEVYVF9DRklfSlQJ CQkJCQkJXAotCQkuID0gQUxJR04oUE1EX1NJWkUpOwkJCQkJXAotCQlfX2NmaV9qdF9zdGFydCA9 IC47CQkJCQlcCi0JCSooLnRleHQuLkwuY2ZpLmp1bXB0YWJsZSAudGV4dC4uTC5jZmkuanVtcHRh YmxlLiopCVwKLQkJLiA9IEFMSUdOKFBNRF9TSVpFKTsJCQkJCVwKLQkJX19jZmlfanRfZW5kID0g LjsKLSNlbHNlCi0jZGVmaW5lIFRFWFRfQ0ZJX0pUCi0jZW5kaWYKLQogLyoKICAqIE5vbi1pbnN0 cnVtZW50YWJsZSB0ZXh0IHNlY3Rpb24KICAqLwpAQCAtNTc5LDcgKzU4Miw2IEBACiAJCSooLnRl eHQuLnJlZmNvdW50KQkJCQkJXAogCQkqKC5yZWYudGV4dCkJCQkJCQlcCiAJCSooLnRleHQuYXNh bi4qIC50ZXh0LnRzYW4uKikJCQkJXAotCQlURVhUX0NGSV9KVAkJCQkJCVwKIAlNRU1fS0VFUChp bml0LnRleHQqKQkJCQkJCVwKIAlNRU1fS0VFUChleGl0LnRleHQqKQkJCQkJCVwKIApAQCAtMTAw OCw4ICsxMDEwLDcgQEAKICAqIGtlZXAgYW55IC5pbml0X2FycmF5Liogc2VjdGlvbnMuCiAgKiBo dHRwczovL2J1Z3MubGx2bS5vcmcvc2hvd19idWcuY2dpP2lkPTQ2NDc4CiAgKi8KLSNpZiBkZWZp bmVkKENPTkZJR19HQ09WX0tFUk5FTCkgfHwgZGVmaW5lZChDT05GSUdfS0FTQU5fR0VORVJJQykg fHwgZGVmaW5lZChDT05GSUdfS0NTQU4pIHx8IFwKLQlkZWZpbmVkKENPTkZJR19DRklfQ0xBTkcp CisjaWYgZGVmaW5lZChDT05GSUdfR0NPVl9LRVJORUwpIHx8IGRlZmluZWQoQ09ORklHX0tBU0FO X0dFTkVSSUMpIHx8IGRlZmluZWQoQ09ORklHX0tDU0FOKQogIyBpZmRlZiBDT05GSUdfQ09OU1RS VUNUT1JTCiAjICBkZWZpbmUgU0FOSVRJWkVSX0RJU0NBUkRTCQkJCQkJXAogCSooLmVoX2ZyYW1l KQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9jZmkuaCBiL2luY2x1ZGUvbGludXgvY2ZpLmgK aW5kZXggMmNkYmMwZmJkMGFiLi41ZTEzNGY0Y2U4YjcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGlu dXgvY2ZpLmgKKysrIGIvaW5jbHVkZS9saW51eC9jZmkuaApAQCAtMiwxNyArMiwzOCBAQAogLyoK ICAqIENsYW5nIENvbnRyb2wgRmxvdyBJbnRlZ3JpdHkgKENGSSkgc3VwcG9ydC4KICAqCi0gKiBD b3B5cmlnaHQgKEMpIDIwMjEgR29vZ2xlIExMQworICogQ29weXJpZ2h0IChDKSAyMDIyIEdvb2ds ZSBMTEMKICAqLwogI2lmbmRlZiBfTElOVVhfQ0ZJX0gKICNkZWZpbmUgX0xJTlVYX0NGSV9ICiAK KyNpbmNsdWRlIDxsaW51eC9idWcuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKwogI2lm ZGVmIENPTkZJR19DRklfQ0xBTkcKLXR5cGVkZWYgdm9pZCAoKmNmaV9jaGVja19mbikodWludDY0 X3QgaWQsIHZvaWQgKnB0ciwgdm9pZCAqZGlhZyk7CitlbnVtIGJ1Z190cmFwX3R5cGUgcmVwb3J0 X2NmaV9mYWlsdXJlKHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1bnNpZ25lZCBsb25nIGFkZHIsCisJ CQkJICAgICAgdW5zaWduZWQgbG9uZyAqdGFyZ2V0LCB1MzIgdHlwZSk7CiAKLS8qIENvbXBpbGVy LWdlbmVyYXRlZCBmdW5jdGlvbiBpbiBlYWNoIG1vZHVsZSwgYW5kIHRoZSBrZXJuZWwgKi8KLWV4 dGVybiB2b2lkIF9fY2ZpX2NoZWNrKHVpbnQ2NF90IGlkLCB2b2lkICpwdHIsIHZvaWQgKmRpYWcp Oworc3RhdGljIGlubGluZSBlbnVtIGJ1Z190cmFwX3R5cGUgcmVwb3J0X2NmaV9mYWlsdXJlX25v YWRkcihzdHJ1Y3QgcHRfcmVncyAqcmVncywKKwkJCQkJCQkgICB1bnNpZ25lZCBsb25nIGFkZHIp Cit7CisJcmV0dXJuIHJlcG9ydF9jZmlfZmFpbHVyZShyZWdzLCBhZGRyLCBOVUxMLCAwKTsKK30K IAorI2lmZGVmIENPTkZJR19BUkNIX1VTRVNfQ0ZJX1RSQVBTCitib29sIGlzX2NmaV90cmFwKHVu c2lnbmVkIGxvbmcgYWRkcik7CisjZW5kaWYKICNlbmRpZiAvKiBDT05GSUdfQ0ZJX0NMQU5HICov CiAKKyNpZmRlZiBDT05GSUdfTU9EVUxFUworI2lmZGVmIENPTkZJR19BUkNIX1VTRVNfQ0ZJX1RS QVBTCit2b2lkIG1vZHVsZV9jZmlfZmluYWxpemUoY29uc3QgRWxmX0VoZHIgKmhkciwgY29uc3Qg RWxmX1NoZHIgKnNlY2hkcnMsCisJCQkgc3RydWN0IG1vZHVsZSAqbW9kKTsKKyNlbHNlCitzdGF0 aWMgaW5saW5lIHZvaWQgbW9kdWxlX2NmaV9maW5hbGl6ZShjb25zdCBFbGZfRWhkciAqaGRyLAor CQkJCSAgICAgICBjb25zdCBFbGZfU2hkciAqc2VjaGRycywKKwkJCQkgICAgICAgc3RydWN0IG1v ZHVsZSAqbW9kKSB7fQorI2VuZGlmIC8qIENPTkZJR19BUkNIX1VTRVNfQ0ZJX1RSQVBTICovCisj ZW5kaWYgLyogQ09ORklHX01PRFVMRVMgKi8KKwogI2VuZGlmIC8qIF9MSU5VWF9DRklfSCAqLwpk aWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9jb21waWxlci1jbGFuZy5oIGIvaW5jbHVkZS9saW51 eC9jb21waWxlci1jbGFuZy5oCmluZGV4IGM4NGZlYzc2NzQ0NS4uNDJlNTU1NzlkNjQ5IDEwMDY0 NAotLS0gYS9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyLWNsYW5nLmgKKysrIGIvaW5jbHVkZS9saW51 eC9jb21waWxlci1jbGFuZy5oCkBAIC02NiwxNyArNjYsOSBAQAogIyBkZWZpbmUgX19ub3Njcwlf X2F0dHJpYnV0ZV9fKChfX25vX3Nhbml0aXplX18oInNoYWRvdy1jYWxsLXN0YWNrIikpKQogI2Vu ZGlmCiAKLSNkZWZpbmUgX19ub2NmaQkJX19hdHRyaWJ1dGVfXygoX19ub19zYW5pdGl6ZV9fKCJj ZmkiKSkpCi0jZGVmaW5lIF9fY2ZpY2Fub25pY2FsCV9fYXR0cmlidXRlX18oKF9fY2ZpX2Nhbm9u aWNhbF9qdW1wX3RhYmxlX18pKQotCi0jaWYgZGVmaW5lZChDT05GSUdfQ0ZJX0NMQU5HKQotLyoK LSAqIFdpdGggQ09ORklHX0NGSV9DTEFORywgdGhlIGNvbXBpbGVyIHJlcGxhY2VzIGZ1bmN0aW9u IGFkZHJlc3MKLSAqIHJlZmVyZW5jZXMgd2l0aCB0aGUgYWRkcmVzcyBvZiB0aGUgZnVuY3Rpb24n cyBDRkkganVtcCB0YWJsZQotICogZW50cnkuIFRoZSBmdW5jdGlvbl9ub2NmaSBtYWNybyBhbHdh eXMgcmV0dXJucyB0aGUgYWRkcmVzcyBvZiB0aGUKLSAqIGFjdHVhbCBmdW5jdGlvbiBpbnN0ZWFk LgotICovCi0jZGVmaW5lIGZ1bmN0aW9uX25vY2ZpKHgpCV9fYnVpbHRpbl9mdW5jdGlvbl9zdGFy dCh4KQorI2lmIF9faGFzX2ZlYXR1cmUoa2NmaSkKKy8qIERpc2FibGUgQ0ZJIGNoZWNraW5nIGlu c2lkZSBhIGZ1bmN0aW9uLiAqLworI2RlZmluZSBfX25vY2ZpCQlfX2F0dHJpYnV0ZV9fKChfX25v X3Nhbml0aXplX18oImtjZmkiKSkpCiAjZW5kaWYKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUv bGludXgvbW9kdWxlLmggYi9pbmNsdWRlL2xpbnV4L21vZHVsZS5oCmluZGV4IGVmZWNkNjVhOTc2 ZC4uNmQ2YjVlNjg0ODY5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L21vZHVsZS5oCisrKyBi L2luY2x1ZGUvbGludXgvbW9kdWxlLmgKQEAgLTI3LDcgKzI3LDYgQEAKICNpbmNsdWRlIDxsaW51 eC90cmFjZXBvaW50LWRlZnMuaD4KICNpbmNsdWRlIDxsaW51eC9zcmN1Lmg+CiAjaW5jbHVkZSA8 bGludXgvc3RhdGljX2NhbGxfdHlwZXMuaD4KLSNpbmNsdWRlIDxsaW51eC9jZmkuaD4KIAogI2lu Y2x1ZGUgPGxpbnV4L3BlcmNwdS5oPgogI2luY2x1ZGUgPGFzbS9tb2R1bGUuaD4KQEAgLTM4Nyw4 ICszODYsOSBAQCBzdHJ1Y3QgbW9kdWxlIHsKIAljb25zdCBzMzIgKmNyY3M7CiAJdW5zaWduZWQg aW50IG51bV9zeW1zOwogCi0jaWZkZWYgQ09ORklHX0NGSV9DTEFORwotCWNmaV9jaGVja19mbiBj ZmlfY2hlY2s7CisjaWZkZWYgQ09ORklHX0FSQ0hfVVNFU19DRklfVFJBUFMKKwlzMzIgKmtjZmlf dHJhcHM7CisJczMyICprY2ZpX3RyYXBzX2VuZDsKICNlbmRpZgogCiAJLyogS2VybmVsIHBhcmFt ZXRlcnMuICovCmRpZmYgLS1naXQgYS9rZXJuZWwvY2ZpLmMgYi9rZXJuZWwvY2ZpLmMKaW5kZXgg MmNjMGQwMWVhOTgwLi4wOGNhYWQ3NzY3MTcgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9jZmkuYworKysg Yi9rZXJuZWwvY2ZpLmMKQEAgLTEsOTQgKzEsMTAxIEBACiAvLyBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogR1BMLTIuMAogLyoKLSAqIENsYW5nIENvbnRyb2wgRmxvdyBJbnRlZ3JpdHkgKENGSSkg ZXJyb3IgYW5kIHNsb3dwYXRoIGhhbmRsaW5nLgorICogQ2xhbmcgQ29udHJvbCBGbG93IEludGVn cml0eSAoQ0ZJKSBlcnJvciBoYW5kbGluZy4KICAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgR29v Z2xlIExMQworICogQ29weXJpZ2h0IChDKSAyMDIyIEdvb2dsZSBMTEMKICAqLwogCi0jaW5jbHVk ZSA8bGludXgvaGFyZGlycS5oPgotI2luY2x1ZGUgPGxpbnV4L2thbGxzeW1zLmg+Ci0jaW5jbHVk ZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KLSNpbmNsdWRlIDxs aW51eC9wcmludGsuaD4KLSNpbmNsdWRlIDxsaW51eC9yYXRlbGltaXQuaD4KLSNpbmNsdWRlIDxs aW51eC9yY3VwZGF0ZS5oPgotI2luY2x1ZGUgPGxpbnV4L3ZtYWxsb2MuaD4KLSNpbmNsdWRlIDxh c20vY2FjaGVmbHVzaC5oPgotI2luY2x1ZGUgPGFzbS9zZXRfbWVtb3J5Lmg+Ci0KLS8qIENvbXBp bGVyLWRlZmluZWQgaGFuZGxlciBuYW1lcyAqLwotI2lmZGVmIENPTkZJR19DRklfUEVSTUlTU0lW RQotI2RlZmluZSBjZmlfZmFpbHVyZV9oYW5kbGVyCV9fdWJzYW5faGFuZGxlX2NmaV9jaGVja19m YWlsCi0jZWxzZQotI2RlZmluZSBjZmlfZmFpbHVyZV9oYW5kbGVyCV9fdWJzYW5faGFuZGxlX2Nm aV9jaGVja19mYWlsX2Fib3J0Ci0jZW5kaWYKLQotc3RhdGljIGlubGluZSB2b2lkIGhhbmRsZV9j ZmlfZmFpbHVyZSh2b2lkICpwdHIpCisjaW5jbHVkZSA8bGludXgvY2ZpLmg+CisKK2VudW0gYnVn X3RyYXBfdHlwZSByZXBvcnRfY2ZpX2ZhaWx1cmUoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHVuc2ln bmVkIGxvbmcgYWRkciwKKwkJCQkgICAgICB1bnNpZ25lZCBsb25nICp0YXJnZXQsIHUzMiB0eXBl KQogewotCWlmIChJU19FTkFCTEVEKENPTkZJR19DRklfUEVSTUlTU0lWRSkpCi0JCVdBUk5fUkFU RUxJTUlUKDEsICJDRkkgZmFpbHVyZSAodGFyZ2V0OiAlcFMpOlxuIiwgcHRyKTsKKwlpZiAodGFy Z2V0KQorCQlwcl9lcnIoIkNGSSBmYWlsdXJlIGF0ICVwUyAodGFyZ2V0OiAlcFM7IGV4cGVjdGVk IHR5cGU6IDB4JTA4eClcbiIsCisJCSAgICAgICAodm9pZCAqKWFkZHIsICh2b2lkICopKnRhcmdl dCwgdHlwZSk7CiAJZWxzZQotCQlwYW5pYygiQ0ZJIGZhaWx1cmUgKHRhcmdldDogJXBTKVxuIiwg cHRyKTsKKwkJcHJfZXJyKCJDRkkgZmFpbHVyZSBhdCAlcFMgKG5vIHRhcmdldCBpbmZvcm1hdGlv bilcbiIsCisJCSAgICAgICAodm9pZCAqKWFkZHIpOworCisJaWYgKElTX0VOQUJMRUQoQ09ORklH X0NGSV9QRVJNSVNTSVZFKSkgeworCQlfX3dhcm4oTlVMTCwgMCwgKHZvaWQgKilhZGRyLCAwLCBy ZWdzLCBOVUxMKTsKKwkJcmV0dXJuIEJVR19UUkFQX1RZUEVfV0FSTjsKKwl9CisKKwlyZXR1cm4g QlVHX1RSQVBfVFlQRV9CVUc7CiB9CiAKLSNpZmRlZiBDT05GSUdfTU9EVUxFUworI2lmZGVmIENP TkZJR19BUkNIX1VTRVNfQ0ZJX1RSQVBTCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgdHJh cF9hZGRyZXNzKHMzMiAqcCkKK3sKKwlyZXR1cm4gKHVuc2lnbmVkIGxvbmcpKChsb25nKXAgKyAo bG9uZykqcCk7Cit9CiAKLXN0YXRpYyBpbmxpbmUgY2ZpX2NoZWNrX2ZuIGZpbmRfbW9kdWxlX2No ZWNrX2ZuKHVuc2lnbmVkIGxvbmcgcHRyKQorc3RhdGljIGJvb2wgaXNfdHJhcCh1bnNpZ25lZCBs b25nIGFkZHIsIHMzMiAqc3RhcnQsIHMzMiAqZW5kKQogewotCWNmaV9jaGVja19mbiBmbiA9IE5V TEw7Ci0Jc3RydWN0IG1vZHVsZSAqbW9kOworCXMzMiAqcDsKIAotCXJjdV9yZWFkX2xvY2tfc2No ZWRfbm90cmFjZSgpOwotCW1vZCA9IF9fbW9kdWxlX2FkZHJlc3MocHRyKTsKLQlpZiAobW9kKQot CQlmbiA9IG1vZC0+Y2ZpX2NoZWNrOwotCXJjdV9yZWFkX3VubG9ja19zY2hlZF9ub3RyYWNlKCk7 CisJZm9yIChwID0gc3RhcnQ7IHAgPCBlbmQ7ICsrcCkgeworCQlpZiAodHJhcF9hZGRyZXNzKHAp ID09IGFkZHIpCisJCQlyZXR1cm4gdHJ1ZTsKKwl9CiAKLQlyZXR1cm4gZm47CisJcmV0dXJuIGZh bHNlOwogfQogCi1zdGF0aWMgaW5saW5lIGNmaV9jaGVja19mbiBmaW5kX2NoZWNrX2ZuKHVuc2ln bmVkIGxvbmcgcHRyKQorI2lmZGVmIENPTkZJR19NT0RVTEVTCisvKiBQb3B1bGF0ZXMgYGtjZmlf dHJhcChfZW5kKT9gIGZpZWxkcyBpbiBgc3RydWN0IG1vZHVsZWAuICovCit2b2lkIG1vZHVsZV9j ZmlfZmluYWxpemUoY29uc3QgRWxmX0VoZHIgKmhkciwgY29uc3QgRWxmX1NoZHIgKnNlY2hkcnMs CisJCQkgc3RydWN0IG1vZHVsZSAqbW9kKQogewotCWNmaV9jaGVja19mbiBmbiA9IE5VTEw7CisJ Y2hhciAqc2Vjc3RyaW5nczsKKwl1bnNpZ25lZCBpbnQgaTsKIAotCWlmIChpc19rZXJuZWxfdGV4 dChwdHIpKQotCQlyZXR1cm4gX19jZmlfY2hlY2s7CisJbW9kLT5rY2ZpX3RyYXBzID0gTlVMTDsK Kwltb2QtPmtjZmlfdHJhcHNfZW5kID0gTlVMTDsKIAotCS8qCi0JICogSW5kaXJlY3QgY2FsbCBj aGVja3MgY2FuIGhhcHBlbiB3aGVuIFJDVSBpcyBub3Qgd2F0Y2hpbmcuIEJvdGgKLQkgKiB0aGUg c2hhZG93IGFuZCBfX21vZHVsZV9hZGRyZXNzIHVzZSBSQ1UsIHNvIHdlIG5lZWQgdG8gd2FrZSBp dAotCSAqIHVwIGlmIG5lY2Vzc2FyeS4KLQkgKi8KLQlSQ1VfTk9OSURMRSh7Ci0JCWZuID0gZmlu ZF9tb2R1bGVfY2hlY2tfZm4ocHRyKTsKLQl9KTsKKwlzZWNzdHJpbmdzID0gKGNoYXIgKiloZHIg KyBzZWNoZHJzW2hkci0+ZV9zaHN0cm5keF0uc2hfb2Zmc2V0OwogCi0JcmV0dXJuIGZuOworCWZv ciAoaSA9IDE7IGkgPCBoZHItPmVfc2hudW07IGkrKykgeworCQlpZiAoc3RyY21wKHNlY3N0cmlu Z3MgKyBzZWNoZHJzW2ldLnNoX25hbWUsICJfX2tjZmlfdHJhcHMiKSkKKwkJCWNvbnRpbnVlOwor CisJCW1vZC0+a2NmaV90cmFwcyA9IChzMzIgKilzZWNoZHJzW2ldLnNoX2FkZHI7CisJCW1vZC0+ a2NmaV90cmFwc19lbmQgPSAoczMyICopKHNlY2hkcnNbaV0uc2hfYWRkciArIHNlY2hkcnNbaV0u c2hfc2l6ZSk7CisJCWJyZWFrOworCX0KIH0KIAotdm9pZCBfX2NmaV9zbG93cGF0aF9kaWFnKHVp bnQ2NF90IGlkLCB2b2lkICpwdHIsIHZvaWQgKmRpYWcpCitzdGF0aWMgYm9vbCBpc19tb2R1bGVf Y2ZpX3RyYXAodW5zaWduZWQgbG9uZyBhZGRyKQogewotCWNmaV9jaGVja19mbiBmbiA9IGZpbmRf Y2hlY2tfZm4oKHVuc2lnbmVkIGxvbmcpcHRyKTsKKwlzdHJ1Y3QgbW9kdWxlICptb2Q7CisJYm9v bCBmb3VuZCA9IGZhbHNlOwogCi0JaWYgKGxpa2VseShmbikpCi0JCWZuKGlkLCBwdHIsIGRpYWcp OwotCWVsc2UgLyogRG9uJ3QgYWxsb3cgdW5jaGVja2VkIG1vZHVsZXMgKi8KLQkJaGFuZGxlX2Nm aV9mYWlsdXJlKHB0cik7Ci19Ci1FWFBPUlRfU1lNQk9MKF9fY2ZpX3Nsb3dwYXRoX2RpYWcpOwor CXJjdV9yZWFkX2xvY2tfc2NoZWRfbm90cmFjZSgpOwogCi0jZWxzZSAvKiAhQ09ORklHX01PRFVM RVMgKi8KKwltb2QgPSBfX21vZHVsZV9hZGRyZXNzKGFkZHIpOworCWlmIChtb2QpCisJCWZvdW5k ID0gaXNfdHJhcChhZGRyLCBtb2QtPmtjZmlfdHJhcHMsIG1vZC0+a2NmaV90cmFwc19lbmQpOwog Ci12b2lkIF9fY2ZpX3Nsb3dwYXRoX2RpYWcodWludDY0X3QgaWQsIHZvaWQgKnB0ciwgdm9pZCAq ZGlhZykKKwlyY3VfcmVhZF91bmxvY2tfc2NoZWRfbm90cmFjZSgpOworCisJcmV0dXJuIGZvdW5k OworfQorI2Vsc2UgLyogQ09ORklHX01PRFVMRVMgKi8KK3N0YXRpYyBpbmxpbmUgYm9vbCBpc19t b2R1bGVfY2ZpX3RyYXAodW5zaWduZWQgbG9uZyBhZGRyKQogewotCWhhbmRsZV9jZmlfZmFpbHVy ZShwdHIpOyAvKiBObyBtb2R1bGVzICovCisJcmV0dXJuIGZhbHNlOwogfQotRVhQT1JUX1NZTUJP TChfX2NmaV9zbG93cGF0aF9kaWFnKTsKLQogI2VuZGlmIC8qIENPTkZJR19NT0RVTEVTICovCiAK LXZvaWQgY2ZpX2ZhaWx1cmVfaGFuZGxlcih2b2lkICpkYXRhLCB2b2lkICpwdHIsIHZvaWQgKnZ0 YWJsZSkKK2V4dGVybiBzMzIgX19zdGFydF9fX2tjZmlfdHJhcHNbXTsKK2V4dGVybiBzMzIgX19z dG9wX19fa2NmaV90cmFwc1tdOworCitib29sIGlzX2NmaV90cmFwKHVuc2lnbmVkIGxvbmcgYWRk cikKIHsKLQloYW5kbGVfY2ZpX2ZhaWx1cmUocHRyKTsKKwlpZiAoaXNfdHJhcChhZGRyLCBfX3N0 YXJ0X19fa2NmaV90cmFwcywgX19zdG9wX19fa2NmaV90cmFwcykpCisJCXJldHVybiB0cnVlOwor CisJcmV0dXJuIGlzX21vZHVsZV9jZmlfdHJhcChhZGRyKTsKIH0KLUVYUE9SVF9TWU1CT0woY2Zp X2ZhaWx1cmVfaGFuZGxlcik7CisjZW5kaWYgLyogQ09ORklHX0FSQ0hfVVNFU19DRklfVFJBUFMg Ki8KZGlmZiAtLWdpdCBhL2tlcm5lbC9tb2R1bGUvbWFpbi5jIGIva2VybmVsL21vZHVsZS9tYWlu LmMKaW5kZXggYjU3NmI5ZmNjZWMyLi5kYTJlMGFmNzNiMTggMTAwNjQ0Ci0tLSBhL2tlcm5lbC9t b2R1bGUvbWFpbi5jCisrKyBiL2tlcm5lbC9tb2R1bGUvbWFpbi5jCkBAIC01Myw2ICs1Myw3IEBA CiAjaW5jbHVkZSA8bGludXgvYnNlYXJjaC5oPgogI2luY2x1ZGUgPGxpbnV4L2R5bmFtaWNfZGVi dWcuaD4KICNpbmNsdWRlIDxsaW51eC9hdWRpdC5oPgorI2luY2x1ZGUgPGxpbnV4L2NmaS5oPgog I2luY2x1ZGUgPHVhcGkvbGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSAiaW50ZXJuYWwuaCIKIApA QCAtMjU3NCw4ICsyNTc1LDkgQEAgc3RhdGljIGludCBjb21wbGV0ZV9mb3JtYXRpb24oc3RydWN0 IG1vZHVsZSAqbW9kLCBzdHJ1Y3QgbG9hZF9pbmZvICppbmZvKQogCWlmIChlcnIgPCAwKQogCQln b3RvIG91dDsKIAotCS8qIFRoaXMgcmVsaWVzIG9uIG1vZHVsZV9tdXRleCBmb3IgbGlzdCBpbnRl Z3JpdHkuICovCisJLyogVGhlc2UgcmVseSBvbiBtb2R1bGVfbXV0ZXggZm9yIGxpc3QgaW50ZWdy aXR5LiAqLwogCW1vZHVsZV9idWdfZmluYWxpemUoaW5mby0+aGRyLCBpbmZvLT5zZWNoZHJzLCBt b2QpOworCW1vZHVsZV9jZmlfZmluYWxpemUoaW5mby0+aGRyLCBpbmZvLT5zZWNoZHJzLCBtb2Qp OwogCiAJaWYgKG1vZHVsZV9jaGVja19taXNhbGlnbm1lbnQobW9kKSkKIAkJZ290byBvdXRfbWlz YWxpZ25lZDsKQEAgLTI2MzYsOCArMjYzOCw2IEBAIHN0YXRpYyBpbnQgdW5rbm93bl9tb2R1bGVf cGFyYW1fY2IoY2hhciAqcGFyYW0sIGNoYXIgKnZhbCwgY29uc3QgY2hhciAqbW9kbmFtZSwKIAly ZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgY2ZpX2luaXQoc3RydWN0IG1vZHVsZSAqbW9kKTsK LQogLyoKICAqIEFsbG9jYXRlIGFuZCBsb2FkIHRoZSBtb2R1bGU6IG5vdGUgdGhhdCBzaXplIG9m IHNlY3Rpb24gMCBpcyBhbHdheXMKICAqIHplcm8sIGFuZCB3ZSByZWx5IG9uIHRoaXMgZm9yIG9w dGlvbmFsIHNlY3Rpb25zLgpAQCAtMjc2Nyw5ICsyNzY3LDYgQEAgc3RhdGljIGludCBsb2FkX21v ZHVsZShzdHJ1Y3QgbG9hZF9pbmZvICppbmZvLCBjb25zdCBjaGFyIF9fdXNlciAqdWFyZ3MsCiAK IAlmbHVzaF9tb2R1bGVfaWNhY2hlKG1vZCk7CiAKLQkvKiBTZXR1cCBDRkkgZm9yIHRoZSBtb2R1 bGUuICovCi0JY2ZpX2luaXQobW9kKTsKLQogCS8qIE5vdyBjb3B5IGluIGFyZ3MgKi8KIAltb2Qt PmFyZ3MgPSBzdHJuZHVwX3VzZXIodWFyZ3MsIH4wVUwgPj4gMSk7CiAJaWYgKElTX0VSUihtb2Qt PmFyZ3MpKSB7CkBAIC0yOTI5LDMxICsyOTI2LDYgQEAgc3RhdGljIGlubGluZSBpbnQgd2l0aGlu KHVuc2lnbmVkIGxvbmcgYWRkciwgdm9pZCAqc3RhcnQsIHVuc2lnbmVkIGxvbmcgc2l6ZSkKIAly ZXR1cm4gKCh2b2lkICopYWRkciA+PSBzdGFydCAmJiAodm9pZCAqKWFkZHIgPCBzdGFydCArIHNp emUpOwogfQogCi1zdGF0aWMgdm9pZCBjZmlfaW5pdChzdHJ1Y3QgbW9kdWxlICptb2QpCi17Ci0j aWZkZWYgQ09ORklHX0NGSV9DTEFORwotCWluaXRjYWxsX3QgKmluaXQ7Ci0JZXhpdGNhbGxfdCAq ZXhpdDsKLQotCXJjdV9yZWFkX2xvY2tfc2NoZWQoKTsKLQltb2QtPmNmaV9jaGVjayA9IChjZmlf Y2hlY2tfZm4pCi0JCWZpbmRfa2FsbHN5bXNfc3ltYm9sX3ZhbHVlKG1vZCwgIl9fY2ZpX2NoZWNr Iik7Ci0JaW5pdCA9IChpbml0Y2FsbF90ICopCi0JCWZpbmRfa2FsbHN5bXNfc3ltYm9sX3ZhbHVl KG1vZCwgIl9fY2ZpX2p0X2luaXRfbW9kdWxlIik7Ci0JZXhpdCA9IChleGl0Y2FsbF90ICopCi0J CWZpbmRfa2FsbHN5bXNfc3ltYm9sX3ZhbHVlKG1vZCwgIl9fY2ZpX2p0X2NsZWFudXBfbW9kdWxl Iik7Ci0JcmN1X3JlYWRfdW5sb2NrX3NjaGVkKCk7Ci0KLQkvKiBGaXggaW5pdC9leGl0IGZ1bmN0 aW9ucyB0byBwb2ludCB0byB0aGUgQ0ZJIGp1bXAgdGFibGUgKi8KLQlpZiAoaW5pdCkKLQkJbW9k LT5pbml0ID0gKmluaXQ7Ci0jaWZkZWYgQ09ORklHX01PRFVMRV9VTkxPQUQKLQlpZiAoZXhpdCkK LQkJbW9kLT5leGl0ID0gKmV4aXQ7Ci0jZW5kaWYKLSNlbmRpZgotfQotCiAvKiBLZWVwIGluIHN5 bmMgd2l0aCBNT0RVTEVfRkxBR1NfQlVGX1NJWkUgISEhICovCiBjaGFyICptb2R1bGVfZmxhZ3Mo c3RydWN0IG1vZHVsZSAqbW9kLCBjaGFyICpidWYpCiB7CmRpZmYgLS1naXQgYS9zY3JpcHRzL21v ZHVsZS5sZHMuUyBiL3NjcmlwdHMvbW9kdWxlLmxkcy5TCmluZGV4IDFkMGUxZTRkYzNkMi4uMDcw ODg5NjEzOWNjIDEwMDY0NAotLS0gYS9zY3JpcHRzL21vZHVsZS5sZHMuUworKysgYi9zY3JpcHRz L21vZHVsZS5sZHMuUwpAQCAtMywyMCArMywxMCBAQAogICogQXJjaHMgYXJlIGZyZWUgdG8gc3Vw cGx5IHRoZWlyIG93biBsaW5rZXIgc2NyaXB0cy4gIGxkIHdpbGwKICAqIGNvbWJpbmUgdGhlbSBh dXRvbWF0aWNhbGx5LgogICovCi0jaWZkZWYgQ09ORklHX0NGSV9DTEFORwotIyBpbmNsdWRlIDxh c20vcGFnZS5oPgotIyBkZWZpbmUgQUxJR05fQ0ZJIAkJQUxJR04oUEFHRV9TSVpFKQotIyBkZWZp bmUgU0FOSVRJWkVSX0RJU0NBUkRTCSooLmVoX2ZyYW1lKQotI2Vsc2UKLSMgZGVmaW5lIEFMSUdO X0NGSQotIyBkZWZpbmUgU0FOSVRJWkVSX0RJU0NBUkRTCi0jZW5kaWYKLQogU0VDVElPTlMgewog CS9ESVNDQVJELyA6IHsKIAkJKiguZGlzY2FyZCkKIAkJKiguZGlzY2FyZC4qKQotCQlTQU5JVEla RVJfRElTQ0FSRFMKIAl9CiAKIAlfX2tzeW10YWIJCTAgOiB7ICooU09SVChfX19rc3ltdGFiKyop KSB9CkBAIC0zMSw2ICsyMSwxMCBAQCBTRUNUSU9OUyB7CiAKIAlfX3BhdGNoYWJsZV9mdW5jdGlv bl9lbnRyaWVzIDogeyAqKF9fcGF0Y2hhYmxlX2Z1bmN0aW9uX2VudHJpZXMpIH0KIAorI2lmZGVm IENPTkZJR19BUkNIX1VTRVNfQ0ZJX1RSQVBTCisJX19rY2ZpX3RyYXBzIAkJOiB7IEtFRVAoKigu a2NmaV90cmFwcykpIH0KKyNlbmRpZgorCiAjaWZkZWYgQ09ORklHX0xUT19DTEFORwogCS8qCiAJ ICogV2l0aCBDT05GSUdfTFRPX0NMQU5HLCBMTEQgYWx3YXlzIGVuYWJsZXMgLWZkYXRhLXNlY3Rp b25zIGFuZApAQCAtNTEsMTUgKzQ1LDYgQEAgU0VDVElPTlMgewogCQkqKC5yb2RhdGEgLnJvZGF0 YS5bMC05YS16QS1aX10qKQogCQkqKC5yb2RhdGEuLkwqKQogCX0KLQotCS8qCi0JICogV2l0aCBD T05GSUdfQ0ZJX0NMQU5HLCB3ZSBhc3N1bWUgX19jZmlfY2hlY2sgaXMgYXQgdGhlIGJlZ2lubmlu ZwotCSAqIG9mIHRoZSAudGV4dCBzZWN0aW9uLCBhbmQgaXMgYWxpZ25lZCB0byBQQUdFX1NJWkUu Ci0JICovCi0JLnRleHQgOiBBTElHTl9DRkkgewotCQkqKC50ZXh0Ll9fY2ZpX2NoZWNrKQotCQkq KC50ZXh0IC50ZXh0LlswLTlhLXpBLVpfXSogLnRleHQuLkwuY2ZpKikKLQl9CiAjZW5kaWYKIH0K IAotLSAKMi4zNi4xLjQ3Ni5nMGM0ZGFhMjA2ZC1nb29nCgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QK bGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRl YWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=