Message ID | 20230521114715.955823-2-heiko.stuebner@vrull.eu |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp851772vqo; Sun, 21 May 2023 05:33:49 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7NazDN9ID7/pUyWDV+o8VaVw1bHCi8P3FTdo4ACz5hocpdQ1qdxaUI8SH+iCSF7hWpdIUH X-Received: by 2002:a05:6a00:244f:b0:643:ba77:f265 with SMTP id d15-20020a056a00244f00b00643ba77f265mr8368035pfj.25.1684672429585; Sun, 21 May 2023 05:33:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684672429; cv=none; d=google.com; s=arc-20160816; b=UZQoKLHrHWpDXOf8SDDUI33IvprxHcvvGGwAuXPeNRVKpnzsNK+PskNhX8w8rU1t7M Jg0N+Mkj8RuyOZI46b7ROGshJ6R0GlxhoHlYkK2QCdbTv7mv9AJLA9GN4BRNQ6k4f0X5 dzmnlxNRLPXspLhdG9Ij0xmWvP0oTdO2ii2PMho/ti75DJfnTrEkSP8OK7Cr4rkS8QsU ulTdwBq2ScYZ6zcXk1od6SEIEhZV4iNmHrbtGB/r26WDzE1KoGzeAhZicyqo2QD+4rvq tFS2NPwy7ny8/ycjiNTAtQSDMgLoeeVo/5/pCInmAxppjGrR9xd09vQTNUi/Wv8UEw85 fvPw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=1+QFwwh1Es7JrgSE72vWkuLADMfNet0buj+CCZpMmJE=; b=AjGJILLh2zJdXdfm9nYAvoGklhj0NPNUMS9gqbrOWWPT7V+Ejk7ro/+N0Relswnzam trbVehCZBbABBWZEoIntXWbzw0snou+Q120+Nbfmmf67eLVA5MBzGGp0vGeb3WB5h9HK 4rNhVYQe+0ZLvNIEC8U2F2mxWeEmsRxVFMEJLjsgzLNVV51PD5XxOEKfODtdrcI7Oa+T nyqoZW6SSm2rSJlXcL30xegfecTD9h5ah8Njq1qB/odAAa+F5+ErQ7QfskEpAEXOlm1p js3Bxhgj1KPDuWQhvwzmGBAVth5IsRef3nrGwkghzsMV4JTnUIP7xsBSI5nv/vdjUIyr /JDQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=sntech.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id s2-20020a632c02000000b005288509b88asi3017460pgs.681.2023.05.21.05.33.36; Sun, 21 May 2023 05:33:49 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=sntech.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230398AbjEULu1 (ORCPT <rfc822;cscallsign@gmail.com> + 99 others); Sun, 21 May 2023 07:50:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44406 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231124AbjEULt0 (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Sun, 21 May 2023 07:49:26 -0400 Received: from gloria.sntech.de (gloria.sntech.de [185.11.138.130]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5A47A10E6 for <linux-kernel@vger.kernel.org>; Sun, 21 May 2023 04:47:20 -0700 (PDT) Received: from ip5b412278.dynamic.kabel-deutschland.de ([91.65.34.120] helo=phil.lan) by gloria.sntech.de with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from <heiko@sntech.de>) id 1q0hWv-0008T6-1T; Sun, 21 May 2023 13:47:17 +0200 From: Heiko Stuebner <heiko@sntech.de> To: linux-riscv@lists.infradead.org, palmer@dabbelt.com, paul.walmsley@sifive.com Cc: linux-kernel@vger.kernel.org, christoph.muellner@vrull.eu, David.Laight@ACULAB.COM, Heiko Stuebner <heiko.stuebner@vrull.eu> Subject: [PATCH v3 1/2] riscv: don't include kernel.h into alternative.h Date: Sun, 21 May 2023 13:47:14 +0200 Message-Id: <20230521114715.955823-2-heiko.stuebner@vrull.eu> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20230521114715.955823-1-heiko.stuebner@vrull.eu> References: <20230521114715.955823-1-heiko.stuebner@vrull.eu> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_PASS, T_SCC_BODY_TEXT_LINE,T_SPF_HELO_TEMPERROR autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1766507077484813280?= X-GMAIL-MSGID: =?utf-8?q?1766507077484813280?= |
Series |
Add Zawrs support and use it for spinlocks
|
|
Commit Message
Heiko Stübner
May 21, 2023, 11:47 a.m. UTC
From: Heiko Stuebner <heiko.stuebner@vrull.eu> This include is not currently needed for alternatives and creates possible issues when we want to add alternatives to deeper kernel infrastructure. The issue in question came from trying to introduce Zawrs alternatives, which resulted in a somewhat circular dependency like: In file included from ../include/linux/bitops.h:34, from ../include/linux/kernel.h:22, from ../arch/riscv/include/asm/alternative.h:16, from ../arch/riscv/include/asm/errata_list.h:8, from ../arch/riscv/include/asm/barrier.h:15, from ../include/linux/list.h:11, from ../include/linux/preempt.h:11, from ../include/linux/spinlock.h:56, from ../include/linux/mmzone.h:8, from ../include/linux/gfp.h:7, from ../include/linux/mm.h:7, from ../arch/riscv/kernel/asm-offsets.c:10: ../include/asm-generic/bitops/generic-non-atomic.h: In function ‘generic_test_bit_acquire’: ../include/asm-generic/bitops/generic-non-atomic.h:140:23: error: implicit declaration of function ‘smp_load_acquire’ [-Werror=implicit-function-declaration] 140 | return 1UL & (smp_load_acquire(p) >> (nr & (BITS_PER_LONG-1))); | ^~~~~~~~~~~~~~~~ Signed-off-by: Heiko Stuebner <heiko.stuebner@vrull.eu> --- arch/riscv/include/asm/alternative.h | 1 - 1 file changed, 1 deletion(-)
Comments
On Sun, May 21, 2023 at 01:47:14PM +0200, Heiko Stuebner wrote: > From: Heiko Stuebner <heiko.stuebner@vrull.eu> > > This include is not currently needed for alternatives and creates > possible issues when we want to add alternatives to deeper kernel > infrastructure. > > The issue in question came from trying to introduce Zawrs alternatives, > which resulted in a somewhat circular dependency like: > > In file included from ../include/linux/bitops.h:34, > from ../include/linux/kernel.h:22, > from ../arch/riscv/include/asm/alternative.h:16, > from ../arch/riscv/include/asm/errata_list.h:8, > from ../arch/riscv/include/asm/barrier.h:15, > from ../include/linux/list.h:11, > from ../include/linux/preempt.h:11, > from ../include/linux/spinlock.h:56, > from ../include/linux/mmzone.h:8, > from ../include/linux/gfp.h:7, > from ../include/linux/mm.h:7, > from ../arch/riscv/kernel/asm-offsets.c:10: > ../include/asm-generic/bitops/generic-non-atomic.h: In function ‘generic_test_bit_acquire’: > ../include/asm-generic/bitops/generic-non-atomic.h:140:23: error: implicit declaration of function ‘smp_load_acquire’ [-Werror=implicit-function-declaration] > 140 | return 1UL & (smp_load_acquire(p) >> (nr & (BITS_PER_LONG-1))); > | ^~~~~~~~~~~~~~~~ > > Signed-off-by: Heiko Stuebner <heiko.stuebner@vrull.eu> > --- > arch/riscv/include/asm/alternative.h | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/arch/riscv/include/asm/alternative.h b/arch/riscv/include/asm/alternative.h > index 6a41537826a7..05885de6048c 100644 > --- a/arch/riscv/include/asm/alternative.h > +++ b/arch/riscv/include/asm/alternative.h > @@ -13,7 +13,6 @@ > #ifdef CONFIG_RISCV_ALTERNATIVE > > #include <linux/init.h> > -#include <linux/kernel.h> > #include <linux/types.h> > #include <linux/stddef.h> > #include <asm/hwcap.h> > -- > 2.39.0 > Removing this include doesn't break compilation because the only callers of PATCH_ID_CPUFEATURE_ID() and PATCH_ID_CPUFEATURE_VALUE(), which are defined with lower/upper_16_bits(), are in arch/riscv/kernel/cpufeature.c, which includes at least one thing which eventually includes linux/kernel.h (the first path I found was linux/module.h -> linux/moduleparam.h -> linux/kernel.h). Ideally we wouldn't rely on that luck. We can open code the PATCH_ID_* macros to drop the lower/upper_16_bits() dependencies or move the macros elsewhere, maybe, for now, just to arch/riscv/kernel/cpufeature.c Thanks, drew
diff --git a/arch/riscv/include/asm/alternative.h b/arch/riscv/include/asm/alternative.h index 6a41537826a7..05885de6048c 100644 --- a/arch/riscv/include/asm/alternative.h +++ b/arch/riscv/include/asm/alternative.h @@ -13,7 +13,6 @@ #ifdef CONFIG_RISCV_ALTERNATIVE #include <linux/init.h> -#include <linux/kernel.h> #include <linux/types.h> #include <linux/stddef.h> #include <asm/hwcap.h>