From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755276AbdIFQMF (ORCPT ); Wed, 6 Sep 2017 12:12:05 -0400 Received: from mga09.intel.com ([134.134.136.24]:30738 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751365AbdIFQMD (ORCPT ); Wed, 6 Sep 2017 12:12:03 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.42,484,1500966000"; d="scan'208";a="1215519281" Subject: Re: [PATCH 06/12] x86/crypto: Fix RBP usage in sha1_avx2_x86_64_asm.S To: Josh Poimboeuf , x86@kernel.org Cc: linux-kernel@vger.kernel.org, Mathias Krause , Chandramouli Narayanan , Jussi Kivilinna , Peter Zijlstra , Herbert Xu , "David S. Miller" , linux-crypto@vger.kernel.org, Eric Biggers , Andy Lutomirski , Jiri Slaby References: <12db8df183584a6c605d233c22b1ca0a19e08c56.1504029132.git.jpoimboe@redhat.com> From: Tim Chen Message-ID: <42e729e6-ef1e-9ab5-f3af-2daad017384e@linux.intel.com> Date: Wed, 6 Sep 2017 09:11:55 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.0 MIME-Version: 1.0 In-Reply-To: <12db8df183584a6c605d233c22b1ca0a19e08c56.1504029132.git.jpoimboe@redhat.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 08/29/2017 11:05 AM, Josh Poimboeuf wrote: > Using RBP as a temporary register breaks frame pointer convention and > breaks stack traces when unwinding from an interrupt in the crypto code. > > Use R11 instead of RBP. Since R11 isn't a callee-saved register, it > doesn't need to be saved and restored on the stack. These changes seem okay. Thanks. Tim > > Reported-by: Eric Biggers > Reported-by: Peter Zijlstra > Signed-off-by: Josh Poimboeuf > --- > arch/x86/crypto/sha1_avx2_x86_64_asm.S | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/arch/x86/crypto/sha1_avx2_x86_64_asm.S b/arch/x86/crypto/sha1_avx2_x86_64_asm.S > index 1eab79c9ac48..9f712a7dfd79 100644 > --- a/arch/x86/crypto/sha1_avx2_x86_64_asm.S > +++ b/arch/x86/crypto/sha1_avx2_x86_64_asm.S > @@ -89,7 +89,7 @@ > #define REG_RE %rdx > #define REG_RTA %r12 > #define REG_RTB %rbx > -#define REG_T1 %ebp > +#define REG_T1 %r11d > #define xmm_mov vmovups > #define avx2_zeroupper vzeroupper > #define RND_F1 1 > @@ -637,7 +637,6 @@ _loop3: > ENTRY(\name) > > push %rbx > - push %rbp > push %r12 > push %r13 > push %r14 > @@ -673,7 +672,6 @@ _loop3: > pop %r14 > pop %r13 > pop %r12 > - pop %rbp > pop %rbx > > ret >