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=-19.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS 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 3DEE2C433DB for ; Sun, 7 Mar 2021 04:38:01 +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 BA1BC650AE for ; Sun, 7 Mar 2021 04:38:00 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BA1BC650AE Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org 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:In-Reply-To:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=dSYgfWEACmmhCxILKOASgc6I3hhzNtnc2OySJMBKEwA=; b=kLkx77yFipdnXY6B+xy3sKay5 ZQzP5GEMatWg2CXKPyDZukBpfipHdmkIMao89jHPoGLl66Qr/zCWP0YnrNNshYWIebSiVwvJTCYa6 lQe/bN26POFa5/24Jx2a6bO3zAj+tl5TemN2HBX0gU3eMoB/sBqBhSYTKbWDoncvUdq3LbikdgkKH OPjgk2TGt20IK9aYZEv/qBVG1OltSJaeiwbGzXErzpppCs8YZd7XJQh0BgHUtdFelg0X3U23oFYUJ 6vSm6COvhV4q/aFHv8QLNXOXv0O2vPZWu5BCMd86bBDu+aTOCMoOG8Q/TKDqXq8We49SkdegsD6id NoaP9191Q==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lIl97-0088rV-6g; Sun, 07 Mar 2021 04:36:01 +0000 Received: from mail.kernel.org ([198.145.29.99]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lIl8z-0088ma-Os for linux-arm-kernel@lists.infradead.org; Sun, 07 Mar 2021 04:35:57 +0000 Received: by mail.kernel.org (Postfix) with ESMTPSA id 56F4A650B1; Sun, 7 Mar 2021 04:35:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1615091750; bh=bGnLAzbseG7Hvf7WtaKuqW98AvCQaRA0f3+tjl5et9E=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=sFwb35J2J3JEUCV2LRfNrkdeFOfSy4v9lut+kKnrsezWVzqi7r4QweZekd8H9ONh5 Cn6vKiY2baFCmc18EBSCXD1sfuitp7kpTY5IOMdDQ449mxPdO6OrOemiSREy0cQT7f 11MkmSdeLdGyO5WiAv/NBsolD6PLwg8fm4DVlzmHwQtQ3ZlyOk2K2O7LYuf5QpYRP0 9DAA2Kahj0yKcN+hCBl81TFzC6qgWmyqe/8qgYooCNNtSRw/jOetQXT/LbzSzNpuSh 0TIvkSblicdnSpUtsr4ZYqfBiuMfd8P4Wmh+he7JxvDHNL5YxWfy6NY8zKWtuLTc13 oO7CIDNN2otAg== Date: Sat, 6 Mar 2021 21:35:45 -0700 From: Nathan Chancellor To: Sami Tolvanen Cc: Marc Zyngier , James Morse , Kees Cook , Catalin Marinas , Nick Desaulniers , linux-kernel@vger.kernel.org, kvmarm@lists.cs.columbia.edu, linux-arm-kernel@lists.infradead.org, Will Deacon Subject: Re: [PATCH] KVM: arm64: Don't use cbz/adr with external symbols Message-ID: <20210307043545.pyxy22z3rktgof4m@archlinux-ax161> References: <20210305202124.3768527-1-samitolvanen@google.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20210305202124.3768527-1-samitolvanen@google.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210307_043554_267968_923C1BDD X-CRM114-Status: GOOD ( 22.46 ) 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="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Fri, Mar 05, 2021 at 12:21:24PM -0800, Sami Tolvanen wrote: > allmodconfig + CONFIG_LTO_CLANG_THIN=y fails to build due to following > linker errors: > > ld.lld: error: irqbypass.c:(function __guest_enter: .text+0x21CC): > relocation R_AARCH64_CONDBR19 out of range: 2031220 is not in > [-1048576, 1048575]; references hyp_panic > >>> defined in vmlinux.o > > ld.lld: error: irqbypass.c:(function __guest_enter: .text+0x21E0): > relocation R_AARCH64_ADR_PREL_LO21 out of range: 2031200 is not in > [-1048576, 1048575]; references hyp_panic > >>> defined in vmlinux.o > > This is because with LTO, the compiler ends up placing hyp_panic() > more than 1MB away from __guest_enter(). Use an unconditional branch > and adr_l instead to fix the issue. > > Link: https://github.com/ClangBuiltLinux/linux/issues/1317 > Reported-by: Nathan Chancellor > Suggested-by: Marc Zyngier > Suggested-by: Ard Biesheuvel > Signed-off-by: Sami Tolvanen I booted an kernel with this patch in it on my Raspberry Pi 4 and booted a kernel under KVM without any issues. Tested-by: Nathan Chancellor > --- > arch/arm64/kvm/hyp/entry.S | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/arch/arm64/kvm/hyp/entry.S b/arch/arm64/kvm/hyp/entry.S > index b0afad7a99c6..c62265951467 100644 > --- a/arch/arm64/kvm/hyp/entry.S > +++ b/arch/arm64/kvm/hyp/entry.S > @@ -85,8 +85,10 @@ SYM_INNER_LABEL(__guest_exit_panic, SYM_L_GLOBAL) > > // If the hyp context is loaded, go straight to hyp_panic > get_loaded_vcpu x0, x1 > - cbz x0, hyp_panic > + cbnz x0, 1f > + b hyp_panic > > +1: > // The hyp context is saved so make sure it is restored to allow > // hyp_panic to run at hyp and, subsequently, panic to run in the host. > // This makes use of __guest_exit to avoid duplication but sets the > @@ -94,7 +96,7 @@ SYM_INNER_LABEL(__guest_exit_panic, SYM_L_GLOBAL) > // current state is saved to the guest context but it will only be > // accurate if the guest had been completely restored. > adr_this_cpu x0, kvm_hyp_ctxt, x1 > - adr x1, hyp_panic > + adr_l x1, hyp_panic > str x1, [x0, #CPU_XREG_OFFSET(30)] > > get_vcpu_ptr x1, x0 > > base-commit: 280d542f6ffac0e6d65dc267f92191d509b13b64 > -- > 2.30.1.766.gb4fecdf3b7-goog > > _______________________________________________ > kvmarm mailing list > kvmarm@lists.cs.columbia.edu > https://lists.cs.columbia.edu/mailman/listinfo/kvmarm _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel