kernel/s390-mark-__cpacf_check_opcode-and-cpacf_query_func-as-__always_inline.patch

106 lines
4.6 KiB
Diff
Raw Normal View History

2019-05-20 20:46:32 +00:00
From patchwork Fri May 17 06:54:24 2019
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Patchwork-Submitter: Masahiro Yamada <yamada.masahiro@socionext.com>
X-Patchwork-Id: 1075092
Return-Path: <SRS0=M1fl=TR=vger.kernel.org=linux-kernel-owner@kernel.org>
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
by smtp.lore.kernel.org (Postfix) with ESMTP id 5FC95C04AB4
for <linux-kernel@archiver.kernel.org>; Fri, 17 May 2019 06:55:12 +0000 (UTC)
Received: from vger.kernel.org (vger.kernel.org [209.132.180.67])
by mail.kernel.org (Postfix) with ESMTP id 3103B20848
for <linux-kernel@archiver.kernel.org>; Fri, 17 May 2019 06:55:12 +0000 (UTC)
Authentication-Results: mail.kernel.org;
dkim=pass (2048-bit key) header.d=nifty.com header.i=@nifty.com
header.b="Q2VtVae6"
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1728126AbfEQGzL (ORCPT
<rfc822;linux-kernel@archiver.kernel.org>);
Fri, 17 May 2019 02:55:11 -0400
Received: from conuserg-12.nifty.com ([210.131.2.79]:40958 "EHLO
conuserg-12.nifty.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1727694AbfEQGzK (ORCPT
<rfc822;linux-kernel@vger.kernel.org>);
Fri, 17 May 2019 02:55:10 -0400
Received: from localhost.localdomain (p14092-ipngnfx01kyoto.kyoto.ocn.ne.jp
[153.142.97.92]) (authenticated)
by conuserg-12.nifty.com with ESMTP id x4H6sQI1006236;
Fri, 17 May 2019 15:54:26 +0900
DKIM-Filter: OpenDKIM Filter v2.10.3 conuserg-12.nifty.com x4H6sQI1006236
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.com;
s=dec2015msa; t=1558076066;
bh=/BYTJ4zxnc9ql4xZQk+WJLrlDFM4qCpFxkd8pJzLb9c=;
h=From:To:Cc:Subject:Date:From;
b=Q2VtVae6Ee0HybhaWXSMg69y6q1arF8Sf/3u/XHMZTCPOpMB44H54BKHkbXrOYYN4
sTyqKSVgGlNw7oPey6yYOSC6lOjkiel9mhOBKa/MRcGpXQ1EeRKhiJD9ciFZUJU5lo
qG5n3KT7Slc5xaDZohnfycTLEiaOSVGvd85a6BlWsNry0dKe4AR1DBIFR3kjMMSag7
ZEesarqfo0ZgWtXj9pt5ZSerrlX1EaZCLvJ3hArzEcceGum0qQRT0+XWSGTEGlPjId
aZrU4OYTFZusbiPR43kGBDWduFx1qFAPX8BlT63J0EzHwxFepnxOG46QCvqob91ugR
QTZCX5d2BYNbA==
X-Nifty-SrcIP: [153.142.97.92]
From: Masahiro Yamada <yamada.masahiro@socionext.com>
To: Martin Schwidefsky <schwidefsky@de.ibm.com>,
Heiko Carstens <heiko.carstens@de.ibm.com>,
linux-s390@vger.kernel.org
Cc: Arnd Bergmann <arnd@arndb.de>, Laura Abbott <labbott@redhat.com>,
Masahiro Yamada <yamada.masahiro@socionext.com>,
linux-kernel@vger.kernel.org,
Andrew Morton <akpm@linux-foundation.org>
Subject: [PATCH] s390: mark __cpacf_check_opcode() and cpacf_query_func() as
__always_inline
Date: Fri, 17 May 2019 15:54:24 +0900
Message-Id: <20190517065424.24453-1-yamada.masahiro@socionext.com>
X-Mailer: git-send-email 2.17.1
Sender: linux-kernel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-kernel.vger.kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
Commit e60fb8bf68d4 ("s390/cpacf: mark scpacf_query() as __always_inline")
was not enough to make sure to meet the 'i' (immediate) constraint for the
asm operands.
With CONFIG_OPTIMIZE_INLINING enabled, Laura Abbott reported error
with gcc 9.1.1:
In file included from arch/s390/crypto/prng.c:29:
./arch/s390/include/asm/cpacf.h: In function 'cpacf_query_func':
./arch/s390/include/asm/cpacf.h:170:2: warning: asm operand 3 probably doesn't match constraints
170 | asm volatile(
| ^~~
./arch/s390/include/asm/cpacf.h:170:2: error: impossible constraint in 'asm'
Add more __always_inline to force inlining.
Fixes: 9012d011660e ("compiler: allow all arches to enable CONFIG_OPTIMIZE_INLINING")
Reported-by: Laura Abbott <labbott@redhat.com>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---
arch/s390/include/asm/cpacf.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/s390/include/asm/cpacf.h b/arch/s390/include/asm/cpacf.h
index f316de40e51b..19459dfb4295 100644
--- a/arch/s390/include/asm/cpacf.h
+++ b/arch/s390/include/asm/cpacf.h
@@ -177,7 +177,7 @@ static inline void __cpacf_query(unsigned int opcode, cpacf_mask_t *mask)
: "cc");
}
-static inline int __cpacf_check_opcode(unsigned int opcode)
+static __always_inline int __cpacf_check_opcode(unsigned int opcode)
{
switch (opcode) {
case CPACF_KMAC:
@@ -217,7 +217,7 @@ static inline int cpacf_test_func(cpacf_mask_t *mask, unsigned int func)
return (mask->bytes[func >> 3] & (0x80 >> (func & 7))) != 0;
}
-static inline int cpacf_query_func(unsigned int opcode, unsigned int func)
+static __always_inline int cpacf_query_func(unsigned int opcode, unsigned int func)
{
cpacf_mask_t mask;