diff --git a/kernel.spec b/kernel.spec index 469d71304..b8626e36c 100644 --- a/kernel.spec +++ b/kernel.spec @@ -578,6 +578,7 @@ Patch524: net-vhost_net-fix-possible-infinite-loop.patch # build fix Patch525: 0001-arm64-vdso-Explicitly-add-build-id-option.patch +Patch526: s390-mark-__cpacf_check_opcode-and-cpacf_query_func-as-__always_inline.patch # END OF PATCH DEFINITIONS diff --git a/s390-mark-__cpacf_check_opcode-and-cpacf_query_func-as-__always_inline.patch b/s390-mark-__cpacf_check_opcode-and-cpacf_query_func-as-__always_inline.patch new file mode 100644 index 000000000..ef479dbee --- /dev/null +++ b/s390-mark-__cpacf_check_opcode-and-cpacf_query_func-as-__always_inline.patch @@ -0,0 +1,105 @@ +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 +X-Patchwork-Id: 1075092 +Return-Path: +Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) + by smtp.lore.kernel.org (Postfix) with ESMTP id 5FC95C04AB4 + for ; 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 ; 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 + ); + 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 + ); + 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 +To: Martin Schwidefsky , + Heiko Carstens , + linux-s390@vger.kernel.org +Cc: Arnd Bergmann , Laura Abbott , + Masahiro Yamada , + linux-kernel@vger.kernel.org, + Andrew Morton +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: +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 +Signed-off-by: Masahiro Yamada +--- + + 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; +