From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f74.google.com (mail-wr1-f74.google.com [209.85.221.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8E4EE17AD4 for ; Tue, 30 May 2023 15:08:52 +0000 (UTC) Received: by mail-wr1-f74.google.com with SMTP id ffacd0b85a97d-30793c16c78so6314507f8f.3 for ; Tue, 30 May 2023 08:08:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1685459331; x=1688051331; h=content-transfer-encoding:cc:to:from:subject:message-id :mime-version:date:from:to:cc:subject:date:message-id:reply-to; bh=INyGt+QwuTfaFJp7EMJqWEOGoXUhxd+HBtKKNdnZww4=; b=KCvwHCzwHpZZcpBVv1I1bLVHxO8Xn2ykPeOkv2+KApmacnGFPK6nf/m23byfUEnWss JPn9KobcIzYTNjur4ig/onz6AWeR5RNE0aknK92u/onIH9hZ59bkBT/Z3kS42C5bDN2G ijShs3+RjX/Kyug5HfHwMD6rf945IC5Rb60s1gop/te04Uwtr84EwbUEs7YrUqnreG/n eREjm5sR5mqfWssu4wU3/quLaDOUC7QKSQaaiRRHSnhoF7+f+cK+dVXqf95XrN8AdMiI 1I08XmHJ2RwLI/M0G/GOXG10F6zNKZxndz8fVfWBLLp0OgpDirhtbwh8taxNGl9nduTd AuiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685459331; x=1688051331; h=content-transfer-encoding:cc:to:from:subject:message-id :mime-version:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=INyGt+QwuTfaFJp7EMJqWEOGoXUhxd+HBtKKNdnZww4=; b=dN67t2NyBjZQZmTFjrl/FEmgz4Cz0rrd7FPFr4DuXVwV+iF6gaQCqg2bY1QRQ0MDHj I+Z5ErgaRaCecoG53dUuNgakwnVluNkfuy6YQVs6PPZ5/2MrI/3k3GMhARtiXfJ+Exlr fy5ELo93Z87glRe41R77SB+X4uz4WuVI9M810mbqKbGRl0viU3OdtG2kVd4qhnfTBXGB CR2uUd2ZWpLL0ec8XFHIcRyQ3Eel9q2uqZwNUAThwep75AEMqf0e9PUXvRz/qYpVJO9A IqYA8KHhMvHVkdrWu4R/pDqV5VRFu2nVfETJ+DWUEF/K9kxYifNA7JKRHg08ZB+ACL45 +gvw== X-Gm-Message-State: AC+VfDwvrVg5TdGtBlhUJOcsco0axt02kzGLMGuwtXBbgmAbbKxCrFXa GwetCP1MFsp1j/CD2m207KJHjyc5TU0xVA== X-Google-Smtp-Source: ACHHUZ7trUbccosip83Jp1hHUHvUBBwTyfaeunBbCnY0yI3RJzF02Xs+ZkFq/94n82IAdm05j7g66a3Ser3rDQ== X-Received: from mostafa.c.googlers.com ([fda3:e722:ac3:cc00:28:9cb1:c0a8:333c]) (user=smostafa job=sendgmr) by 2002:a05:6000:46:b0:30a:b030:9ce1 with SMTP id k6-20020a056000004600b0030ab0309ce1mr431213wrx.5.1685459330796; Tue, 30 May 2023 08:08:50 -0700 (PDT) Date: Tue, 30 May 2023 15:08:45 +0000 Precedence: bulk X-Mailing-List: kvmarm@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 X-Mailer: git-send-email 2.41.0.rc0.172.g3f132b7071-goog Message-ID: <20230530150845.2856828-1-smostafa@google.com> Subject: [PATCH v3] KVM: arm64: Use BTI for nvhe From: Mostafa Saleh To: maz@kernel.org, oliver.upton@linux.dev, linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-kernel@vger.kernel.org Cc: tabba@google.com, qperret@google.com, will@kernel.org, catalin.marinas@arm.com, yuzenghui@huawei.com, suzuki.poulose@arm.com, james.morse@arm.com, bgardon@google.com, gshan@redhat.com, Mostafa Saleh Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable CONFIG_ARM64_BTI_KERNEL compiles the kernel to support ARMv8.5-BTI. However, the nvhe code doesn't make use of it as it doesn't map any pages with Guarded Page(GP) bit. kvm pgtable code is modified to map executable pages with GP bit if BTI is enabled for the kernel. At hyp init, SCTLR_EL2.BT is set to 1 to match EL1 configuration (SCTLR_EL1.BT1) set in bti_enable(). One difference between kernel and nvhe code, is that the kernel maps .text with GP while nvhe maps all the executable pages, this makes nvhe code need to deal with special initialization code coming from other executable sections (.idmap.text). For this we need to add bti instruction at the beginning of __kvm_handle_stub_hvc as it can be called by __host_hvc through branch instruction(br) and unlike SYM_FUNC_START, SYM_CODE_START doesn=E2=80=99t add bti instruction at the beginning, and it can=E2=80=99t = be modified to add it as it is used with vector tables. Another solution which is more intrusive is to convert __kvm_handle_stub_hvc to a function and inject =E2=80=9Cbti jc=E2=80=9D ins= tead of =E2=80=9Cbti c=E2=80=9D in SYM_FUNC_START Signed-off-by: Mostafa Saleh --- v2 -> v3: - Map all executable pages with GP bit instead of just .text, this simplifies the code and avoids hacks in pgtable code. v1 -> v2: - Enable BTI for nvhe also. - Only set GP bit for executable pages from pgtable code. - Set SCTLR_EL2.BT when BTI is used. - use system_supports_bti() for consistency. - Add hyp_init_valid_leaf_pte. v1: https://lore.kernel.org/all/20230516141846.792193-1-smostafa@google.com= / --- arch/arm64/include/asm/sysreg.h | 1 + arch/arm64/kvm/hyp/nvhe/hyp-init.S | 12 ++++++++++++ arch/arm64/kvm/hyp/pgtable.c | 7 ++++++- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/arch/arm64/include/asm/sysreg.h b/arch/arm64/include/asm/sysre= g.h index e72d9aaab6b1..204124ce86c4 100644 --- a/arch/arm64/include/asm/sysreg.h +++ b/arch/arm64/include/asm/sysreg.h @@ -558,6 +558,7 @@ (BIT(18)) | (BIT(22)) | (BIT(23)) | (BIT(28)) | \ (BIT(29))) =20 +#define SCTLR_EL2_BT (BIT(36)) #ifdef CONFIG_CPU_BIG_ENDIAN #define ENDIAN_SET_EL2 SCTLR_ELx_EE #else diff --git a/arch/arm64/kvm/hyp/nvhe/hyp-init.S b/arch/arm64/kvm/hyp/nvhe/h= yp-init.S index a6d67c2bb5ae..f3ee66aa2f9d 100644 --- a/arch/arm64/kvm/hyp/nvhe/hyp-init.S +++ b/arch/arm64/kvm/hyp/nvhe/hyp-init.S @@ -128,6 +128,13 @@ alternative_if ARM64_HAS_ADDRESS_AUTH SCTLR_ELx_ENDA | SCTLR_ELx_ENDB) orr x0, x0, x1 alternative_else_nop_endif + +#ifdef CONFIG_ARM64_BTI_KERNEL +alternative_if ARM64_BTI + orr x0, x0, #SCTLR_EL2_BT +alternative_else_nop_endif +#endif /* CONFIG_ARM64_BTI_KERNEL */ + msr sctlr_el2, x0 isb =20 @@ -196,6 +203,11 @@ SYM_CODE_START_LOCAL(__kvm_hyp_init_cpu) SYM_CODE_END(__kvm_hyp_init_cpu) =20 SYM_CODE_START(__kvm_handle_stub_hvc) + /* + * __kvm_handle_stub_hvc called from __host_hvc through branch instructio= n(br) so + * we need bti j at beginning. + */ + bti j cmp x0, #HVC_SOFT_RESTART b.ne 1f =20 diff --git a/arch/arm64/kvm/hyp/pgtable.c b/arch/arm64/kvm/hyp/pgtable.c index 3d61bd3e591d..a79a45fc4047 100644 --- a/arch/arm64/kvm/hyp/pgtable.c +++ b/arch/arm64/kvm/hyp/pgtable.c @@ -34,7 +34,7 @@ #define KVM_PTE_LEAF_ATTR_LO_S2_SH_IS 3 #define KVM_PTE_LEAF_ATTR_LO_S2_AF BIT(10) =20 -#define KVM_PTE_LEAF_ATTR_HI GENMASK(63, 51) +#define KVM_PTE_LEAF_ATTR_HI GENMASK(63, 50) =20 #define KVM_PTE_LEAF_ATTR_HI_SW GENMASK(58, 55) =20 @@ -42,6 +42,8 @@ =20 #define KVM_PTE_LEAF_ATTR_HI_S2_XN BIT(54) =20 +#define KVM_PTE_LEAF_ATTR_HI_S1_GP BIT(50) + #define KVM_PTE_LEAF_ATTR_S2_PERMS (KVM_PTE_LEAF_ATTR_LO_S2_S2AP_R | \ KVM_PTE_LEAF_ATTR_LO_S2_S2AP_W | \ KVM_PTE_LEAF_ATTR_HI_S2_XN) @@ -371,6 +373,9 @@ static int hyp_set_prot_attr(enum kvm_pgtable_prot prot= , kvm_pte_t *ptep) =20 if (device) return -EINVAL; + + if (IS_ENABLED(CONFIG_ARM64_BTI_KERNEL) && system_supports_bti()) + attr |=3D KVM_PTE_LEAF_ATTR_HI_S1_GP; } else { attr |=3D KVM_PTE_LEAF_ATTR_HI_S1_XN; } --=20 2.41.0.rc0.172.g3f132b7071-goog 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 0E0D0C7EE23 for ; Tue, 30 May 2023 15:09:23 +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:Message-ID: Mime-Version:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To: References:List-Owner; bh=Usj5qde0R8qs1m1y9yLh77eICq5MGVlnhx+6hx7S8hg=; b=oiv FOgDh8PUKj++dCAyHZlc8cShIoXDoiA7XTD6ub2BMg1Cde2BmP8K22ea15UpPiS/mWZklmSmMwgt5 sOvQbwFKDqdLW46XJFxtVEkTeAoA77/lP1Ij9lw76iB7WrbHlVqdCCljjYkF8S1dyjK2rCH+novn0 oe/t71YDrkBjqRGkGmscnxlrnxPt0RQgMPE4cdnYGBvEkNkRic9Gqt3S2jCVkZhiJGJPFB5sSHY1S XzhBhR88JA/BvTZpOZoiu+z/kr/W0cp+dqRoO+o7hgxmGvB9nLqEftm8JLTQ5rA5gVQm55xRj/kBG v6yCHGmKcl82NLF0qkLB4zOMs3QLTGA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1q40y1-00ELop-2N; Tue, 30 May 2023 15:08:57 +0000 Received: from mail-wr1-x449.google.com ([2a00:1450:4864:20::449]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1q40xy-00ELo6-2R for linux-arm-kernel@lists.infradead.org; Tue, 30 May 2023 15:08:56 +0000 Received: by mail-wr1-x449.google.com with SMTP id ffacd0b85a97d-30793c16c78so6314498f8f.3 for ; Tue, 30 May 2023 08:08:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1685459331; x=1688051331; h=content-transfer-encoding:cc:to:from:subject:message-id :mime-version:date:from:to:cc:subject:date:message-id:reply-to; bh=INyGt+QwuTfaFJp7EMJqWEOGoXUhxd+HBtKKNdnZww4=; b=KCvwHCzwHpZZcpBVv1I1bLVHxO8Xn2ykPeOkv2+KApmacnGFPK6nf/m23byfUEnWss JPn9KobcIzYTNjur4ig/onz6AWeR5RNE0aknK92u/onIH9hZ59bkBT/Z3kS42C5bDN2G ijShs3+RjX/Kyug5HfHwMD6rf945IC5Rb60s1gop/te04Uwtr84EwbUEs7YrUqnreG/n eREjm5sR5mqfWssu4wU3/quLaDOUC7QKSQaaiRRHSnhoF7+f+cK+dVXqf95XrN8AdMiI 1I08XmHJ2RwLI/M0G/GOXG10F6zNKZxndz8fVfWBLLp0OgpDirhtbwh8taxNGl9nduTd AuiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685459331; x=1688051331; h=content-transfer-encoding:cc:to:from:subject:message-id :mime-version:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=INyGt+QwuTfaFJp7EMJqWEOGoXUhxd+HBtKKNdnZww4=; b=EwPr4V587DhdsTbEIo9KkzFjUOn4sAe4aUyV3aMzReR27U9dRpcUMUyk99Rm1aYuUR tgp0eG/CbkadgNSu9UyfS1Ez0cFA3s8uNrtU0cl4gMcJDpTZfuWzfTekQxHnT3j0Edag VaBxyn+sJs+hO00RR4EBEDEMLqOZUm37KT6/SCuiiPQA+rlYaWQZivdR/eFI3YqNTO4Q hqSwEO+5LMWuorITxuC+0OnjqNWqRtyE9weOh8Ilx0BEy/aKov7v1YVasTuA1h3xQbox S+yeMk3z+ZXITR1t/aWu9gqnqFyDtcXYcJZdM3lpbMeEf/G2YDSLkJCq54gml3uFfBfg yPsA== X-Gm-Message-State: AC+VfDyOBm8qRMoxUp6/WkCoxtidowTGfIxCxT61DhAQ2Po8GxYO65Or UAt4HNhl5c9V2qXp1tHhFweviOtSMHMi7Q== X-Google-Smtp-Source: ACHHUZ7trUbccosip83Jp1hHUHvUBBwTyfaeunBbCnY0yI3RJzF02Xs+ZkFq/94n82IAdm05j7g66a3Ser3rDQ== X-Received: from mostafa.c.googlers.com ([fda3:e722:ac3:cc00:28:9cb1:c0a8:333c]) (user=smostafa job=sendgmr) by 2002:a05:6000:46:b0:30a:b030:9ce1 with SMTP id k6-20020a056000004600b0030ab0309ce1mr431213wrx.5.1685459330796; Tue, 30 May 2023 08:08:50 -0700 (PDT) Date: Tue, 30 May 2023 15:08:45 +0000 Mime-Version: 1.0 X-Mailer: git-send-email 2.41.0.rc0.172.g3f132b7071-goog Message-ID: <20230530150845.2856828-1-smostafa@google.com> Subject: [PATCH v3] KVM: arm64: Use BTI for nvhe From: Mostafa Saleh To: maz@kernel.org, oliver.upton@linux.dev, linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-kernel@vger.kernel.org Cc: tabba@google.com, qperret@google.com, will@kernel.org, catalin.marinas@arm.com, yuzenghui@huawei.com, suzuki.poulose@arm.com, james.morse@arm.com, bgardon@google.com, gshan@redhat.com, Mostafa Saleh X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230530_080854_812445_AD35232F X-CRM114-Status: GOOD ( 19.54 ) 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 Q09ORklHX0FSTTY0X0JUSV9LRVJORUwgY29tcGlsZXMgdGhlIGtlcm5lbCB0byBzdXBwb3J0IEFS TXY4LjUtQlRJLgpIb3dldmVyLCB0aGUgbnZoZSBjb2RlIGRvZXNuJ3QgbWFrZSB1c2Ugb2YgaXQg YXMgaXQgZG9lc24ndCBtYXAgYW55CnBhZ2VzIHdpdGggR3VhcmRlZCBQYWdlKEdQKSBiaXQuCgpr dm0gcGd0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIHRvIG1hcCBleGVjdXRhYmxlIHBhZ2VzIHdpdGgg R1AgYml0CmlmIEJUSSBpcyBlbmFibGVkIGZvciB0aGUga2VybmVsLgoKQXQgaHlwIGluaXQsIFND VExSX0VMMi5CVCBpcyBzZXQgdG8gMSB0byBtYXRjaCBFTDEgY29uZmlndXJhdGlvbgooU0NUTFJf RUwxLkJUMSkgc2V0IGluIGJ0aV9lbmFibGUoKS4KCk9uZSBkaWZmZXJlbmNlIGJldHdlZW4ga2Vy bmVsIGFuZCBudmhlIGNvZGUsIGlzIHRoYXQgdGhlIGtlcm5lbCBtYXBzCi50ZXh0IHdpdGggR1Ag d2hpbGUgbnZoZSBtYXBzIGFsbCB0aGUgZXhlY3V0YWJsZSBwYWdlcywgdGhpcyBtYWtlcwpudmhl IGNvZGUgbmVlZCB0byBkZWFsIHdpdGggc3BlY2lhbCBpbml0aWFsaXphdGlvbiBjb2RlIGNvbWlu ZyBmcm9tCm90aGVyIGV4ZWN1dGFibGUgc2VjdGlvbnMgKC5pZG1hcC50ZXh0KS4KRm9yIHRoaXMg d2UgbmVlZCB0byBhZGQgYnRpIGluc3RydWN0aW9uIGF0IHRoZSBiZWdpbm5pbmcgb2YKX19rdm1f aGFuZGxlX3N0dWJfaHZjIGFzIGl0IGNhbiBiZSBjYWxsZWQgYnkgIF9faG9zdF9odmMgdGhyb3Vn aApicmFuY2ggaW5zdHJ1Y3Rpb24oYnIpIGFuZCB1bmxpa2UgU1lNX0ZVTkNfU1RBUlQsIFNZTV9D T0RFX1NUQVJUCmRvZXNu4oCZdCBhZGQgYnRpIGluc3RydWN0aW9uIGF0IHRoZSBiZWdpbm5pbmcs IGFuZCBpdCBjYW7igJl0IGJlIG1vZGlmaWVkCnRvIGFkZCBpdCBhcyBpdCBpcyB1c2VkIHdpdGgg dmVjdG9yIHRhYmxlcy4KQW5vdGhlciBzb2x1dGlvbiB3aGljaCBpcyBtb3JlIGludHJ1c2l2ZSBp cyB0byBjb252ZXJ0Cl9fa3ZtX2hhbmRsZV9zdHViX2h2YyB0byBhIGZ1bmN0aW9uIGFuZCBpbmpl Y3Qg4oCcYnRpIGpj4oCdIGluc3RlYWQgb2YK4oCcYnRpIGPigJ0gaW4gU1lNX0ZVTkNfU1RBUlQK ClNpZ25lZC1vZmYtYnk6IE1vc3RhZmEgU2FsZWggPHNtb3N0YWZhQGdvb2dsZS5jb20+Ci0tLQp2 MiAtPiB2MzoKLSBNYXAgYWxsIGV4ZWN1dGFibGUgcGFnZXMgd2l0aCBHUCBiaXQgaW5zdGVhZCBv ZiBqdXN0IC50ZXh0LCB0aGlzCiAgc2ltcGxpZmllcyB0aGUgY29kZSBhbmQgYXZvaWRzIGhhY2tz IGluIHBndGFibGUgY29kZS4KdjEgLT4gdjI6Ci0gRW5hYmxlIEJUSSBmb3IgbnZoZSBhbHNvLgot IE9ubHkgc2V0IEdQIGJpdCBmb3IgZXhlY3V0YWJsZSBwYWdlcyBmcm9tIHBndGFibGUgY29kZS4K LSBTZXQgU0NUTFJfRUwyLkJUIHdoZW4gQlRJIGlzIHVzZWQuCi0gdXNlIHN5c3RlbV9zdXBwb3J0 c19idGkoKSBmb3IgY29uc2lzdGVuY3kuCi0gQWRkIGh5cF9pbml0X3ZhbGlkX2xlYWZfcHRlLgp2 MTogaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvYWxsLzIwMjMwNTE2MTQxODQ2Ljc5MjE5My0xLXNt b3N0YWZhQGdvb2dsZS5jb20vCi0tLQogYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9zeXNyZWcuaCAg ICB8ICAxICsKIGFyY2gvYXJtNjQva3ZtL2h5cC9udmhlL2h5cC1pbml0LlMgfCAxMiArKysrKysr KysrKysKIGFyY2gvYXJtNjQva3ZtL2h5cC9wZ3RhYmxlLmMgICAgICAgfCAgNyArKysrKystCiAz IGZpbGVzIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL3N5c3JlZy5oIGIvYXJjaC9hcm02NC9pbmNsdWRl L2FzbS9zeXNyZWcuaAppbmRleCBlNzJkOWFhYWI2YjEuLjIwNDEyNGNlODZjNCAxMDA2NDQKLS0t IGEvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9zeXNyZWcuaAorKysgYi9hcmNoL2FybTY0L2luY2x1 ZGUvYXNtL3N5c3JlZy5oCkBAIC01NTgsNiArNTU4LDcgQEAKIAkJCSAoQklUKDE4KSkgfCAoQklU KDIyKSkgfCAoQklUKDIzKSkgfCAoQklUKDI4KSkgfCBcCiAJCQkgKEJJVCgyOSkpKQogCisjZGVm aW5lIFNDVExSX0VMMl9CVAkoQklUKDM2KSkKICNpZmRlZiBDT05GSUdfQ1BVX0JJR19FTkRJQU4K ICNkZWZpbmUgRU5ESUFOX1NFVF9FTDIJCVNDVExSX0VMeF9FRQogI2Vsc2UKZGlmZiAtLWdpdCBh L2FyY2gvYXJtNjQva3ZtL2h5cC9udmhlL2h5cC1pbml0LlMgYi9hcmNoL2FybTY0L2t2bS9oeXAv bnZoZS9oeXAtaW5pdC5TCmluZGV4IGE2ZDY3YzJiYjVhZS4uZjNlZTY2YWEyZjlkIDEwMDY0NAot LS0gYS9hcmNoL2FybTY0L2t2bS9oeXAvbnZoZS9oeXAtaW5pdC5TCisrKyBiL2FyY2gvYXJtNjQv a3ZtL2h5cC9udmhlL2h5cC1pbml0LlMKQEAgLTEyOCw2ICsxMjgsMTMgQEAgYWx0ZXJuYXRpdmVf aWYgQVJNNjRfSEFTX0FERFJFU1NfQVVUSAogCQkgICAgIFNDVExSX0VMeF9FTkRBIHwgU0NUTFJf RUx4X0VOREIpCiAJb3JyCXgwLCB4MCwgeDEKIGFsdGVybmF0aXZlX2Vsc2Vfbm9wX2VuZGlmCisK KyNpZmRlZiBDT05GSUdfQVJNNjRfQlRJX0tFUk5FTAorYWx0ZXJuYXRpdmVfaWYgQVJNNjRfQlRJ CisJb3JyCXgwLCB4MCwgI1NDVExSX0VMMl9CVAorYWx0ZXJuYXRpdmVfZWxzZV9ub3BfZW5kaWYK KyNlbmRpZiAvKiBDT05GSUdfQVJNNjRfQlRJX0tFUk5FTCAqLworCiAJbXNyCXNjdGxyX2VsMiwg eDAKIAlpc2IKIApAQCAtMTk2LDYgKzIwMywxMSBAQCBTWU1fQ09ERV9TVEFSVF9MT0NBTChfX2t2 bV9oeXBfaW5pdF9jcHUpCiBTWU1fQ09ERV9FTkQoX19rdm1faHlwX2luaXRfY3B1KQogCiBTWU1f Q09ERV9TVEFSVChfX2t2bV9oYW5kbGVfc3R1Yl9odmMpCisJLyoKKwkgKiBfX2t2bV9oYW5kbGVf c3R1Yl9odmMgY2FsbGVkIGZyb20gX19ob3N0X2h2YyB0aHJvdWdoIGJyYW5jaCBpbnN0cnVjdGlv bihicikgc28KKwkgKiB3ZSBuZWVkIGJ0aSBqIGF0IGJlZ2lubmluZy4KKwkgKi8KKwlidGkgagog CWNtcAl4MCwgI0hWQ19TT0ZUX1JFU1RBUlQKIAliLm5lCTFmCiAKZGlmZiAtLWdpdCBhL2FyY2gv YXJtNjQva3ZtL2h5cC9wZ3RhYmxlLmMgYi9hcmNoL2FybTY0L2t2bS9oeXAvcGd0YWJsZS5jCmlu ZGV4IDNkNjFiZDNlNTkxZC4uYTc5YTQ1ZmM0MDQ3IDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2t2 bS9oeXAvcGd0YWJsZS5jCisrKyBiL2FyY2gvYXJtNjQva3ZtL2h5cC9wZ3RhYmxlLmMKQEAgLTM0 LDcgKzM0LDcgQEAKICNkZWZpbmUgS1ZNX1BURV9MRUFGX0FUVFJfTE9fUzJfU0hfSVMJMwogI2Rl ZmluZSBLVk1fUFRFX0xFQUZfQVRUUl9MT19TMl9BRglCSVQoMTApCiAKLSNkZWZpbmUgS1ZNX1BU RV9MRUFGX0FUVFJfSEkJCUdFTk1BU0soNjMsIDUxKQorI2RlZmluZSBLVk1fUFRFX0xFQUZfQVRU Ul9ISQkJR0VOTUFTSyg2MywgNTApCiAKICNkZWZpbmUgS1ZNX1BURV9MRUFGX0FUVFJfSElfU1cJ CUdFTk1BU0soNTgsIDU1KQogCkBAIC00Miw2ICs0Miw4IEBACiAKICNkZWZpbmUgS1ZNX1BURV9M RUFGX0FUVFJfSElfUzJfWE4JQklUKDU0KQogCisjZGVmaW5lIEtWTV9QVEVfTEVBRl9BVFRSX0hJ X1MxX0dQCUJJVCg1MCkKKwogI2RlZmluZSBLVk1fUFRFX0xFQUZfQVRUUl9TMl9QRVJNUwkoS1ZN X1BURV9MRUFGX0FUVFJfTE9fUzJfUzJBUF9SIHwgXAogCQkJCQkgS1ZNX1BURV9MRUFGX0FUVFJf TE9fUzJfUzJBUF9XIHwgXAogCQkJCQkgS1ZNX1BURV9MRUFGX0FUVFJfSElfUzJfWE4pCkBAIC0z NzEsNiArMzczLDkgQEAgc3RhdGljIGludCBoeXBfc2V0X3Byb3RfYXR0cihlbnVtIGt2bV9wZ3Rh YmxlX3Byb3QgcHJvdCwga3ZtX3B0ZV90ICpwdGVwKQogCiAJCWlmIChkZXZpY2UpCiAJCQlyZXR1 cm4gLUVJTlZBTDsKKworCQlpZiAoSVNfRU5BQkxFRChDT05GSUdfQVJNNjRfQlRJX0tFUk5FTCkg JiYgc3lzdGVtX3N1cHBvcnRzX2J0aSgpKQorCQkJYXR0ciB8PSBLVk1fUFRFX0xFQUZfQVRUUl9I SV9TMV9HUDsKIAl9IGVsc2UgewogCQlhdHRyIHw9IEtWTV9QVEVfTEVBRl9BVFRSX0hJX1MxX1hO OwogCX0KLS0gCjIuNDEuMC5yYzAuMTcyLmczZjEzMmI3MDcxLWdvb2cKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxp bmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3Rz LmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==