2023-09-10 08:35:02

by Jiexun Wang

[permalink] [raw]
Subject: Re: [PATCH v2] RISC-V: Fix use of non existent CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK

On Sat, 9 Sep 2023 16:20:41 -0500, Samuel Holland wrote:

>Hi,

>

>The patch is correct, though the subject isn't quite accurate.

>CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK exists; it is defined in arch/Kconfig.

>It's just the wrong option to use to guard the function definition.

>



I think I should send a new version of the patch with the subject:

RISC-V: Fix wrong use of CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK.

Does this subject look more appropriate?



>On 9/6/23 07:32, Jiexun Wang wrote:

>> If configuration options SOFTIRQ_ON_OWN_STACK and PREEMPT_RT

>> are enabled simultaneously under RISC-V architecture,

>> it will result in a compilation failure:

>>

>> arch/riscv/kernel/irq.c:64:6: error: redefinition of 'do_softirq_own_stack'

>> 64 | void do_softirq_own_stack(void)

>> | ^~~~~~~~~~~~~~~~~~~~

>> In file included from ./arch/riscv/include/generated/asm/softirq_stack.h:1,

>> from arch/riscv/kernel/irq.c:15:

>> ./include/asm-generic/softirq_stack.h:8:20: note: previous definition of 'do_softirq_own_stack' was here

>> 8 | static inline void do_softirq_own_stack(void)

>> | ^~~~~~~~~~~~~~~~~~~~

>>

>> After changing CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK to CONFIG_SOFTIRQ_ON_OWN_STACK,

>> compilation can be successful.

>>

>> Fixes: dd69d07a5a6c ("riscv: stack: Support HAVE_SOFTIRQ_ON_OWN_STACK")

>> Signed-off-by: Jiexun Wang <[email protected]>

>> ---

>> Changes in v2:

>> - changed to a more suitable subject line

>> - add a Fixes tag

>>

>> ---

>> arch/riscv/kernel/irq.c | 2 +-

>> 1 file changed, 1 insertion(+), 1 deletion(-)

>>

>> diff --git a/arch/riscv/kernel/irq.c b/arch/riscv/kernel/irq.c

>> index a8efa053c4a5..a86f272ae2c3 100644

>> --- a/arch/riscv/kernel/irq.c

>> +++ b/arch/riscv/kernel/irq.c

>> @@ -60,7 +60,7 @@ static void init_irq_stacks(void)

>> }

>> #endif /* CONFIG_VMAP_STACK */

>>

>> -#ifdef CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK

>> +#ifdef CONFIG_SOFTIRQ_ON_OWN_STACK

>

>It would be good to fix the #endif comment at the bottom of the function

>as well.



Thanks, I will fix this as well.



Best regards,

Jiexun Wang



>

>Regards,

>Samuel

>

>> void do_softirq_own_stack(void)

>> {