Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp1834891imm; Mon, 3 Sep 2018 10:38:58 -0700 (PDT) X-Google-Smtp-Source: ANB0VdbeZAVlWz/SbpyGA9CXqkiSoqpD9G4XuZOODXp2X3Wo5wCoOyIfgmn1B4RCnPvfxmSEk+qR X-Received: by 2002:a62:d74e:: with SMTP id v14-v6mr27153559pfl.88.1535996338398; Mon, 03 Sep 2018 10:38:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1535996338; cv=none; d=google.com; s=arc-20160816; b=wP2qRF3I/9qi5D55CDVT9UobEoY/fQu/20FlbfG0O94KCLgGI2fzeB5l/b4YXRxuUo /cJeIOkP+hrCObw2qOIY79g65gqFQeYoE4lh8kLooqEbKMOkwY6ZSG1ErVBKDQ2r6XBs f60Z7mfotlW8nvNMyZzJSz/IdAKLJbfRjfSzwq89TmvwdNhjdhG+BSDTTTQEN+o+A2yd LnMNt+WT6vPaQSXrsxOdUmpRoaQU3Y5crnT0aGpXUnP7pEuUYv/dhMQSFAREAr+m55wO Q5OyF0aKpmQAv+BYpa+Gp4Mvv9VyH8STQDrl3g4DEmOsmoZiGkwz49BnEqXUbc/LfklP a3aA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=DSLZ9nyEp5l/7cqR3PvkAKetvmuXdIXqgUkKbPUeUHE=; b=aMlmevUlubr6iFdyI7SXMxf0RmJHbF5KKClxnyGv5/7JQ/80yX4N8IIs0sMNtlD3Qx Bvoi9kxpdfzlgbjVGLWFn8mxEIhXvyAuVtFk8vOsX/qdS+w/O/ktOPoxr5xEznj6bf3f w7R/0Km2DG689zGP5xaf8A+Svzk4vI3pvaWL3EMVJKDQ87PHwOZ+phYeXl04NzDByJEC 8lmqU7jqjrC9ZcW7vTlBXD9OrAdenopb/Jn9N67/FnzNBEQHe37hH8+H0XxyTqq8bsrv PVUxTsAVGKy3F7OHB31FZzP0qU70Mb4Eqok+VH+FqjJ1neQxqmGHxqkweEMCad4BZm0N ow4Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h3-v6si18838979plh.66.2018.09.03.10.38.43; Mon, 03 Sep 2018 10:38:58 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731706AbeICV6m (ORCPT + 99 others); Mon, 3 Sep 2018 17:58:42 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:48728 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726384AbeICV6l (ORCPT ); Mon, 3 Sep 2018 17:58:41 -0400 Received: from localhost (ip-213-127-74-90.ip.prioritytelecom.net [213.127.74.90]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 6CEB2A95; Mon, 3 Sep 2018 17:37:30 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Heiko Carstens , Martin Schwidefsky Subject: [PATCH 4.18 088/123] s390/lib: use expoline for all bcr instructions Date: Mon, 3 Sep 2018 18:57:12 +0200 Message-Id: <20180903165723.247067123@linuxfoundation.org> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180903165719.499675257@linuxfoundation.org> References: <20180903165719.499675257@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.18-stable review patch. If anyone has any objections, please let me know. ------------------ From: Martin Schwidefsky commit 5eda25b10297684c1f46a14199ec00210f3c346e upstream. The memove, memset, memcpy, __memset16, __memset32 and __memset64 function have an additional indirect return branch in form of a "bzr" instruction. These need to use expolines as well. Cc: # v4.17+ Fixes: 97489e0663 ("s390/lib: use expoline for indirect branches") Reviewed-by: Heiko Carstens Signed-off-by: Martin Schwidefsky Signed-off-by: Greg Kroah-Hartman --- arch/s390/lib/mem.S | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) --- a/arch/s390/lib/mem.S +++ b/arch/s390/lib/mem.S @@ -17,7 +17,7 @@ ENTRY(memmove) ltgr %r4,%r4 lgr %r1,%r2 - bzr %r14 + jz .Lmemmove_exit aghi %r4,-1 clgr %r2,%r3 jnh .Lmemmove_forward @@ -36,6 +36,7 @@ ENTRY(memmove) .Lmemmove_forward_remainder: larl %r5,.Lmemmove_mvc ex %r4,0(%r5) +.Lmemmove_exit: BR_EX %r14 .Lmemmove_reverse: ic %r0,0(%r4,%r3) @@ -65,7 +66,7 @@ EXPORT_SYMBOL(memmove) */ ENTRY(memset) ltgr %r4,%r4 - bzr %r14 + jz .Lmemset_exit ltgr %r3,%r3 jnz .Lmemset_fill aghi %r4,-1 @@ -80,6 +81,7 @@ ENTRY(memset) .Lmemset_clear_remainder: larl %r3,.Lmemset_xc ex %r4,0(%r3) +.Lmemset_exit: BR_EX %r14 .Lmemset_fill: cghi %r4,1 @@ -115,7 +117,7 @@ EXPORT_SYMBOL(memset) */ ENTRY(memcpy) ltgr %r4,%r4 - bzr %r14 + jz .Lmemcpy_exit aghi %r4,-1 srlg %r5,%r4,8 ltgr %r5,%r5 @@ -124,6 +126,7 @@ ENTRY(memcpy) .Lmemcpy_remainder: larl %r5,.Lmemcpy_mvc ex %r4,0(%r5) +.Lmemcpy_exit: BR_EX %r14 .Lmemcpy_loop: mvc 0(256,%r1),0(%r3) @@ -145,9 +148,9 @@ EXPORT_SYMBOL(memcpy) .macro __MEMSET bits,bytes,insn ENTRY(__memset\bits) ltgr %r4,%r4 - bzr %r14 + jz .L__memset_exit\bits cghi %r4,\bytes - je .L__memset_exit\bits + je .L__memset_store\bits aghi %r4,-(\bytes+1) srlg %r5,%r4,8 ltgr %r5,%r5 @@ -163,8 +166,9 @@ ENTRY(__memset\bits) larl %r5,.L__memset_mvc\bits ex %r4,0(%r5) BR_EX %r14 -.L__memset_exit\bits: +.L__memset_store\bits: \insn %r3,0(%r2) +.L__memset_exit\bits: BR_EX %r14 .L__memset_mvc\bits: mvc \bytes(1,%r1),0(%r1)