From patchwork Fri Apr 21 16:11:26 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nathan Chancellor X-Patchwork-Id: 13220309 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 28351C77B76 for ; Fri, 21 Apr 2023 16:11:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232672AbjDUQLm (ORCPT ); Fri, 21 Apr 2023 12:11:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59602 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230469AbjDUQLl (ORCPT ); Fri, 21 Apr 2023 12:11:41 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D27FD19B6; Fri, 21 Apr 2023 09:11:40 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 6E101651A6; Fri, 21 Apr 2023 16:11:40 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6B592C4339C; Fri, 21 Apr 2023 16:11:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1682093499; bh=LKw0Pn9lBD2DCIzai5WyIYRUcO+iKilOzXysD1jWFnw=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=M1QAI+j6kCXfF4HV8PVD038aj6XudABKUP/GI5x12TwIWcEXImBQvAhju/JvD0Bg6 qecWPNLjCdrfFU5iGRR6XiMxmmbXy9COzw7y+mBBH7XWOePBqZISWKhTTaGDuTirPt elgG0in8lmb0GmuRwQjo/FLSi0uIEctBa9UxSpiZ6XLQTUef8Bh49HhV0BFzouJh0l r1fdCNcrFScBxFk2Q9iwPD+Aw0DTlEUBjIw6eBKRIp+mAOJcTCjMEz/TgYMuXqLzoQ p1IDfVK4KIcnXedXttcT4HC6DRVnUcUDbSo2K1+IbX+4uE9R+fU/recctTchXDZ2Jx 5/cthDp87QZrw== From: Nathan Chancellor Date: Fri, 21 Apr 2023 09:11:26 -0700 Subject: [PATCH v2 1/2] MIPS: Mark check_bugs() as __init MIME-Version: 1.0 Message-Id: <20230419-mips-check_bugs-init-attribute-v2-1-60a7ee65d4bf@kernel.org> References: <20230419-mips-check_bugs-init-attribute-v2-0-60a7ee65d4bf@kernel.org> In-Reply-To: <20230419-mips-check_bugs-init-attribute-v2-0-60a7ee65d4bf@kernel.org> To: tsbogend@alpha.franken.de Cc: ndesaulniers@google.com, linux-mips@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, patches@lists.linux.dev, Naresh Kamboju , Nathan Chancellor X-Mailer: b4 0.13-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=1464; i=nathan@kernel.org; h=from:subject:message-id; bh=LKw0Pn9lBD2DCIzai5WyIYRUcO+iKilOzXysD1jWFnw=; b=owGbwMvMwCEmm602sfCA1DTG02pJDClOW3f1RW3IzLh8gct04/8uSxWNmm0TDG5riPjsWdrtE J3M1WjeUcrCIMbBICumyFL9WPW4oeGcs4w3Tk2CmcPKBDKEgYtTACbyVoDhf2bJclmGk27SvX7t H++sWmz6yEpDsX177JOCnYlF/m0i/xkZvthLWR4u4vXgCD/r5JHZu7FAf6+FdNMfI8/6p2cv8+e zAgA= X-Developer-Key: i=nathan@kernel.org; a=openpgp; fpr=2437CB76E544CB6AB3D9DFD399739260CB6CB716 Precedence: bulk List-ID: X-Mailing-List: linux-mips@vger.kernel.org After commit ac7c3e4ff401 ("compiler: enable CONFIG_OPTIMIZE_INLINING forcibly"), a compiler may choose not to inline a function marked with just 'inline'. If check_bugs() is not inlined into start_kernel(), which occurs when building with clang after commit 9ea7e6b62c2b ("init: Mark [arch_call_]rest_init() __noreturn"), modpost complains with: WARNING: modpost: vmlinux.o: section mismatch in reference: check_bugs (section: .text) -> check_bugs32 (section: .init.text) check_bugs() is only called from start_kernel(), which itself is marked __init, so there would not be any issues at run time. Make it obvious to modpost that this call chain is safe by marking check_bugs() as __init, which fixes the warning. Reported-by: Naresh Kamboju Link: https://lore.kernel.org/CA+G9fYt+4e57Gdy6cix=LeNK6XqWoui8du=mZWu=cf8vPYocKw@mail.gmail.com/ Signed-off-by: Nathan Chancellor --- arch/mips/include/asm/bugs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/mips/include/asm/bugs.h b/arch/mips/include/asm/bugs.h index d72dc6e1cf3c..047e14227c45 100644 --- a/arch/mips/include/asm/bugs.h +++ b/arch/mips/include/asm/bugs.h @@ -30,7 +30,7 @@ static inline void check_bugs_early(void) check_bugs64_early(); } -static inline void check_bugs(void) +static inline void __init check_bugs(void) { unsigned int cpu = smp_processor_id(); From patchwork Fri Apr 21 16:11:27 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nathan Chancellor X-Patchwork-Id: 13220311 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1CD7CC7618E for ; Fri, 21 Apr 2023 16:11:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232819AbjDUQLn (ORCPT ); Fri, 21 Apr 2023 12:11:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59606 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232665AbjDUQLm (ORCPT ); Fri, 21 Apr 2023 12:11:42 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6CBCB1BE2; Fri, 21 Apr 2023 09:11:41 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 06C81651A8; Fri, 21 Apr 2023 16:11:41 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0D1ABC4339E; Fri, 21 Apr 2023 16:11:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1682093500; bh=K01BJyd9NrPkimTz2b/EJwIzah+Nwo0RWYciK9dPAaI=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=Fmkj5pVeH3qoz8EpdebM3UziJLXLTNAuMdT/8pLs5OmOvX54CRvTGVKyOTJlBLN3/ /TXZAmGA+Efu3nLn6mAkVYAoECGPDVRbKgtAn4MaGc/7c6nNhqpdqrjtjVIOfe80di z/gT5nGK5sjLviMw1FiGXPlxItrEYoTNISGCc93OOUAR0FaWvvBzYDn5Urttmhe/8b MxkfcHXj2h3lNQS3I+WY/+mIwNfWTFygBHbsIiO4xnobBhv0zZKgogQw75RIbDe1Tb JpNgeHWlda+1bCanVRGtkL+DaLB+WMYyO5FJBIxHvUj2ZGDSWX06jXwGiKQ5t4MX4L be5kXdkBRt8sQ== From: Nathan Chancellor Date: Fri, 21 Apr 2023 09:11:27 -0700 Subject: [PATCH v2 2/2] MIPS: Sink body of check_bugs_early() into its only call site MIME-Version: 1.0 Message-Id: <20230419-mips-check_bugs-init-attribute-v2-2-60a7ee65d4bf@kernel.org> References: <20230419-mips-check_bugs-init-attribute-v2-0-60a7ee65d4bf@kernel.org> In-Reply-To: <20230419-mips-check_bugs-init-attribute-v2-0-60a7ee65d4bf@kernel.org> To: tsbogend@alpha.franken.de Cc: ndesaulniers@google.com, linux-mips@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, patches@lists.linux.dev, Nathan Chancellor X-Mailer: b4 0.13-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=1706; i=nathan@kernel.org; h=from:subject:message-id; bh=K01BJyd9NrPkimTz2b/EJwIzah+Nwo0RWYciK9dPAaI=; b=owGbwMvMwCEmm602sfCA1DTG02pJDClOW3e96+H7r5GxYvqiLZbK7r6vRR+qdiWxSqUwKb1uT z61r0Kio5SFQYyDQVZMkaX6sepxQ8M5ZxlvnJoEM4eVCWQIAxenAExETYaRoXHKtRLJiyunc364 /lqFeb8Kv9Ta7MBz1mmnvrjuZEyYH8zIsOr/uhwOHfE1Bv9Tzac4fZu+1mat9qKKR62znJq6/0w P5gAA X-Developer-Key: i=nathan@kernel.org; a=openpgp; fpr=2437CB76E544CB6AB3D9DFD399739260CB6CB716 Precedence: bulk List-ID: X-Mailing-List: linux-mips@vger.kernel.org If check_bugs_early() is not inlined, which a compiler is free to do after commit ac7c3e4ff401 ("compiler: enable CONFIG_OPTIMIZE_INLINING forcibly"), modpost would warn that check_bugs_early(), a non-init function, refers to check_bugs64_early(), which is marked __init. This would not result in any run time issues, as check_bugs_early() is only called from setup_arch(), which is marked __init. To avoid this potential warning, just sink the body of check_bugs_early() into its single call site in setup_arch(). Signed-off-by: Nathan Chancellor --- arch/mips/include/asm/bugs.h | 6 ------ arch/mips/kernel/setup.c | 3 ++- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/arch/mips/include/asm/bugs.h b/arch/mips/include/asm/bugs.h index 047e14227c45..653f78f3a685 100644 --- a/arch/mips/include/asm/bugs.h +++ b/arch/mips/include/asm/bugs.h @@ -24,12 +24,6 @@ extern void check_bugs64_early(void); extern void check_bugs32(void); extern void check_bugs64(void); -static inline void check_bugs_early(void) -{ - if (IS_ENABLED(CONFIG_CPU_R4X00_BUGS64)) - check_bugs64_early(); -} - static inline void __init check_bugs(void) { unsigned int cpu = smp_processor_id(); diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c index f1c88f8a1dc5..febdc5564638 100644 --- a/arch/mips/kernel/setup.c +++ b/arch/mips/kernel/setup.c @@ -786,7 +786,8 @@ void __init setup_arch(char **cmdline_p) setup_early_printk(); #endif cpu_report(); - check_bugs_early(); + if (IS_ENABLED(CONFIG_CPU_R4X00_BUGS64)) + check_bugs64_early(); #if defined(CONFIG_VT) #if defined(CONFIG_VGA_CONSOLE)